我需要在matlab中计算以下积分
\int_x^1 f(t) dt
我有 f(t) 作为数字向量的地方。我知道 cumtrapz 从 0 到 x,但是当它从 x 到 1 时,你怎么做呢?
我需要在matlab中计算以下积分
\int_x^1 f(t) dt
我有 f(t) 作为数字向量的地方。我知道 cumtrapz 从 0 到 x,但是当它从 x 到 1 时,你怎么做呢?
这是一个更数学的解决方案,但是
( \int_1^0 f(t) dt ) + ( \int_0^xf(t) dt )
相当于负
\int_x^1 f(t) dt
因此,如果你能找到 \int_0^xf(t) dt,你应该很容易找到你要找的东西。
希望这会有所帮助。
(请原谅任何语法错误,我对语法不熟悉。这是一个数学解决方案,可能有更好的程序解决方案)
编辑:作为澄清,这是在上面的评论中指出的(感谢@Rody Oldenhuis 的澄清):
“我相信这是微积分基本定理 [FTC] 的结果,对于任何实值函数f
和极限a
和b
, int(f, a,b) == -int(f, b,a)
。所以确实,......使用flipud
orfliplr
在你的 上f
,找到极限并使用cumtrapz
,不要忘记负号:)”
事实上,这是真的——这个属性是 FTC 第二部分的结果,只要f
在区间内是实值的[a,b]
(注意f
不需要是连续的)。此外,我在上面提到的 sum 属性也是第二个 FTC 的结果:int(f, a,b) + int(f, b,c) == int(f, a,c)
.