用MATLAB怎麼編寫斐波那契數列?

時間 2021-06-08 10:54:49

1樓:Marcovaldo

1、使用matlab中的fibonacci(n)函式:

在matlab中fibonacci(n)返回第n個斐波那契數

clcclear all

%第23項的斐波那契數

the_23=fibonacci(23);

X=sprintf("第23項的斐波那契數:%d",the_23);

disp(X);

%前23項(包含第23項)斐波那契數列之和

sum_23=0;

for n=1:23

sum_23=sum_23+fibonacci(n);

endY=sprintf("前23項(包含第23項)斐波那契數列之和:%d",sum_23);

disp(Y);

結果:第23項的斐波那契數:28657

前23項(包含第23項)斐波那契數列之和:75024

2、手擼斐波那契數計算函式:用自己編寫的斐波那契數計算函式代替matlab中的fibonacci(n)函式

斐波那契數的計算關係式:

2.1 迭代計算

clcclear all

%第23項的斐波那契數

the_23=my_fibonacci_iteration_function(23);

X=sprintf("第23項的斐波那契數:%d",the_23);

disp(X);

%前23項(包含第23項)斐波那契數列之和

sum_23=0;

for n=1:23

sum_23=sum_23+my_fibonacci_iteration_function(n);

endY=sprintf("前23項(包含第23項)斐波那契數列之和:%d",sum_23);

disp(Y);

%迭代計算第n(i>=1 )個斐波那契數

function [Y]=my_fibonacci_iteration_function(n)

X=0; %前一項,第0項

Y=1; %後一項,第1項

for i=2:n

temp=Y; %用乙個變數記錄

Y=X+Y;

X=temp;

endend

2.2 遞迴計算

clcclear all

%第23項的斐波那契數

the_23=my_fibonacci_recursive_function(23);

X=sprintf("第23項的斐波那契數:%d",the_23);

disp(X);

%前23項(包含第23項)斐波那契數列之和

sum_23=0;

for n=1:23

sum_23=sum_23+my_fibonacci_recursive_function(n);

endY=sprintf("前23項(包含第23項)斐波那契數列之和:%d",sum_23);

disp(Y);

%遞迴計算第n(i>=1 )個斐波那契數

function [Y]=my_fibonacci_recursive_function(n)

if(n==1||n==2)

Y=1;

return

else

Y=my_fibonacci_recursive_function(n-1)+my_fibonacci_recursive_function(n-2);

return

endend

2.3 矩陣計算

計算原理:

clcclear all

%第23項的斐波那契數

the_23=my_fibonacci_matric_function(23);

X=sprintf("第23項的斐波那契數:%d",the_23);

disp(X);

%前23項(包含第23項)斐波那契數列之和

sum_23=0;

for n=1:23

sum_23=sum_23+my_fibonacci_matric_function(n);

endY=sprintf("前23項(包含第23項)斐波那契數列之和:%d",sum_23);

disp(Y);

%矩陣計算第n(i>=1 )個斐波那契數

function [Y]=my_fibonacci_matric_function(n)

M=[1,1;1,0變換矩陣

F_init=[1;1初始向量

F_result=(M^(n-2))*F_init; %計算結果向量

Y=F_result(1);

returnend

2樓:matlab愛好者

前23項序列:

sri = fibonacci(1:23)前23項序列之和:

ssri = sum(fibonacci(1:23))

用 python輸出斐波那契(Fibonacci)數列的前 20 項,要求每行輸出 5 項。?

海星星 1 end right.end eeimg 1 斐波那契數列公式如上,在Python中可以使用遞迴與遞推兩種方法求解斐波那契數列項。1.遞迴法 defFibonacci n if n 0 return 1elif n 1 return 1return Fibonacci n 1 Fibona...

為什麼下面程式遞迴計算斐波那契數列java比c 要快?

c 語言 private static IEnumerable Fibonacci Fibonacci Take 20 很簡單 z root 我是來抖機靈的 高富帥狂公升硬體矮窮矬死改演算法 long fib inta returnf Leo 試下這個 include template class ...

如何計算斐波那契數列中的第n項有多少位

Exception 一律py38招呼 lambda x len fib lambda n 1 if n 3 else fib n 1 fib n 2 x n for n in range 101 零到一百,夠了嗎?不行再改。 陳炳好 python3 作者知乎 陳炳好時間複雜度 nwhile1 a,b...