我必须计算这个公式的迭代版本:
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);
我尝试了以下方法:我计算从 0 到 1 的积分 ( x^100/(4x+1) ),并存储结果。然后我从这个结果开始计算 f(i),使用迭代版本。
但我得到错误的结果,因为错误太大。
该错误仅适用于 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
使用这个函数,我永远不会得到一个精确的值,因为累积的误差太高。如果我使用 i=15 和 max=18,我会得到一个接近的值(但甚至高 3 或 4 倍,所以不可接受)。我需要稳定的这个公式的版本。