声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 4000|回复: 6

[编程技巧] 积分求解问题-- Warning: Minimum step size reached; singularity possible

[复制链接]
发表于 2009-5-10 21:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
想求一个积分 由四部分构成

alpha1=0.52; alpha2=0.52; alpha3=0.52; alpha4=0.52;
beta1=2.25; beta2=1; beta3=3.3113; beta4=6;
gama_e=0.69; gama_l=0.74;
Tp=172;              %___7:56
Te=100;             %___7:20
Tw=180;                %___8:00
syms w x

f=inline(int(normpdf(x,100,Network(4,1)),-10000,w));
ff1=inline(exp(-(-log(f(w)+eps)).^gama_e).*gama_e.*(-log(f(w)+eps)).^(gama_e-1)./(f(w)+eps).*normpdf(w,100,10).*(-beta1.*(Te-w).^alpha1));
ff2=inline(exp(-(-log(f(Tp)-f(w)+eps)).^gama_e).*gama_e.*(-log(f(Tp)-f(w)+eps)).^(gama_e-1)./(f(Tp)-f(w)+eps).*normpdf(w,100,10).*(beta2.*(w-Te).^alpha2));
ff3=inline(exp(-(-log(f(w)-f(Tp)+2*eps)).^gama_l).*gama_l.*(-log(f(w)-f(Tp)+2*eps)).^(gama_l-1)./(f(w)-f(Tp)+2*eps).*normpdf(w,100,10).*(beta3.*(Tw-w).^alpha3));
ff4=inline(exp(-(-log(1-f(w)+eps)).^gama_l).*gama_l.*(-log(1-f(w)+eps)).^(gama_l-1)./(1-f(w)+eps).*normpdf(w,100,10).*(-beta4.*(w-Tw).^alpha4));
value=quadl(ff1,0,Te)+quadl(ff2,Te,Tp)+quadl(ff3,Tp,Tw)+quadl(ff4,Tw,1000)

结果总出现错误,ff2对应的beta2.*(w-Te).^alpha2);总是出现复数 但是区间是从Te,Tp 不应该出现负值的
出现的错误有   Warning: Minimum step size reached; singularity possible. 我输入
ezplot(ff2)
结果出现
Warning: Cannot plot 2427721674129408/88194141903004075*exp(-(-log(429821997089919/2251799813685248-1/2*erf(1/20*2^(1/2)*w-6648356754487833/562949953421312)))^(69/100))/(-log(429821997089919/2251799813685248-1/2*erf(1/20*2^(1/2)*w-6648356754487833/562949953421312)))^(31/100)/(429821997089919/2251799813685248-1/2*erf(1/20*2^(1/2)*w-6648356754487833/562949953421312))*exp(-1/2*(1/10*w-2938186340528583/175921860444160)^2)*(w-100)^(13/25):  This function has no real values.
> In ezplot>ezplot1 at 440
  In ezplot at 140
??? One or more output arguments not assigned during call to 'C:\MATLAB701\toolbox\matlab\specgraph\ezplot.m (ezplot1)'.

Error in ==> ezplot at 140
         [hp,cax] = ezplot1(cax,f{1},vars,labels,args{:});

高手帮帮忙 帮我看看是什么问题 我都整好多天了 很着急用  提前谢了

ff3总出现结果NaN+NaN i 不知道该怎么解决,我用了10*eps就没有这种现在,但是这样会不会对解的结果有影响啊....

[ 本帖最后由 ChaChing 于 2009-5-11 21:23 编辑 ]

本帖被以下淘专辑推荐:

回复
分享到:

使用道具 举报

 楼主| 发表于 2009-5-10 21:14 | 显示全部楼层

忘了说明arrivaltime(i)了

arrivaltime(i) 就随便取个数就行 在30-200都可以
发表于 2009-5-10 22:26 | 显示全部楼层

回复 沙发 田丽君 的帖子

新手,还是注意一下发帖子的规范,不要用”新手求助“之类的主题名。
希望您尽快修改过来!
谢谢合作!
发表于 2009-5-10 23:20 | 显示全部楼层
个人matlab的版本无arrivaltime没得试!
待高人路过!
 楼主| 发表于 2009-5-11 09:08 | 显示全部楼层
题名已修改,不知这样可否....大侠多指教.

还没有高手出现吗?真的很着急.....

[ 本帖最后由 田丽君 于 2009-5-11 09:09 编辑 ]
 楼主| 发表于 2009-5-12 10:02 | 显示全部楼层
Network(4,1) and Network(4,2)代表方差,方差小的时候会出 问题.当  arrivetime(i)是100时是对的,但是改变时就出现错误了,我想要的是这个值不断变化下的结果.

[ 本帖最后由 田丽君 于 2009-5-12 16:30 编辑 ]

评分

1

查看全部评分

 楼主| 发表于 2009-5-12 11:07 | 显示全部楼层
分布函数方差小的就会出现上面的错误,大了就没有了.如果在方差小的情况下怎么解决呢?
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-11-17 05:39 , Processed in 0.094974 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表