登录论坛

查看完整版本 : [MATLAB基础] 为什么plot画出来的和算出来的不一样


toxinlord
2009-04-30, 11:38
函数如下:
function h=hvalue2(f1,l1,l2,l3)
le=sqrt(l1.*l1+1-2*l1.*cos(f1));
r=acos((le.*le+l3.*l3-l2.*l2)/2./(le+eps)./l3);
b=asin(l1*sin(f1)/(le+eps));
f3=pi-r-b;
h=abs((l3*sin(f3)+l1.*l3*sin(f1-f3))./(l1*sin(f1)+l1.*l3*sin(f1-f3)+1*eps))

用plot(f,hvalue2(f,0.3,0.8,1))作图发现当f=1.1时,函数值有40+,
但输入命令hvalue2(1.1,0.3,0.8,1)后函数值只有18.9748,
其它的点也对不上,请问这是为什么呢?

toxinlord
2009-04-30, 11:50
救命啊~~~事实证明画出的图是错的

laosam280
2009-04-30, 12:19
asin和acos是周期函数的原因吧

toxinlord
2009-04-30, 14:38
asin和acos是周期函数的原因吧

asin和acos怎么是周期函数呢?

yfl
2009-04-30, 17:27
不可能啊,我刚照着做了一遍,画图结果与计算结果是一致的啊。

toxinlord
2009-05-01, 14:55
不可能啊,我刚照着做了一遍,画图结果与计算结果是一致的啊。

谢谢您,我刚才看了,中间这句"b=asin(l1*sin(f1)/(le+eps));",我漏加"."了,应该是"b=asin(l1*sin(f1)./(le+eps));"这样就没错了.

初学matlab,还不太习惯点除,见笑了呵呵