gpt4 book ai didi

algorithm - 如何使这个算法稳定

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:10 28 4
gpt4 key购买 nike

我必须计算这个公式的迭代版本:

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 倍,所以 Not Acceptable )。我需要这个公式的稳定版本。

最佳答案

这个递归函数应该完成这项工作,而不需要在到达 100 的途中存储部分结果:

function y = Integral(i)

if i==0
y=log(5)/4;
else
y = (-Integral(i-1) + 1/i)/4;
end
end

要使递归工作,您需要从 i=100 开始,然后用 i-1 调用函数,直到达到 i=0。

Integral(100) 将给出最终答案而不需要存储部分结果。

关于algorithm - 如何使这个算法稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13032663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com