サインカーブの長さ

L.sin <- function(a,b,x0=0,x1=2*pi,N=100000){
	x <- seq(from=x0,to=x1,length=N)
	x <- x[-N]
	sum(sqrt(1+a^2*b^2*cos(b*x)^2)) * (x1-x0)/(N-1)
}

L.sin(1,1)

as <- seq(from=0,to=20,length=50)
Ls <- rep(0,length(as))
for(i in 1:length(as)){
	Ls[i] <- L.sin(as[i],1)
}
plot(as,Ls)
bs <- 0:10
Ls <- rep(0,length(bs))
for(i in 1:length(bs)){
	Ls[i] <- L.sin(1,bs[i])
}
plot(bs,Ls)