0

我应该通过在 Matlab 中使用递归的链接中使用下面的连分数来近似 pi。我是递归的新手,不确定如何让分数不断重复。

http://www.geom.uiuc.edu/~huberty/math5337/groupe/expresspi.html

这是我迄今为止尝试过的,但在正确答案附近还没有找到。

function approximation = recyclePi(limit)

approximation = rpHelper(limit, -1);

approximation = round(approximation, 10);

end

function out = rpHelper(limit, base)

if limit < 1

    out = base - 1;

else 


    base = base + 2;

    sq = base.^2;

    out = 2 + sq / rphelper(limit - 1, base)

%     out = rpHelper(limit - 1, base);
end


end

请帮忙!

4

1 回答 1

1

你的代码看起来不错。假设“正确答案”是 pi 的输出,您必须执行以下操作:

p=recyclePi(100)
pi=(p-1).^(-1)*4

-1 因为分数以 1+ 开头... ^-1,*4 因为连分数给你 4/pi 而不是 pi

如果这不是您的问题,请澄清您的问题。

于 2019-07-13T18:54:42.390 回答