Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-04-30, 11:38   #1
toxinlord
初级会员
 
注册日期: 2009-04-30
年龄: 36
帖子: 6
声望力: 0
toxinlord 正向着好的方向发展
默认 为什么plot画出来的和算出来的不一样

函数如下:
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   #2
toxinlord
初级会员
 
注册日期: 2009-04-30
年龄: 36
帖子: 6
声望力: 0
toxinlord 正向着好的方向发展
默认 回复: 为什么plot画出来的和算出来的不一样

救命啊~~~事实证明画出的图是错的
toxinlord 当前离线   回复时引用此帖
旧 2009-04-30, 12:19   #3
laosam280
高级会员
 
注册日期: 2008-11-07
住址: 湖南长沙
帖子: 233
声望力: 21
laosam280 正向着好的方向发展
默认 回复: 为什么plot画出来的和算出来的不一样

asin和acos是周期函数的原因吧
__________________
坚持就是胜利,努力就有奇迹。
laosam280 当前离线   回复时引用此帖
旧 2009-04-30, 14:38   #4
toxinlord
初级会员
 
注册日期: 2009-04-30
年龄: 36
帖子: 6
声望力: 0
toxinlord 正向着好的方向发展
默认 回复: 为什么plot画出来的和算出来的不一样

引用:
作者: laosam280 查看帖子
asin和acos是周期函数的原因吧
asin和acos怎么是周期函数呢?
toxinlord 当前离线   回复时引用此帖
旧 2009-04-30, 17:27   #5
yfl
高级会员
 
yfl 的头像
 
注册日期: 2009-04-11
年龄: 38
帖子: 138
声望力: 19
yfl 正向着好的方向发展
默认 回复: 为什么plot画出来的和算出来的不一样

不可能啊,我刚照着做了一遍,画图结果与计算结果是一致的啊。
yfl 当前离线   回复时引用此帖
旧 2009-05-01, 14:55   #6
toxinlord
初级会员
 
注册日期: 2009-04-30
年龄: 36
帖子: 6
声望力: 0
toxinlord 正向着好的方向发展
默认 回复: 为什么plot画出来的和算出来的不一样

引用:
作者: yfl 查看帖子
不可能啊,我刚照着做了一遍,画图结果与计算结果是一致的啊。
谢谢您,我刚才看了,中间这句"b=asin(l1*sin(f1)/(le+eps));",我漏加"."了,应该是"b=asin(l1*sin(f1)./(le+eps));"这样就没错了.

初学matlab,还不太习惯点除,见笑了呵呵
toxinlord 当前离线   回复时引用此帖
回复

主题工具
显示模式

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 01:33


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.