matlab代码为黄金比例持续分数

时间:2014-02-24 22:51:17

标签: matlab loops fractions continued-fractions

我正在尝试编写一个Matlab函数来计算有多少项m,它需要黄金分数达到n位精度。这是我到目前为止所得到的,但我一直得到0的输出。

phi = (1+sqrt(5))/2;
p=1;
p=[1+1/p];
LoopCounter = 0;
while (phi-p)>10^(-n)
    p=[1+1/p];
    LoopCounter = LoopCounter + 1;
end
m=LoopCounter;
m

我认为这对于那些研究数论或者刚开始学习Matlab的人来说是个常见问题。有什么建议?谢谢!

1 个答案:

答案 0 :(得分:0)

while条件缺少abs。它应该是

while abs(phi-p)>10^(-n)

根据您的代码,p(即2)的初始值大于phi,因此phi-p为负数且while循环从不进入。这就是为什么m等于0