code matlab pour le nombre d'or en fraction continue
-
20-12-2019 - |
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!
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