斐波那契数列 matlab程序

作者&投稿:微利 (若有异议请与网页底部的电邮联系)
MATLAB 求编写产生fibonacci数列前20项1,1,2,3,5,8,13................~

#include
using namespace std;
int Fibonacci(int index)
if( index == 1)
return 1;
if( index == 2)
return 1;
return Fibonacci(index - 1) + Fibonacci(index - 2);
int main()
cout << Fibonacci( 20);
return 0;

含义
当n>0,有Fn+2种这样的方法。因为当中只有一种方法不用使用2,就即1+1+...+1(n+1项),于是我们从 Fn+2减去1。
若第1个被加数是2,有 Fn种方法来计算加至n-1的方法的数目。
若第2个被加数是2、第1个被加数是1,有Fn-1种方法来计算加至 n-2的方法的数目。
重复以上动作。
若第n+1个被加数为2,它之前的被加数均为1,就有F0种方法来计算加至0的数目。

clc,clear
a(1)=1;
a(2)=1;
n=input('n=');
k=2;
while a(k)<=n

a(k+1)=a(k)+a(k-1);
k=k+1;
end
k
fib=[1:length(a);a]'
---------a test -------------------
n=1000

k =

17


fib =

1 1
2 1
3 2
4 3
5 5
6 8
7 13
8 21
9 34
10 55
11 89
12 144
13 233
14 377
15 610
16 987
17 1597

主文件:main.m

%made by Canlong

%%

%编写算法完成下面给余猜谜的游戏

%心里想好一个1~100之间的整数x,将它分别除以3,5,7并得到3个余数。把这三个余数输入计算机,计算机能马上猜出这个数。

%方法一:穷举法

disp('方法一:穷举法')

num1 = input('请输入第一个数:');

num2 = input('请输入第二个数:');

num3 = input('请输入第三个数:'); 

for i=1:100

if rem(i,3)==num1 && rem(i,5)==num2 && rem(i,7)==num3  

