matlab函数的递归调用

1、求n的阶乘

函数文件fact.m
function f=fact (n)
if n<=1
    f=1;
else
    f=fact (n-1)*n;   
end

脚本文件a.m
n=input('Please input n=');
s=fact (n);
disp(s)

2、斐波拉契数列

Fibonacci数列定义如下:
                f1=1
                f2=1
                fn=fn-1+fn-2   (n>2)
编写递归调用函数求Fibonacci数列的第n项,然后调用该函数验证Fibonacci数列的如下性质:
                  f1^2+f2^2+f3^2+……+fn^2=fn×fn+1

函数文件ffib.m
function f=ffib(n)
if n>2
    f=ffib(n-1)+ffib(n-2);
else
    f=1;
end

脚本文件test.m
F=[];
for k=1:20
    F=[F,ffib(k)*ffib(k)]; %追加
end
sum(F)
ffib(20)*ffib(21)

注:该性质可用如下的图形解释,等式两边分别是面积的两种算法(小面积之和=总面积)。

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