非线性方程组 matlab

来源:百度知道 编辑:UC知道 时间:2024/05/11 02:01:06
我想用MATLAB求借一个非线形方程组,方程组的个数大于未知数的个数
cos(x1)+cos(x2)+cos(x1)*cos(x2)=a
cos(x1)-cos(x2)+cos(x1)*cos(x2)=b
sin(x1)*sin(x2)=c
sin(x1)*sin(x2)=d

a,b,c,d是实验数据,可以当成已知数.方程组的个数大于未知数的个数,这样可以减少实验误差.但是slove好象命令只能用于方程组的个数等于或者小于未知数的个数的情况,有谁知道非线形方程组的个数大于未知数的个数时,怎样用MATLAB求解?
谢谢!很急!

不妨这样试试,先把abcd的数值代入

%a=1.5;b=1.6;c=1.2;d=1.3;
f1='2*cos(x1)+2*cos(x1)*cos(x2)=1.5+1.6'
f2='2*sin(x1)*sin(x2)=1.2+1.3'
[x1,x2]=solve(f1,f2,'x1,x2')

运行结果:
x1 =

[ 3.1415926535897932384626433832795-.29906103549574385349210780198896*i]
[ 3.1415926535897932384626433832795+.29906103549574385349210780198896*i]
[ -1.2819645327975166493049905729824]
[ 1.2819645327975166493049905729824]
[ -.39275847826794672267458642824526]
[ .39275847826794672267458642824526]

x2 =

[ 3.1415926535897932384626433832795+.98557566042699962981855179630086*i]
[ 3.1415926535897932384626433832795-.98557566042699962981855179630086*i]
[ -.37376647956150104018755631143704]
[