24小时热门版块排行榜    

查看: 2297  |  回复: 11
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

askformore

木虫 (小有名气)

[求助] matlab画图求助

需要用matlab画出下面这个图形【即第一个图形】:

表达式都是很清楚的,只是需要用matlab画出来,我写的程序是下面这样,很简单的:
for y=18:0.001:21;

   k=[2:0.01:25];
   a1=pi*(k-2).^4/12./(1+0.8048.*(k-2)+0.1459.*(k-2).^2+1.137*10^(-3)*(k-2).^3-3.879*10^(-6)*(k-2).^4)./(exp(0.511*938.272.*k./(20*10^(y-18)*2.7*8.6170))-1);
   b1=trapz(k,a1);
da1=pi*(k-2).^4/12./(1+0.8048.*(k-2)+0.1459.*(k-2).^2+1.137*10^(-3)*(k-2).^3-3.879*10^(-6)*(k-2).^4).*(-3./(exp(0.511*938.272.*k./(20*10^(y-18)*2.7*8.6170))-1)+0.511*938.272.*k.* exp(0.511*938.272.*k./(20*10^(y-18)*2.7*8.6170))./(20*10^(y-18)*2.7*8.6170)./(exp(0.511*938.272.*k./(20*10^(y-18)*2.7*8.6170))-1).^2);
   db1=trapz(k,da1);
   
c=[25:0.1:10000]';
   a2=c.*(-86.07+50.96.*log(c)-14.45.*log(c).^2+8/3.*log(c).^3)./(1-(2.91./c+78.35./c.^2+1837./c.^3))./(exp(0.511*938.272.*c./(20*10^(y-18)*2.7*8.6170))-1);
   b2=trapz(c,a2);
da2=c.*(-86.07+50.96.*log(c)-14.45.*log(c).^2+8/3.*log(c).^3)./(1-(2.91./c+78.35./c.^2+1837./c.^3)).*(-3./(exp(0.511*938.272.*c./(20*10^(y-18)*2.7*8.6170))-1)+0.511*938.272.*c.*exp(0.511*938.272.*c./(20*10^(y-18)*2.7*8.6170))./(20*10^(y-18)*2.7*8.6170)./ (exp(0.511*938.272.*c./(20*10^(y-18)*2.7*8.6170))-1).^2);
   db2=trapz(c,da2);

dp=(db1+db2)./(b1+b2);
plot(y,dp,'r');
axis([18 21 -1 3]);
    hold on;
end

得到的图形为【第二个图形,即红色曲线的图形】:

很明显,和目标图形相比,matlab只画出了整个图形横坐标在大约y>19.2之后的图形,而且,这一段图形和目标图形是一致的【或者说一样的】。但是,为什么y<19.2的部分画不出来呢?

请各位同学帮助哈,如果能帮助修改,用matlab获得目标图形,可以再追加金币,多谢!

目标图形



为什么只显示后半段呢?
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

askformore

木虫 (小有名气)

引用回帖:
9楼: Originally posted by hhucy at 2012-05-25 18:50:09
是的,新版本matlab会这样的...

嘿嘿,我用的R2011b就没有出现他的问题啊……

另外,求助帖不能灌水,借着回复你的帖子声明一下:我不是故意这么晚才给10楼发金币的,因为周五开始出差,今天中午才回来,所以发晚了。
12楼2012-05-28 18:53:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 12 个回答

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★
askformore: 金币+3, 有帮助, 可是,a1和a2里也含有这个指数项,计算它俩的时候是没问题的,画图也没问题。应该问题不在这里。不过还是谢谢你的帮忙! 2012-05-23 11:58:45
因为在y较小时,如果c接近10000,则此值无穷大,超出了计算范围
exp(0.511*938.272.*c./(20*10^(y-18)*2.7*8.6170))
showmethemoney
3楼2012-05-23 09:47:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

exp(709)就已经INF了
showmethemoney
4楼2012-05-23 09:48:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

不是说了,要指数超过709就超出范围了,你的k比c小多了,当然a1,a2没问题。
showmethemoney
5楼2012-05-23 12:00:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见