Matlab求解方程参数问题

求解不同x时候a的值,为什么一直报错呢clearallsymspia;x=[012];forn=0:2i=1a=solve('0.4*log(x(i)+a*x(i)+1)... 求解不同x时候a的值,为什么一直报错呢
clear all
syms pi a;
x=[0 1 2];
for n=0:2
i=1
a=solve('0.4*log(x(i)+a*x(i)+1)+0.45*log((x(i)+a*x(i))/2+1)-0.85*log(x(i)+1)','a')
eval(a)
end
展开
 我来答
lhmhz
高粉答主

2016-10-09 · 专注matlab等在各领域中的应用。
lhmhz
采纳数:7264 获赞数:17012

向TA提问 私信TA
展开全部

你 的程序存在如下问题:

问题1:主要问题出在solve()上,运用错误。对于你的问题,只能用fsolve()得到数值解,而用solve()求则会出现错误。

问题2:syms  pi a; 中的pi是多余的

问题3:n=0:2应为i=1:3

问题4:在for循环语句中的i=1; eval(a)也是多余的

针对上述问题更改后,起的程序为

syms a;

x=[0 1 2];

for i=1:3

   fun=@(a)(0.4*log(x(i)+a*x(i)+1)+0.45*log((x(i)+a*x(i))/2+1)-0.85*log(x(i)+1));

   a(i)=fsolve(fun,0.5);

end

double(a)

运行结果

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式