matlab如何求解多组循环迭代的非线性方程组 15
a(1)=0;b(1)=0;fori=1:10e1='a(i+1)+b(i+1)=2*a(i)+b(i)';e2='a(i+1)-b(i+1)=a(i)+2*b(i)';...
a(1)=0;
b(1)=0;
for i=1:10
e1='a(i+1)+b(i+1)=2*a(i)+b(i)';
e2='a(i+1)-b(i+1)=a(i)+2*b(i)';
[c,d]=solve(e1,e2,'a(i+1)','b(i+1)');
a(i+1)=vpa(c,4);
b(i+1)=vpa(d,4);
end
结果是这样的
Warning: 4 equations in 1 variables.
> In solve at 113
Warning: Explicit solution could not be found.
> In solve at 140
然后变量
a是<1×1>sym,b是0 double
这样的方程怎么求解啊。。。。 展开
b(1)=0;
for i=1:10
e1='a(i+1)+b(i+1)=2*a(i)+b(i)';
e2='a(i+1)-b(i+1)=a(i)+2*b(i)';
[c,d]=solve(e1,e2,'a(i+1)','b(i+1)');
a(i+1)=vpa(c,4);
b(i+1)=vpa(d,4);
end
结果是这样的
Warning: 4 equations in 1 variables.
> In solve at 113
Warning: Explicit solution could not be found.
> In solve at 140
然后变量
a是<1×1>sym,b是0 double
这样的方程怎么求解啊。。。。 展开
1个回答
展开全部
问题分析
用solve解方程时,并不会把a(i+1)、b(i+1)当成变量看。
可以考虑分别用a1、b1、a2、b2来表示a(i)、b(i)、a(i+1)、b(i+1),得到方程的解,然后在循环过程中依次把数据代入即可。
参考代码
e1='a2+b2=2*a1+b1';
e2='a2-b2=a1+2*b1';
[a2,b2]=solve(e1,e2,'a2','b2');
a(1)=1;
b(1)=0.5;
for i=1:10
a1=a(i);
b1=b(i);
a(i+1)=vpa(subs(a2),4);
b(i+1)=vpa(subs(b2),4);
end
结果
如果按照现在的a(1)、b(1),得到的结果全是0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询