求高手用matlab解一个三元的方程组600+Xcos10+Ysin40-Z=3600(Zsin65+Ysin40+Xcos10)^2+(Zcos65+Ycos40+Xsin10)^2=5200^2Xsin60+Ysin80+Z-600=4500
来源:学生作业帮助网 编辑:作业帮 时间:2024/11/09 10:10:38
求高手用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