Codice MatLab per il rapporto Golden Ratio Continua frazione
-
20-12-2019 - |
Domanda
Sto cercando di scrivere una funzione Matlab che calcola quanti termini, mude la frazione dorata per arrivare a n cifre di precisione.Ecco cosa ho finora, ma continuo a ottenere una produzione di 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
.
Penso che questa sia una domanda comune per chi studia la teoria dei numeri o semplicemente iniziando a imparare Matlab.Qualche consiglio?Grazie!
Soluzione
La condizione while
manca un abs
.Dovrebbe essere
while abs(phi-p)>10^(-n)
.
Con il tuo codice poiché si trova, il valore iniziale del p
(ovvero 2) è maggiore del phi
, quindi phi-p
è negativo e il ciclo while
non viene mai inserito.Ecco perché ottieni m
uguale a 0
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow