作业帮 > 综合 > 作业

matlab分段+递归函数的表示方法

来源:学生作业帮 编辑:搜搜做题作业网作业帮 分类:综合作业 时间:2024/04/30 11:15:29
matlab分段+递归函数的表示方法
t=[1 3 5 7 9]
f(x) = 2x ,t(1) < x
matlab分段+递归函数的表示方法
这里不用递归,递推就可以了先计算每个区间的基数,例如第一个区间为0,第二个区间为f(t(2)),第三个区间为f(t(3)).这是可以根据关系递推的
然后,计算函数值的时候,关键是要区分其应该在哪个区间函数入下function f=fun(t,x) %要求t一定是递增的数列
b=zeros(size(t));
b(1)=0;b(end)=nan;
for ii=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([1 3 5 7 9],x);plot(x,y);

理论上,t可以有更多的值,分更多的区间,不过要求t是单调递增的数列