田丽君 发表于 2009-5-10 21:12

积分求解问题-- Warning: Minimum step size reached; singularity possible

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

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
          = 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都可以

无水1324 发表于 2009-5-10 22:26

回复 沙发 田丽君 的帖子

新手,还是注意一下发帖子的规范,不要用”新手求助“之类的主题名。
希望您尽快修改过来!
谢谢合作!

ChaChing 发表于 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 编辑 ]

田丽君 发表于 2009-5-12 11:07

分布函数方差小的就会出现上面的错误,大了就没有了.如果在方差小的情况下怎么解决呢?
页: [1]
查看完整版本: 积分求解问题-- Warning: Minimum step size reached; singularity possible