使用MATLAB的斐波那契数

use*_*862 1 matlab

我需要使用matlab编写代码来计算前10个斐波纳契数。

用于计算斐波那契数的公式为

f(n)= f(n-1)+ f(n-2)
知道
f(0)= 1和f(1)= 1

我写的简单代码是

f(0) = 1;
f(1) = 1;

for i = 2 : 10
    f(i) = f(i-1) + f(i-2);
    str = [num2str(f(i))];
    disp(str)
end
Run Code Online (Sandbox Code Playgroud)

这段代码在第1行中给了我错误消息:

尝试访问f(0); 索引必须为正整数或逻辑。

另一方面,当我将代码修改为

f(1) = 1;
f(2) = 2;

for i = 3 : 10
    f(i) = f(i-1) + f(i-2);
    str = [num2str(f(i))];
    disp(str)
end 
Run Code Online (Sandbox Code Playgroud)

这很好。

但是我需要它来启动并显示f(0)中的数字。

您能告诉我代码有什么问题吗?

Lui*_*ndo 5

您可以使用Binet的公式非递归地计算它们:

n = 1:10;
r = sqrt(5);
phi = (1+r)/2;
psi = (1-r)/2;
f = (phi.^n - psi.^n)./r;
Run Code Online (Sandbox Code Playgroud)