作业帮 > 综合 > 作业

Matlab计算程序问题

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/05 14:41:37
Matlab计算程序问题
用MATLAB编了一段计算程序,如下:
clear
R=1969;
r=60;
d=1587.5;
a=asin((d+r)/R);
b=asin((d-r)/R);
c=R*cos(a);
d=R*cos(b);
z=[c+11.75:3.5:d];
m=acos(z/R);
e=sin(m);
n=asin(((R*e).^2+d.^2-r.^2)/(2*R*d*e));
x=R*cos(n)*sin(m);
y=R*sin(n)*cos(m)-d;
if y>=0;
Q=2*asin(x/r);
else Q=2*pi-2*asin(x/r);
end;
P=Q/2;
S=[x;
y;
z;
P;
Q];
>> S
所得出的计算结果中,P和Q怎么不变的?
现在关键是要求Q的值,
这个0.0000 + 0.4008i是什么意思,搞不懂!
0.0000 + 0.4008i 是复数,如果你要求的不是复数,那就是说对你而言Q是无解的.
问题最初是出现在
n=asin(((R*e).^2+d.^2-r.^2)/(2*R*d*e));这行,“asin”反正弦函数要求自变量大于等于-1小于等于1..就是说((R*e).^2+d.^2-r.^2)/(2*R*d*e);错了
>> ((R*e).^2+d.^2-r.^2)/(2*R*d*e)
ans =
1.0294
实际上是等于1.0294,你可以在你的机子上试试