まず\(sin(x)\)においてテイラー展開で近似式を考えていく。まず、近似していく曲線は下の図のものである。
curve(sin(x),xlim=c(-2*pi,2*pi),ylim=c(-1,1))#sin曲線
まず、\(sin(x)\)の時にテイラー展開で近似するプログラミングを作る。 テイラー展開の一般式は近似を求めたい式を\(f(x)\)とすると、 \[\sum_{k=0}^{n} f^{(n)}(x)\frac{x^n}{n!}\] と表される。
今回は\(f(x)=sin(x)\)である。この1階微分は\(cos(x)\),2階微分は\(-sin(x)\),…というように続いていく。このとき、\(x=0\)のときのこれらの値は、0階微分から順番に0,1,0,-1,…となり、それぞれ場合分けをして展開した値にする。
#sin(x)におけるn次の項までのテイラー展開を定義する。
Tsin <- function(n){#taylorの頭文字Tとあらわすsinを組み合わせる。
r <- 0
for(i in 0:n){
if(i %% 4 == 1)
{r <- r+(x^i)/prod(1:i)}#1,5,9…階微分したとき、x=0の値は1である。
else if(i %% 4 == 3)
{r <- r-(x^i)/prod(1:i)}#3,7,11…階微分したとき、x=0の値は-1である。
}
return(r)
}
このプログラムにおいて、約\(10^4\)次のテイラー展開まで計算できる。
上記のプログラムにおいて、Tsin(2n-1)とTsin(2n)のときの式は同じなので、奇数次のテイラー展開をグラフに表わす。また、30次の場合も参考としてグラフにする。
curve(sin(x),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
xlab="x",ylab="Tsin(n)")#sin曲線が黒色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tsin(1),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="blue",type="l",xlab="x",ylab="Tsin(n)")#1次のテイラー展開した線が青色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tsin(3),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="red",type="l",xlab="x",ylab="Tsin(n)")#3次のテイラー展開した線が赤色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tsin(5),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="orange",type="l",xlab="x",ylab="Tsin(n)")#5次のテイラー展開した線がオレンジ色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tsin(7),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="green",type="l",xlab="x",ylab="Tsin(n)")#7次のテイラー展開した線が緑色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tsin(30),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="yellow",type="l",xlab="x",ylab="Tsin(n)")#30次のテイラー展開した線が黄色
今度は\(sin(x)\)と同様に\(f(x)=cos(x)\)についてテイラー展開で近似式を考えていく。まず、近似していく曲線は下の図のものである。
curve(cos(x),xlim=c(-2*pi,2*pi),ylim=c(-1,1))#cos曲線
まず、\(cos(x)\)の時にテイラー展開で近似するプログラミングを作る。 \(cos(x)\)の1階微分は\(-sin(x)\),2階微分は\(-cos(x)\),…というように続いていく。このとき、\(x=0\)のときのこれらの値は、0階微分から順番に1,0,-1,0,…となり、それぞれ場合分けをして展開した値にする。
#cos(x)におけるn次の項までのテイラー展開を定義する。
Tcos <- function(n){#taylorの頭文字Tとあらわすcosを組み合わせる。
r <- 1
for(i in 1:n){
if(i %% 4 == 0)
{r <- r+(x^i)/prod(1:i)}#4,8,12…階微分したとき、x=0の値は1である。
else if(i %% 4 == 2)
{r <- r-(x^i)/prod(1:i)}#2,6,10…階微分したとき、x=0の値は-1である。
}
return(r)
}
上記の式も\(sin(x)\)同様に約\(10^4\)次までテイラー展開で近似できる。
上記のプログラムにおいて、Tcos(2n-1)とTcos(2n)のときの式は同じなので、偶数次のテイラー展開をグラフに表わす。また、30次の場合も参考としてグラフにする。
curve(cos(x),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
xlab="x",ylab="Tcos(n)")#cos曲線が黒色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tcos(2),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="blue",type="l",xlab="x",ylab="Tcos(n)")#2次のテイラー展開した線が青色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tcos(4),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="red",type="l",xlab="x",ylab="Tcos(n)")#4次のテイラー展開した線が赤色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tcos(6),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="orange",type="l",xlab="x",ylab="Tcos(n)")#6次のテイラー展開した線がオレンジ色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tcos(8),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="green",type="l",xlab="x",ylab="Tcos(n)")#8次のテイラー展開した線が緑色
par(new = T)
x = seq(-5*pi,5*pi,0.001)
plot(x,Tcos(30),xlim=c(-5*pi,5*pi),ylim=c(-3,3),
col="yellow",type="l",xlab="x",ylab="Tcos(n)")#30次のテイラー展開した線が黄色