R软件:怎么求分段函数的定积分
给的题目如下:
数学解法:
现在需要用R语言求解。
首先,我尝试了直接在一个函数里用条件语句分段,再用integrate()函数求解,但是这个函数不能求分段函数的积分;
所以我就想简略一点,因为7~9正好在第二段里面,我将分段函数删到只剩第二段了,也就是一个常数,但是integrate()函数也报错了,它也不能求常数函数的积分,我彻底绝望了,就换了个思路。
接下来,我尝试了将三段函数的每一段分别创建一个函数,代码如下:
lam_1<-function(t){
-200+400*t
}
lam_2<-function(t){
1400
}
lam_3<-function(t){
1400-400*(t-13)
}
然后建立一个求积分的总的大函数,代码如下:
ex<-function(a=7,b=9){
if(b<=3){inte<-integrate(lam_1,a,b)}
else if(b<=13){
if(a<3){inte<-integrate(lam_1,a,3)+integrate(lam_2,3,b)}
else(a>=3){ inte<-integrate(lam_2,a,b)}}
else(b<=16){
if(a<3){inte<-integrate(lam_1,a,3)+integrate(lam_2,3,13)+integrate(lam_3,13,b)}
else if(a<13){inte<-integrate(lam_2,a,13)+integrate(lam_3,13,b)}
else{inte<-integrate(lam_3,a,b)}}
return(inte)
}
但是一直报错:
但是我的语法好像又没有什么问题,所以不知道怎么办了,想请问一下大家,我错在哪里,或者有什么办法求分段函数的定积分呢?