用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)函数来描述函数吗?
补充下不是多条曲线的问题。 展开
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)函数来描述函数吗?
补充下不是多条曲线的问题。 展开
3个回答
展开全部
你的函数表达式肯定有问题,因为很明显,对于w>0,S是单调减的函数,不可能出现峰值。
在你画出的图中,接近0.2的位置看上去好像是有峰值,其实那是因为,对于左边的w,求出的S已超出双精度浮点数的表示范围,结果为Inf,在图中没有表现出来而已。
我认为,你的表达式中,极可能是系数1605应该有负号。加上负号画出的图和上面的图比较接近,因为试起来很简单,我就不贴图了,你自行验证就可以了。
你原来的公式写法滥用括号和点运算,却吝啬空格,看起来太乱,简单帮你改写一下(不影响功能):
S = 400.5 * (Hs/(Ts^2))^2 * exp(-1605*(1./(Ts*w)).^4) ./ w.^5;
展开全部
你的样图应该是,Ts和Hs是因子数,w是函数变量。所以你画出来本来就是只有一个。
你要画多个应该是要用一个循环,对Ts和Hs取不同的值。
上面那个图,应该是Ts和Hs取了9组不同的值。。计算出[s1,s2,s3..s9]。。不知道您能不能理解我说的什么。并且 plot(w,s1); plot(w,s2)
你要画多个应该是要用一个循环,对Ts和Hs取不同的值。
上面那个图,应该是Ts和Hs取了9组不同的值。。计算出[s1,s2,s3..s9]。。不知道您能不能理解我说的什么。并且 plot(w,s1); plot(w,s2)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
前面两个系数应该有问题。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询