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