声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1039|回复: 2

[编程技巧] 为什么plot画出来的和算出来的不一样

[复制链接]
发表于 2009-4-30 15:22 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
函数如下:
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,
其它的点也对不上,请问这是为什么呢?

检验后发现图是错的
回复
分享到:

使用道具 举报

发表于 2009-4-30 17:10 | 显示全部楼层
原帖由 toxinlord 于 2009-4-30 15:22 发表
函数如下:
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 ...

把红色部分改成
b=asin(l1*sin(f1)./(le+eps));

评分

2

查看全部评分

 楼主| 发表于 2009-5-1 14:58 | 显示全部楼层
楼上正解,感激
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-22 15:51 , Processed in 0.052555 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表