0
在使用两个数据集计算数值积分时,我遇到了一些问题。 为了整合,我使用了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个数据点。所以逐元素乘法不能完成。
如何解决这个整合..
我正要做插值。但是,如果我这样做,那么我需要选择个人点。这将是一项乏味的工作。是否有任何最简单的方法..(这里我说的是Microsoft Excel数据插值) – salmannsu
我不明白什么是单调乏味的...因为你有xi,所以很难设置而不是xi其他矢量'x = linspace(XI(1),XI(结束),N)'? – bla
对不起,我的意见。由于我有Excel文件中的所有数据,我尝试使用excel进行插值。 http://peltiertech.com/WordPress/excel-interpolation-formulas/此链接显示一些图形表示。我以为我需要使用游标来获取每个值。无论如何感谢您的帮助。我正在尝试matlab中的所有内容。 – salmannsu