fprintf('该数为:%d
',i); 

end

end

%%

%方法二,建模.

disp('方法二,建模.');

num1 = input('请输入第一个数:');

num2 = input('请输入第二个数:');

num3 = input('请输入第三个数:'); 

d=70*num1+21*num2+15*num3;

while d>105

d = d-105 ;

end

fprintf('该数为:%d
',d);

%%

%斐波那契数列的应用

%斐波那契数列有如下特点:a1,a2已知  a(n)=a(n-1)+a(n-2)  n>=3

%例题:楼梯上有n阶台阶,上楼时可以一步上1阶,也可以一步上2阶,编写算法计算共有多少种不同的上楼梯方法

%楼梯阶数

n=10;

disp('如果楼梯阶数为10,上楼梯的方法数,解得:');

fprintf('f(%d)为:%d
',n,f(n));

函数文件:f.m

%输入n为阶梯数,a为返回的阶梯数

%made by Canlong

function a=f(n)

if n==1

a=1;

return;

end

if n==2

a=2;

return

else

a=f(n-1)+f(n-2);

return

end

end

扩展资料:

图形处理:

MATLAB自产生之日起就具有方便的数据可视化功能,以将向量和矩阵用图形表现出来,并且可以对图形进行标注和打印。高层次的作图包括二维和三维的可视化、图象处理、动画和表达式作图。可用于科学计算和工程绘图。

新版本的MATLAB对整个图形处理功能作了很大的改进和完善,使它不仅在一般数据可视化软件都具有的功能(例如二维曲线和三维曲面的绘制和处理等)方面更加完善,而且对于一些其他软件所没有的功能(例如图形的光照处理、色度处理以及四维数据的表现等)。

MATLAB同样表现了出色的处理能力。同时对一些特殊的可视化要求,例如图形对话等,MATLAB也有相应的功能函数,保证了用户不同层次的要求。另外新版本的MATLAB还着重在图形用户界面(GUI)的制作上作了很大的改善,对这方面有特殊要求的用户也可以得到满足。

模块工具:

MATLAB对许多专门的领域都开发了功能强大的模块集和工具箱。一般来说,它们都是由特定领域的专家开发的,用户可以直接使用工具箱学习、应用和评估不同的方法而不需要自己编写代码。领域,诸如数据采集。

数据库接口、概率统计、样条拟合、优化算法、偏微分方程求解、神经网络、小波分析、信号处理、图像处理、系统辨识、控制系统设计、LMI控制、鲁棒控制、模型预测、模糊逻辑、金融分析、地图工具。

非线性控制设计、实时快速原型及半物理仿真、嵌入式系统开发、定点仿真、DSP与通讯、电力系统仿真等,都在工具箱(Toolbox)家族中有了自己的一席之地。

程序接口:

新版本的MATLAB可以利用MATLAB编译器和C/C++数学库和图形库,将自己的MATLAB程序自动转换为独立于MATLAB运行的C和C++代码。允许用户编写可以和MATLAB进行交互的C或C++语言程序。

另外,MATLAB网页服务程序还容许在Web应用中使用自己的MATLAB数学和图形程序。MATLAB的一个重要特色就是具有一套程序扩展系统和一组称之为工具箱的特殊应用子程序。

工具箱是MATLAB函数的子程序库,每一个工具箱都是为某一类学科专业和应用而定制的,主要包括信号处理、控制系统、神经网络、模糊逻辑、小波分析和系统仿真等方面的应用。





function a=fib(n)
%生成长度为n的斐波那契数列
if n==1
a=1;
elseif n==2
a=[1 1];
else
b=fib(n-1);
a=[b,b(end-1)+b(end)];
end

例子
fib(10)

ans =

1 1 2 3 5 8 13 21 34 55

如果你不懂什么是函数,可以直接输入下面的程序:
a=[1 1];
while length(a)-100;
a=[a,a(end-1)+a(end)];
end

a就是你要的长度为100的数列

数列的前两项都是1,以后任一项都是前两项的和。
1、1、2、3、5、8、13、21、34
……
等。

function [a]=f(a)
a(1)=1;
a(2)=1;
for i=3:100
a(i)=a(i-1)+a(i-2);
end
disp(a)


江口县13853143713: 斐波那契数列 matlab程序
邹歪纳德: function a=fib(n) %生成长度为n的斐波那契数列 if n==1 a=1; elseif n==2 a=[1 1]; else b=fib(n-1); a=[b,b(end-1)+b(end)]; end 例子 fib(10) ans = 1 1 2 3 5 8 13 21 34 55 如果你不懂什么是函数,可以直接输入下面的程序: a=[1 1]; while length(a)-100; a=[a,a(end-1)+a(end)]; end a就是你要的长度为100的数列

江口县13853143713: 斐波那契数列 matlab程序斐波那契(Fibonacci)数列指的是这样一个数列:1,1,2,3,5,8,13,21…这个数列从第三项开始,每一项都等于前两项之和.利用matlab... -
邹歪纳德:[答案] function a=fib(n)%生成长度为n的斐波那契数列if n==1a=1;elseif n==2a=[1 1];elseb=fib(n-1);a=[b,b(end-1)+b(end)];end例子fib(10)ans =1 1 2 3 5 8 13 21 34 55如果你不懂什么是函数,可以直接输入下面的程序:a=[...

江口县13853143713: matlab写斐波那契数列 -
邹歪纳德: 1 2 3 4 5functionF = fib(n)F = 1:n;forp = 3:nF(p) = F(p-1)+F(p-2);end

江口县13853143713: matlab 编写一个函数文件求小于任意自然数n的斐波那契数列各项.斐波那契数列定义如下: f1=1, n=1 f2=1, n=2 fn=fn - 1+fn - 2, n>2 -
邹歪纳德: va4sd v23as1cv3a4s6+ 21c2sa13 cv4as1c21as6c456 +asca2sc3ascasd3f4vasd4cvzx21

江口县13853143713: 用MATLAB语言中for循环和while循环编写斐波那契数列中小于10000的最大数的程序 -
邹歪纳德: a = 0; b = 1; for i = 1:1000c = a+b;a = b;b = c;if a < 10000&&b > 10000break;end end result_max = a

江口县13853143713: 用matlab求fibonacci数列的解(n=20)Fn=Fn - 1+Fn - 2,其中F1=1,F2=2 -
邹歪纳德:[答案] F(20)=6765 -------------------------------- 代码如下: N=20 F=ones(1,N); for i=3:N F(i)=F(i-1)+F(i-2); end F(N)

江口县13853143713: matlab中斐波那契数列前15项的和的程序 -
邹歪纳德: 1 2 3 4 5 6A(1) = 0; A(2) = 1; fork = 3:15A(k) = A(k-1)+A(k-2); end sum(A) ans =986

江口县13853143713: matlab编程求斐波那契数列前100项的和怎么求? -
邹歪纳德: clc,cleara(1)=1;a(2)=1;n=input('n=');k=2;whilea(k)<=na(k+1)=a(k)+a(k-1);k=k+1;endkfib=[1:length(a);a]'---------atest-------------------n=1000k=17fib=112132435568713821934105511891214413233143771561016987171597

江口县13853143713: 编写一过程,计算出斐波那契数列的第n项并输出结果? -
邹歪纳德: 裴波纳切数列:a(1)=1,a(2)=1,a(3)=2,a(4)=3,a(5)=5,...... 用matlab 编程,代码如下: % 计算 a(20) k=20; a(1)=1; a(2)=1; for i=3:ka(i)=a(i-2)+a(i-1); end a(k) 运行结果: ans = 6765你要计算第几项,只要改变对应的k就行了. 希望对你有帮助,满意请采纳,谢谢~

江口县13853143713: 用matlab编程实现求n项费波纳切数列 -
邹歪纳德: function out = f(n) out = (((1+sqrt(5))/2)^n-((1-sqrt(5))/2)^n)/sqrt(5);

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网