fibonacci
斐波那契数
说明
示例
使用 fibonacci 求第六个斐波那契数。
f = fibonacci(6)
f = 8
求前 10 个斐波那契数。
n = 1:10; f = fibonacci(n)
f = 1×10
1 1 2 3 5 8 13 21 34 55
连续斐波那契数的比值收敛于黄金比例 。通过绘制前 10 个斐波那契数的该比值与黄金比例的对比图,展示这种收敛性。
n = 2:10; ratio = fibonacci(n)./fibonacci(n-1); plot(n,ratio,'--o') hold on yline(1.61803) hold off

通过使用 sym 以符号形式指定输入来求大斐波那契数。符号输入会返回精确的符号输出,而非双精度输出。使用 double 函数将符号数转换为双精度数。
求第 300 个斐波那契数。
num = sym(300); f300sym = fibonacci(num)
f300sym =
将 fib300 转换为双精度数。结果是一个浮点近似值。
f300double = double(f300sym)
f300double = 2.2223e+62
有关符号算术和双精度算术的详细信息,请参阅Choose Numeric or Symbolic Arithmetic。
斐波那契数通常通过绘制斐波那契螺旋来可视化。斐波那契螺旋逼近黄金螺旋。
为前 8 个斐波那契数逼近黄金螺旋。使用 switch 语句定义图中右侧、顶部、左侧和底部正方形的四种情况。通过在 eqnArc 中定义穿过各正方形的圆弧方程来形成螺旋。分别使用 rectangle 和 fimplicit 绘制正方形和圆弧。
x = 0; y = 1; syms v u axis off hold on for n = 1:8 a = fibonacci(n); % Define squares and arcs switch mod(n,4) case 0 y = y - fibonacci(n-2); x = x - a; eqnArc = (u-(x+a))^2 + (v-y)^2 == a^2; case 1 y = y - a; eqnArc = (u-(x+a))^2 + (v-(y+a))^2 == a^2; case 2 x = x + fibonacci(n-1); eqnArc = (u-x)^2 + (v-(y+a))^2 == a^2; case 3 x = x - fibonacci(n-2); y = y + fibonacci(n-1); eqnArc = (u-x)^2 + (v-y)^2 == a^2; end % Draw square pos = [x y a a]; rectangle('Position', pos) % Add Fibonacci number xText = (x+x+a)/2; yText = (y+y+a)/2; text(xText, yText, num2str(a)) % Draw arc interval = [x x+a y y+a]; fimplicit(eqnArc, interval, 'b') end

输入参数
输入,指定为数字、向量、矩阵、多维数组、符号数、符号变量、符号向量、符号矩阵、符号多维数组、符号函数或符号表达式。
详细信息
斐波那契数即以下数列:0, 1, 1, 2, 3, 5, 8, 13, 21…。
已知前两个数为 F0 = 0 和 F1 = 1,则nth斐波那契数为
Fn = Fn–1 + Fn–2。
反复应用此公式即可生成斐波那契数列。
版本历史记录
在 R2017a 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)