求高手用matlab解一个三元的方程组600+Xcos10+Ysin40-Z=3600(Zsin65+Ysin40+Xcos10)^2+(Zcos65+Ycos40+Xsin10)^2=5200^2Xsin60+Ysin80+Z-600=4500
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/15 12:12:41
![求高手用matlab解一个三元的方程组600+Xcos10+Ysin40-Z=3600(Zsin65+Ysin40+Xcos10)^2+(Zcos65+Ycos40+Xsin10)^2=5200^2Xsin60+Ysin80+Z-600=4500](/uploads/image/z/5445381-21-1.jpg?t=%E6%B1%82%E9%AB%98%E6%89%8B%E7%94%A8matlab%E8%A7%A3%E4%B8%80%E4%B8%AA%E4%B8%89%E5%85%83%E7%9A%84%E6%96%B9%E7%A8%8B%E7%BB%84600%2BXcos10%2BYsin40-Z%3D3600%28Zsin65%2BYsin40%2BXcos10%29%5E2%2B%28Zcos65%2BYcos40%2BXsin10%29%5E2%3D5200%5E2Xsin60%2BYsin80%2BZ-600%3D4500)
求高手用matlab解一个三元的方程组600+Xcos10+Ysin40-Z=3600(Zsin65+Ysin40+Xcos10)^2+(Zcos65+Ycos40+Xsin10)^2=5200^2Xsin60+Ysin80+Z-600=4500
求高手用matlab解一个三元的方程组
600+Xcos10+Ysin40-Z=3600
(Zsin65+Ysin40+Xcos10)^2+(Zcos65+Ycos40+Xsin10)^2=5200^2
Xsin60+Ysin80+Z-600=4500
求高手用matlab解一个三元的方程组600+Xcos10+Ysin40-Z=3600(Zsin65+Ysin40+Xcos10)^2+(Zcos65+Ycos40+Xsin10)^2=5200^2Xsin60+Ysin80+Z-600=4500
我算的你这个解都是无穷大.具体过程如下:
第一步:建立M文件函数myf.m
function f=myf(x)
f(1)=600+x(1)*cos(10)+x(2)*sin(40)-x(3);
f(2)=(x(3)*sin(65)+x(2)*sin(40)+x(1)*cos(10))^2+(x(3)*cos(65)+x(2)*cos(40)+x(1)*cos(10))^2-5200^2;
f(3)=x(1)*sin(60)+x(2)*sin(80)+x(3)-600-4500;
第二步:用不动点迭代法解上述方程.
建立M文件函数mulStablepoint:
function [r,n]=mulStablepoint(x0,eps)
if nargin==1;
eps=1.0e-4;
end
r=myf(x0);
n=1;
tol=1;
while tol>eps
x0=r;
r=myf(x0);
tol=norm(r-x0);
n=n+1;
if(n>100000)
disp('迭代次数太多,可能不收敛!')
return;
end
end
第三步,在命令窗口输入命令
[r,n]=mulStablepoint([0,0,0])
最后得到:
r =
Inf Inf -Inf
n =
8