作业帮 > 数学 > 作业

谁能用Matlab帮我解如下多元非线性方程组,解出结果来的另有重谢!

来源:学生作业帮 编辑:大师作文网作业帮 分类:数学作业 时间:2024/11/11 08:01:47
谁能用Matlab帮我解如下多元非线性方程组,解出结果来的另有重谢!

这里面的8个方程,8个字母的全是未知数。
谁能用Matlab帮我解如下多元非线性方程组,解出结果来的另有重谢!
myfun.m
function F = myfun(x)
F=500*800-x(4)*sin(x(7))*160;
500*180-x(3)*sin(x(8))*160;
500-x(4)*cos(x(7)-17.7*pi/180)-x(3)*cos(x(8)+17.7*pi/180);
x(4)*sin(x(7)-17.7*pi/180)-x(3)*sin(x(8)+17.7*pi/180);
500*280-(x(5)- x(1))*150;
x(1)+ x(2)-x(5)-x(6);
0.15* x(1)-x(3);
0.15* x(2)-x(4);
------------------------------
findsolution.m
clear all;
warning off;
A=[];
for i=-pi:0.01:pi
options = optimoptions('fsolve','Display','iter');
x0=[15000/pi,15000/pi,2250/pi,2250/pi,15000/pi + 1125/2,4.2121e+03,i,i];
[x,q]=fsolve(@myfun,x0,options);
L0=[x,i,q];
A=[A;x,i,q];
end
Q=A(:,end);
H=find(Q==min(Q));
reslut=A(H,:)
找不到好的解.初值比较难决定.试了很多还是不尽人意.
以上得到的解为:
reslut =
1.0e+05 *
Columns 1 through 7
0.0477 0.0477 0.0072 -0.0171 0.0534 0.0421 -0.0138
Columns 8 through 10
-0.0000 -0.0000 1.2633
1到8列是解,最后一列是误差.误差太大.
继续努力.
刚改进了算法,得到一个误差比较小的
chuzhi =
-3.5730 3.5699 10.7127 17.8556 24.9984 32.1413 39.2842 46.4270
-----------solution------------
ans =
1.0e+03 *
-0.0036 0.0036 0.0107 2.3407 0.0250 0.0321 -0.5513 0.0464
又得到一个更好的解,这个比较靠谱了.哈哈
-----------------initial value------------
originaldata =
24.1804 31.0785 22.2690 0.0626 34.4995 27.2732 3.5825 3.4617
-----------solution------------
reslut =
1.0e+03 *
0.0242 0.0311 0.0223 -5.6378 0.0345 0.0273 -0.7441 0.0035
得到一个更好的.哈哈
riginaldata =
26.0918 29.0874 37.6150 0.0110 30.5449 12.9429 33.4451 2.3592
-----------solution------------
reslut =
1.0e+03 *
0.0261 0.0291 0.0376 2.6586 0.0305 0.0129 0.0201 0.0024