Report r_n and n when |r_n − r_n−1|< 10−9 (while-loop).

1 view (last 30 days)
I was asked to create a while loop for Fibonacci sequence
with initial values: Fn= Fn1 + Fn2,
F0 = 2 and F1 = 3
note r_n= Fn+1/Fn
It wants me to report r_n and n when |rn−rn−1|< 10−9 (while-loop)
Code created:
fib_first = 2;
fib_second = 3;
fib_all = zeros(n, 1);
fib_all(2) = fib_first;
fib_all(3) = fib_second;
n=1:100
fib_all(ii) = fib_all(ii-1)+fib_all(ii-2)
while abs(r_n - r_n-1) < 10^-9
end
I am having a hard time understanding what I am doing wrong. I do not feel confident with this code.

Answers (1)

Dyuman Joshi
Dyuman Joshi on 20 Jan 2023
You have to update the values inside the while loop. One way to do is
F=[2 3 5];
%defining rn = F(n+1)/F(n)
r=F(2:3)./F(1:2);
n=2;
while abs(diff(r))>=1e-9
F=[F(2:3) F(2)+F(3)];
r=F(2:3)./F(1:2);
n=n+1;
end
F
F = 1×3
28657 46368 75025
n
n = 22
rn=r(end)
rn = 1.6180

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!