在 matlab 中,如何根据x(i)
对向量f(i)
进行确定的积分,其中x(i)
从zero
到infinity
即排序f(i)dx(i)
?
您是否自己设置集成方案,如下所示:
计算x
和f(x)
向量
使用diff
函数计算dx
将其与 f(x)相乘,并取所有元素的总和
或者使用 Matlab 的内置函数q = integral(fun,xmin,xmax,Name,Value)
。
顺致敬意,
对M_Tornack's answer的一点补充:
1)如果你知道函数f(x)
,你可以通过以下方式计算它:
象征性地计算
syms x f
f=1./x; % for example
integral(f,x,-inf,0);
或另一种方式:使用quadgk函数-数值计算积分,自适应高斯-克朗罗德正交
2)另一种方法:使用小值代替Inf
和zero
,然后使用trapz
内置函数。或者,您可以使用M_Tornack's answer中的第一个算法,使用一些公差-不使用x
的Inf
值,而是在增加结果积分小于公差的同时增加它。
希望有帮助!
本站系公益性非盈利分享网址,本文来自用户投稿,不代表边看边学立场,如若转载,请注明出处
评论列表(80条)