質問

私は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を学び始めているだけの一般的な質問であると思います。何かアドバイス?ありがとう!

役に立ちましたか?

解決

while状態には、absがありません。それは

であるべきです
while abs(phi-p)>10^(-n)
.

あなたのコードが立っているので、pの初期値(すなわち2)はphiより大きいため、phi-pは負であり、whileループは入力されません。そのため、mに等しい0が得られます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top