我在使用两个数据集计算数值积分时遇到了一些问题。对于集成,我使用的是 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 个数据点。所以不能进行逐个元素的乘法。
如何解决这种整合..