código matlab para fração contínua de proporção áurea
-
20-12-2019 - |
Pergunta
Estou tentando escrever uma função Matlab que calcula quantos termos, m, são necessários a fração áurea para chegar a n dígitos de precisão.Aqui está o que tenho até agora, mas continuo obtendo uma saída 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
Acho que essa é uma dúvida comum para quem estuda Teoria dos Números ou está começando a aprender Matlab.Algum conselho?Obrigado!
Solução
O while
condição está faltando um abs
.Deveria ser
while abs(phi-p)>10^(-n)
Com o seu código como está, o valor inicial de p
(ou seja, 2) é maior que phi
, então phi-p
é negativo e o while
loop nunca é inserido.É por isso que você consegue m
igual a 0
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow