我要計算這個公式的迭代版本:如何使這種算法穩定
f(i)=integral (x^i/(4x+1)) from 0 to 1
使用這些公式:
f(0)=ln(5)/4;
f(i)=1/(i+1) - 4*f(i+1);
我試圖嘗試以下內容:我計算積分(X^100 /(4x + 1))從0到1,並存儲結果。然後我使用迭代版本計算f(i)從這個結果開始。
但我得到錯誤的結果,因爲錯誤太大。
該錯誤僅適用於我< = 25。
我想知道,爲什麼這個算法不穩定,如果有解決方案來計算從i = 100或更高開始的結果。
這是代碼:
function y=Integral(i,max)
if i==0
y=1/4*log(5);
elseif i==max
y=0.0;
else
y=1/(i+1)-4*Integral(i+1,max);
end
end
有了這個功能,我從來沒有得到一個確切的數值,因爲累積誤差過high.I得到關閉值(但即使是3或4倍以上,所以不能接受)如果我使用i = 15和max = 18。我需要這個公式的穩定版本。
不想確認這一點;是這樣的:「f(i)= 1 /(i + 1)-4 * f(i + 1)」的定義是否確切?另外,你可否請你發佈你的代碼,我對你做了什麼以及f(i)的意思有點困惑,因爲你定義了兩次...... – phil13131
它看起來更像是一個數學作業而不是編程問題。 ... – Oli
我同意,除非他提供的代碼是好的,並且錯誤的原因來自使用錯誤的變量,並且計算機上的某些計算結果不夠「確切」...... – phil13131