[已解决] matlab求解非线性方程组中,数值维度不匹配的问题。

[复制链接]
KellyGX 发表于 5 天前
matlab2017b
计算f1,f2,f3,f4运行后程序如下
clc;clear
e=0:0.01:2*pi
for i=1:length(e)
    syms a b c d
    f1=c.*cos(a)-125.*cos(e(i))
    f2=c*sin(a)-275-125.*sin(e(i))
    f3=600.*cos(a)+150.*cos(b)-d
    f4=600.*sin(a)+150.*sin(b)-300
    [a1(i),b1(i),c1(i),d1(i)]=vpasolve(f1,f2,f3,f4)
end
a=double(a1);b=double(b1);c=double(c1);d=double(d1);
plot(e,a,e,b,e,c,e,d)

运行后会出现带有下标的赋值维度不匹配的报错。

最佳答案


20141303 发表于 5 天前
抱歉,有个地方忘改了
  1. clc;clear
  2. e=0:0.01:2*pi;
  3. for i=1:length(e)
  4.     syms a b c d
  5.     f1=c*cos(a)-125*cos(e(i));
  6.     f2=c*sin(a)-275-125*sin(e(i));
  7.     f3=600*cos(a)+150*cos(b)-d;
  8.     f4=600*sin(a)+150*sin(b)-300;
  9.     [a1,b1,c1,d1]=solve([f1,f2,f3,f4],[a b c d]);
  10.     a2(i,:)=a1;
  11.     b2(i,:)=b1;
  12.     c2(i,:)=c1;
  13.     d2(i,:)=d1;
  14. end
  15. a=double(a2);b=double(b2);c=double(c2);d=double(d2);
  16. plot(e,a,e,b,e,c,e,d)
复制代码

4 条回复


20141303 发表于 5 天前
仅供参考
  1. clc;clear
  2. e=0:0.01:2*pi;
  3. for i=1:5
  4.     syms a b c d
  5.     f1=c*cos(a)-125*cos(e(i));
  6.     f2=c*sin(a)-275-125*sin(e(i));
  7.     f3=600*cos(a)+150*cos(b)-d;
  8.     f4=600*sin(a)+150*sin(b)-300;
  9.     [a1,b1,c1,d1]=solve([f1,f2,f3,f4],[a b c d]);
  10.     a2(i,:)=a1;
  11.     b2(i,:)=b1;
  12.     c2(i,:)=c1;
  13.     d2(i,:)=d1;
  14. end
  15. a=double(a2);b=double(b2);c=double(c2);d=double(d2);
  16. plot(e,a,e,b,e,c,e,d)
复制代码

KellyGX 发表于 5 天前

非常谢谢您的指导,但是运行后显示“错误使用plot,向量长度必须相同。”不知应该怎么解决。

20141303 发表于 5 天前
抱歉,有个地方忘改了
  1. clc;clear
  2. e=0:0.01:2*pi;
  3. for i=1:length(e)
  4.     syms a b c d
  5.     f1=c*cos(a)-125*cos(e(i));
  6.     f2=c*sin(a)-275-125*sin(e(i));
  7.     f3=600*cos(a)+150*cos(b)-d;
  8.     f4=600*sin(a)+150*sin(b)-300;
  9.     [a1,b1,c1,d1]=solve([f1,f2,f3,f4],[a b c d]);
  10.     a2(i,:)=a1;
  11.     b2(i,:)=b1;
  12.     c2(i,:)=c1;
  13.     d2(i,:)=d1;
  14. end
  15. a=double(a2);b=double(b2);c=double(c2);d=double(d2);
  16. plot(e,a,e,b,e,c,e,d)
复制代码
回复此楼

KellyGX 发表于 4 天前
20141303 发表于 2021-9-14 20:45
抱歉,有个地方忘改了

非常感谢您的耐心解答
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
相关文章
热门教程
站长推荐
快速回复 返回顶部 返回列表