まず\(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次のテイラー展開した線が黄色