请教R语言说明
想请教实现以下3个目标
1. x3 <- 4.20119,x6 <- 7.50127 是我通过Mathematica 计算的Bessel函数3阶和6阶导数为0的点,我想干的事情是在0到x3之间画3阶的Bessel函数,之后把6阶Bessel函数翻转一下紧跟在后面,我是用(besselJ(-x+x6+x3, nu=6))实现的,但因为对R语法不熟悉,我编的程序并不听话,画出的图形不是我上面描述的,你可以找一下Bessel函数的图形看一下
2. 在把第一个目标完整实现后,想在其后重复一下这个波形,而且使波形的宽度具有随机性,貌似可以通过调节参数实现
3. 把第二个目标也完整实现后,也就是模拟出了一条想要的波形,现在的目标是随机模拟100条(我在程序的后面附上了用sapply() 这个函数实现100条模拟的其它程序,请参考)
就以上三个目标,希望各位大神帮我想一想,真的多谢了!下面是我自己编的R程序
x3 <- 4.20119
x6 <- 7.50127
f5 <- function (x) {
if (0 <= x && x < x3)
return (besselJ(x, nu=3))
else if (x3 <= x && x < x3+x6)
return (besselJ(-x+x6+x3, nu=6))
else
return (0)
}
plot(x, f5(x), type="l", col="red")
#可以参考的画100条的例子
t1<-round(runif(100,1,99))
t2<-round(runif(100,1,99))
s<-sapply(1:100,FUN=function(x) min(t1[x],t2[x]))
e<-sapply(1:100,FUN=function(x) max(t1[x],t2[x]))+1
l<-runif(100,0,40)
h<-sapply(1:100,FUN=function(x) runif(1,l[x],40))
gen<-function(x)
{
rst<-rep(0,100)
rst[1:s[x]]<-l[x]
rst[(s[x]+1):e[x]] <- h[x]
rst[(e[x]+1):100] <- l[x]
return(rst)
}
Y2<-lapply(1:100,FUN=gen)
plot(1:100,Y2[[100]],type="l")
真的很感谢啊~