1

n桁の精度を得るために黄金比が必要な項数mを計算するMatlab関数を作成しようとしています。ここに私がこれまでに持っているものがありますが、出力は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 を学び始めたばかりの人によくある質問だと思います。何かアドバイス?ありがとう!

4

1 に答える 1

0

while条件に がありませabsん。そのはず

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

このままのコードでは、(つまり 2) の初期値pは より大きいphiため、phi-pは負であり、whileループには決して入りません。そのため、 にm等しくなり0ます。

于 2014-02-24T22:54:44.480 に答える