Oasis28 发表于 2010-10-10 05:58:27

分段函数积分的奇怪结果???

cn帖,如果格式不对请版主担待:)

我在算的东西,其中有一步需要对分段函数的乘积进行积分。积分式子很复杂,计算总出现问题。后来我对一个简单的分段函数积分,发现很奇怪的结果:

比如有一个简单的分段函数:
y = 0.7x,0<x<1其他地方为0。

当积分区间从-1 到1时,结果正确,为0.35。 但是当从-15到1的区间积分时,结果变成0。

quad('(.7.*x).*(x>0&x<1)+0*x', -1, 1)
ans =
    0.3500

quad('(.7.*x).*(x>0&x<1)', -15, 1)
ans =
   0

很奇怪,不知道到底因为什么。请各位帮帮忙解答并给出一些解决办法啊!!!!谢谢大家!~(具体的问题比较复杂,更不容易确定比较有效的积分范围)

Oasis28 发表于 2010-10-10 05:59:14

现在还早,自己顶起来.....

qibbxxt 发表于 2010-10-10 12:21:46

1# Oasis28
1.具体的原因应该和积分的方法有关,quad用的是adaptive Simpson quadrature,而且quad的源代码是可见的,你可以根据源代码和算法,仔细分析其中的原因。
2.对于不同类型的函数,应该用不同的积分方法,帮助文件中有:

3.对于分段函数,要么分段去积分,要么用quadgk>> quadgk(@(x)(.7.*x).*(x>0&x<1),-16,1)

ans =

0.3500

>> quadgk(@(x)(.7.*x).*(x>0&x<1),-160,1)

ans =

0.3500

Oasis28 发表于 2010-10-10 13:15:19

太感谢了!我好好读读! 谢谢!!
页: [1]
查看完整版本: 分段函数积分的奇怪结果???