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