用matlab画一个函数,能帮我看看程序哪里有问题吗

得不出图里的图形,我的程序是这样的:Ts=7.2;Hs=2.91;w=[0:pi/1023:pi/2];S=400.5*((Hs./(Ts.^2)).^2)*(exp(1... 得不出图里的图形,我的程序是这样的:
Ts=7.2;
Hs=2.91;
w=[0:pi/1023:pi/2];
S=400.5*((Hs./(Ts.^2)).^2)*(exp(1605.*((1./(Ts.*w)).^4)))./(w.^5);
plot(w,S);
这样画出来是一个单峰的图形,不知道是哪里出问题了呢
另外请教下这里可以用S=subs(x,y)函数来描述函数吗?
补充下不是多条曲线的问题。
展开
 我来答
tianxiawulang
2014-01-28 · TA获得超过2.7万个赞
知道大有可为答主
回答量:4732
采纳率:89%
帮助的人:2650万
展开全部

你的函数表达式肯定有问题,因为很明显,对于w>0,S是单调减的函数,不可能出现峰值。

在你画出的图中,接近0.2的位置看上去好像是有峰值,其实那是因为,对于左边的w,求出的S已超出双精度浮点数的表示范围,结果为Inf,在图中没有表现出来而已。

 

我认为,你的表达式中,极可能是系数1605应该有负号。加上负号画出的图和上面的图比较接近,因为试起来很简单,我就不贴图了,你自行验证就可以了。

 

你原来的公式写法滥用括号和点运算,却吝啬空格,看起来太乱,简单帮你改写一下(不影响功能):

  S = 400.5 * (Hs/(Ts^2))^2 * exp(-1605*(1./(Ts*w)).^4) ./ w.^5;

paley_p
2014-01-23 · 超过16用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:30.1万
展开全部
你的样图应该是,Ts和Hs是因子数,w是函数变量。所以你画出来本来就是只有一个。
你要画多个应该是要用一个循环,对Ts和Hs取不同的值。
上面那个图,应该是Ts和Hs取了9组不同的值。。计算出[s1,s2,s3..s9]。。不知道您能不能理解我说的什么。并且 plot(w,s1); plot(w,s2)
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
brucenature
2014-01-23 · TA获得超过1146个赞
知道小有建树答主
回答量:197
采纳率:100%
帮助的人:231万
展开全部
前面两个系数应该有问题。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式