【发布时间】:2017-01-20 06:45:35
【问题描述】:
在matlab中如何根据x(i)对向量f(i)进行明确的积分,其中x(i)从zero变化到infinity,即类似于f(i)dx(i)?
【问题讨论】:
标签: matlab indexing numerical-methods integral
在matlab中如何根据x(i)对向量f(i)进行明确的积分,其中x(i)从zero变化到infinity,即类似于f(i)dx(i)?
【问题讨论】:
标签: matlab indexing numerical-methods integral
您是否自己设置了集成方案,例如:
x 和f(x) 向量diff函数计算dx
或者你使用 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 函数 - 数值计算积分、自适应 Gauss-Kronrod 正交
2) 另一种方式:使用小值代替Inf 和zero,然后使用trapz 内置函数。
或者您可以使用M_Tornack's answer 中的第一个算法,使用一些容差 - 不使用x 的Inf 值,而是在增加结果积分的同时增加它而不是容差。
希望对你有帮助!
【讨论】: