用MATLAB求解非线性方程组

2024-11-08 14:01:30
推荐回答(2个)
回答1:

可以使用MATLAB的符号计算工具箱MuPAD:
在MATLAB窗口中输入mupad,在打开的窗口中输入:

eq1:=x-0.7*sin(x)-0.2*cos(y)=0://定义方程1;
eq2:=y-0.7*cos(x)+0.2*sin(y)=0://定义方程2;
solve({eq1,eq2},[x,y])

得出结果:

{[x = 0.5265226219, y = 0.507919719]}

//计算使用时间2s.

回答2:

MATLAB里面本来就是有函数调用的 叫fslove
这是本人的一个函数例子 也是解方程组的

mfunction q=myfun(p)
a(1)=4.04;
a(2)=2.2525;
a(3)=1.4422;
b(1)=20.2;
b(2)=50.5;
b(3)=72.108;
x(1)=p(1);
x(2)=p(2);
x(3)=p(3);
x(4)=p(4);
x(5)=p(5);
x(6)=p(6);
q(1)=x(1)*sin(x(2))-a(1)*x(5);
q(2)=x(1)*sin(x(3))-a(2)*x(5);
q(3)=x(1)*sin(x(4))-a(3)*x(5);
q(4)=x(1)*cos(x(2))-a(1)*x(6)-b(1);
q(5)=x(1)*cos(x(3))-a(2)*x(6)-b(2);
q(6)=x(1)*cos(x(4))-a(3)*x(6)-b(3);

% x=fsolve('myfun',[0.5 0.5 0.5 0.5 0.5 0.5]',optimset('Display','off'));