百科游戏 手游攻略
很多朋友对于matlab递归函数和求用MATLAB如何实现递归计算不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!
如何在MATLAB中用函数的递归调用定义一个函数求解1到n的和
functions=mysum(n)
ifn==1
s=1;
else
s=n+mysum(n-1);
end
检验执行结果:
>>s=mysum(5)
s=
15
>>s=mysum(10)
s=
55
matlab分段+递归函数的表示方法
这里不用递归,递推就可以了
先计算每个区间的基数,
例如第一个区间为0,第二个区间为f(t(2)),第三个区间为f(t(3))。。
这是可以根据关系递推的
然后,计算函数值的时候,关键是要区分其应该在哪个区间
函数入下
functionf=fun(t,x)%要求t一定是递增的数列
b=zeros(size(t));
b(1)=0;b(end)=nan;
forii=2:length(t)-1
b(ii)=b(ii-1)+2*t(ii)^(ii-1);%计算每个区间的基数
end
num=interp1(t,1:length(t),x);
num=ceil(num)-1;%插值计算x划分在哪个区间
num(isnan(num))=length(t);%处理超过t范围的值
num(num==0)=1;%处理第一个x=t(1)
f=b(num)+2*x.^num;%计算函数值,每个区间的基数加上变量
end
将以上内容保存为fun.m
然后在命令行输入如下的代码,看分段函数的图像
x=1:0.1:9;
y=fun([13579],x);
plot(x,y);
理论上,t可以有更多的值,分更多的区间,不过要求t是单调递增的数列
求用MATLAB如何实现递归计算
递归顾名思义就是程序在执行过程中需要自己调用自己,比较经典递归的是求一个数的阶乘.下面是我在MATLA下写的阶乘算法程序,采用了递,你可以体会下.
建立control.m的M文件
functiony=control(x)
ifx==1
y=1;
else
y=x*control(x-1);
end
然后在命令窗口中输入
>>control(5)
ans=
120
这样就可以用MATLAB实现递归,主要的还是程序思想,如果思想对了,用程序实现自己的想法那就可以了
matlab递归函数和求用MATLAB如何实现递归计算的问题分享结束啦,以上的文章解决了您的问题吗?欢迎您下次再来哦!
- 最近发表