t=[1 3 5 7 9]
f(x) = 2x , t(1) < x <= t(2)
f(x) = f(t(2)) + 2x^2 , t(2) < x <= t(3)
f(x) = f(t(3)) + 2x^3 , t(3) < x <= t(4)
f(x) = f(t(4)) + 2x^4 , t(4) < x <= t(5)
分段函数的段数为向量t的长度减1,是一个变量。所以不能简单的分为4段。
该怎么用matlab编写呢?
这里不用递归,递推就可以了
先计算每个区间的基数,
例如第一个区间为0,第二个区间为f(t(2)),第三个区间为f(t(3))。。
这是可以根据关系递推的
然后,计算函数值的时候,关键是要区分其应该在哪个区间
函数入下
function f=fun(t,x) %要求t一定是递增的数列将以上内容保存为fun.m
然后在命令行输入如下的代码,看分段函数的图像
x=1:0.1:9;
y=fun([1 3 5 7 9],x);
plot(x,y);
理论上,t可以有更多的值,分更多的区间,不过要求t是单调递增的数列