matlab ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,980)ss =1.3467e-007>> ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,970)ss =1.4114e-007对同
来源:学生作业帮助网 编辑:六六作业网 时间:2024/09/08 06:51:43
matlab ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,980)ss =1.3467e-007>> ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,970)ss =1.4114e-007对同
matlab
ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,980)
ss =
1.3467e-007
>> ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,970)
ss =
1.4114e-007
对同一个正函数进行积分,为什么区间小的积分结果反而大,
贴错了,这个问题问错了,是下面这个,
s1=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(1000-u))),0,1000);
s2=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(1000-u))),0,900);
s=s1-s2
s =
-2.1612e-014
matlab ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,980)ss =1.3467e-007>> ss=quadl(@(u)0.04.*1.42.*((0.04.*u).^(1.42-1)).*exp(-((0.04.*u).^1.42)).*exp(-(0.03.*(500-u))),0,970)ss =1.4114e-007对同
计算精度问题,其实这两个积分的差很接近0了
你改变一下积分的精度,有时候算出来这个大,有时候算出来那个大,都是浮点运算舍入误差
用符号积分得到的精确数值解
vpa(int(f,0,1000)-int(f,0,900))
8.7026847676597102670057734259862*10^(-47)
而vpa(int(f,900,1000))
2.1136169726566166229363550227724*10^(-72)
可见基本上已经为零,很难算准了