作业帮 > 综合 > 作业

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

来源:学生作业帮 编辑:大师作文网作业帮 分类:综合作业 时间:2024/11/16 05:02:36
用matlab画一个函数,能帮我看看程序哪里有问题吗

得不出图里的图形,我的程序是这样的:

  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)函数来描述函数吗?

补充下不是多条曲线的问题.

用matlab画一个函数,能帮我看看程序哪里有问题吗
你的函数表达式肯定有问题,因为很明显,对于w>0,S是单调减的函数,不可能出现峰值.在你画出的图中,接近0.2的位置看上去好像是有峰值,其实那是因为,对于左边的w,求出的S已超出双精度浮点数的表示范围,结果为Inf,在图中没有表现出来而已. 我认为,你的表达式中,极可能是系数1605应该有负号.加上负号画出的图和上面的图比较接近,因为试起来很简单,我就不贴图了,你自行验证就可以了. 你原来的公式写法滥用括号和点运算,却吝啬空格,看起来太乱,简单帮你改写一下(不影响功能):  S = 400.5 * (Hs/(Ts^2))^2 * exp(-1605*(1./(Ts*w)).^4) ./ w.^5;