Matlab 计算前10个斐波那契数

Matlab 计算前10个斐波那契数,matlab,fibonacci,Matlab,Fibonacci,我需要在matlab中编写一个代码来计算 但我在这方面遇到了一些麻烦。我想用这里定义的公式: 到目前为止我已经做到了 n = 0; c = (((1+sqrt(5))/2)^n -((1-sqrt(5))/2)^2)/(sqrt(5)); while (n < 10) disp(c) n+1; end n=0; c=((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^2/(sqrt(5)); 而(n

我需要在matlab中编写一个代码来计算 但我在这方面遇到了一些麻烦。我想用这里定义的公式:

到目前为止我已经做到了

n = 0; 
c = (((1+sqrt(5))/2)^n -((1-sqrt(5))/2)^2)/(sqrt(5));
while (n < 10)
disp(c)
n+1;
end
n=0;
c=((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^2/(sqrt(5));
而(n<10)
显示(c)
n+1;
结束

但正如你可能看到的,这是非常错误和不完整的。但我不知道还能做什么。教授希望我们写一个正确的代码,这意味着我不能使用像斐波那契(n)这样的东西。任何帮助都将不胜感激:)

正如我们详细讨论的那样,fibonaacci系列似乎遵循了

这是用在这里,我写在这里,只是它的意义-

sqrt5 = sqrt(5);
alpha = (1 + sqrt5)/2;   %// alpha = 1.618... is the golden ratio
fibs  = round( alpha.^n ./ sqrt5 )
对于
Fibonacci系列中的
n
数字,您可以将整数输入
n
,或者将数组
1:n
输入整个系列


请注意,此方法仅适用于
n=69

记住斐波那契数的定义:

fib(n) = fib(n-1) + fib(n-2);
你的计算公式在计算前10个方面有点过分了。只需将前2个设置为常量,然后使用已知值计算其他值(使用数组,就像计算第三个值时可以计算第四个值一样)

我将为递归留下一些伪代码来计算它,您应该能够将这个想法转化为matlab

let fib = [0,1,-1,-1...]
function Fibonacci(n){
  if (fib[n] != -1) return fib[n] // If it exists already, we have it!
  // otherwise, we can calculate it
  // make sure to save the result so we can use it later if needed.
  fib[n] = Fibonacci(n-1) + Fibonacci(n-2);
  return fib[n];
}
fib_级数=[0,1];
i=3;
而长度(fib_系列)<10
fib_级数(i)=fib_级数(i-1)+fib(i-2);
i=i+1;
结束

他说他不想使用递归函数问题不是说,而是说你不能只使用内置函数。
fib_series = [0,1];
i = 3;
while length(fib_series) < 10
  fib_series(i) = fib_series(i-1) + fib(i-2);
  i = i+1;
end