código matlab para la proporción áurea fracción continua
-
20-12-2019 - |
Pregunta
Estoy intentando escribir una función de Matlab que calcule cuántos términos, m, necesita la fracción áurea para llegar a n dígitos de precisión.Esto es lo que tengo hasta ahora, pero sigo obteniendo un resultado 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
Creo que esta es una pregunta común para quienes estudian teoría de números o recién comienzan a aprender Matlab.¿Algún consejo?¡Gracias!
Solución
El while
a la condición le falta un abs
.Debería ser
while abs(phi-p)>10^(-n)
Con su código tal como está, el valor inicial de p
(es decir, 2) es mayor que phi
, entonces phi-p
es negativo y el while
El bucle nunca se ingresa.Es por eso que obtienes m
igual a 0
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow