PLotting Fibonacci Ratios against phi

4 visualizaciones (últimos 30 días)
Yuvraj Bhagotra
Yuvraj Bhagotra el 20 de En. de 2021
Respondida: Rohit Pappu el 27 de En. de 2021
Hiya so I've coded a fibonacci ratio finder which find the ratio between the nth fibonacci number and the one before it and found an n for which Fibrat(n) - phi< 10^-7. Now how di plot the error from n = 1:18 of Fibrat and phi against n?
Fibrat, golden ratio comparer and attempted plotting code
function r = Fibrat(n)
% Fibrat(n) gives the ratio of the n+1 th fibonacci number and the nth
% fibonacci number
F(1) = 1;
F(2) = 1;
for i = 3:n+1
F(i) = F(i-1)+F(i-2);
end
r = F(n+1)/F(n);
% Ratio comparer%
Phi = ((1 + sqrt(5))/2);
GR = 1;
i = 3;
while (abs(Phi - GR) > 10^(-7))
i = i+1;
GR = Fibrat(i);
end
format long
GR
i
%Plotting code%
f = [1 1];
fibratio = [1 1];
x = 1;
while x<=18
f(x+2) = f(x+1) + f(x);
x = x+1
fibratio(x+2) = f(x+2)/f(x+1);
end
plot(fibratio)

Respuestas (1)

Rohit Pappu
Rohit Pappu el 27 de En. de 2021
Refactored version of your code
% Ratio comparer%
Phi = ((1 + sqrt(5))/2);
GR = 1;
i = 1;
error =abs(Phi-GR) % Initialize the error vector
while (abs(Phi - GR) > 10^(-7))
i = i+1;
GR = Fibrat(i);
error = [error abs(Phi-GR)]; % Append the current error to the error vector
end
% View various variables in long format
format long
GR
i
error
% Create a vector from 1:i and plot error against it
plot(1:i-1,error)
% Local function used by above code
function r = Fibrat(n)
% Fibrat(n) gives the ratio of the n+1 th fibonacci number and the nth
% fibonacci number
F(1) = 1;
F(2) = 1;
for i = 3:n+1
F(i) = F(i-1)+F(i-2);
end
r = F(n+1)/F(n);
end
Note - Local functions need to be defined after the driver code

Categorías

Más información sobre Data Types en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by