heaven0324 发表于 2012-6-18 10:24

关于matlab非线性方程求解问题

有这些变量 l1 l2 l3 l4 l5 l6 l7 l8 l9 l10 l11 l12 lw h1 h2 h3 m c d k y z o f e p0 a h l j b g i v1,其中l1=400;l2=50;l3=250;l4=150;l5=100;l6=250;l7=100;l8=250;l9=100;l10=50;l11=282.8;lw=0;
lb=800;lb1=400;h1=350;h2=50;h3=100;v1=135;以上这些值可以给定量,然后求c与M的相关表达方程,其中c的范围可调,比如从[-20,100].请问这个函数怎么写?
我写了一个如下,然后挂了……求助!
syms l1 l2 l3 l4 l5 l6 l7 l8 l9 l10 l11 l12 lw h1 h2 h3 m c d k y z o f e p0 a h l j b g i v1

f1=(l5)*cos(c)+(l6)*(sin(d))+(l7)*(sin(k))-l11+(l9-l2)*(cos(v1));
f2=-(l5)*(sin(c))+(l6)*(cos(d))+(l7)*(cos(k))-(sin(v1))*((l9)-(l2));
f3=((l1)+(l2))*(sin(pi/4))-(l3)*(sin(c))+((l9)-(l2))*(sin(v1))-(l8)*(cos(k))-y;
f4=((l1)+(l2))*(cos(pi/4))-(l3)*(cos(c))+(l11)-((l9)-(l2))*(cos(v1))+(l8)*(sin(k))-z;
f5=-(l4)*(cos(a))+(l9)*(cos((pi/4)-o))+(h3-h2+l10)*(sin(o))-(lw)*(cos(o))-l;
f6=m+(l1)*sin((pi/4)-o)-((l3)+(l4))*(sin(c+o));
f7=(l1)*cos((pi/4)-o)+((l3)+(l4))*(cos(a))-h;
f8=(m+y*cos(o))*cot(o)-l-h+y*sin(o);
f9=(m+y*cos(o))/z-sin(o);
f10=d+k-(pi/2)-f;
f11=c-d-e;
f12=o+c-a;
f13=(pi/4)-o-i;
f14=cos(e)/cos(f)-(p0);
f15=(pi/2)-k+o-b;
f16=(3*pi/4)-c-g;
c=-20:20:100;
=solve(f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13,f14,f15,f16,'c','m')

chenguijia 发表于 2012-6-19 08:42

你用一下fsolve这个方法吧,专门解非线性程序的,而且收敛的很快,方法也很简单
页: [1]
查看完整版本: 关于matlab非线性方程求解问题