Question

Je suis en train d'écrire une fonction Matlab qui calcule le nombre de termes, m, il prend la fraction d'or pour arriver à n chiffres de précision.Voici ce que j'ai à ce jour, mais je continue à obtenir un résultat de 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

Je pense que c'est une question pour ceux qui étudient la Théorie des nombres ou juste de commencer à apprendre Matlab.Tous les conseils?Merci!

Était-ce utile?

La solution

L' while état de manque un abs.Il devrait être

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

Avec votre code tel qu'il est, la valeur initiale de p (à savoir 2) est supérieure à phi, de sorte phi-p est négatif et le while la boucle n'est jamais entré.C'est pourquoi vous obtenez m égal à 0.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top