【发布时间】:2012-12-27 17:00:45
【问题描述】:
我在计算两个数据集的数值积分时遇到了一些问题。 对于集成,我使用的是 simpsons 1/3 规则。
function I = Simpsons(f,a,b,n)
if numel(f)>1 % If the input provided is a vector
n=numel(f)-1; h=(b-a)/n;
I= h/3*(f(1)+2*sum(f(3:2:end-2))+4*sum(f(2:2:end))+f(end));
else
h=(b-a)/n; xi=a:h:b;
I= h/3*(f(xi(1))+2*sum(f(xi(3:2:end-2)))+4*sum(f(xi(2:2:end)))+f(xi(end)));
end
此代码正确计算了积分。
现在在计算相乘值时出现问题。
例如,我有两个函数 f 和 g 都依赖于同一个变量。 变量在相同的范围内。 SO 下限和上限相同。
$\int_a^b \! f(x) *g(x) \, \mathrm{d} x.$
这里 x 的分辨率是不同的。对于 f(x),我们有 1000 个数据,而对于 g(x),我们有 1700 个数据点。所以不能进行逐个元素的乘法。
如何解决这种整合..
【问题讨论】:
标签: matlab integration numerical-methods calculus