2016年8月3日水曜日

東大入試数学の近似数値積分を統計ソフトRで考える


ネット上で興味深い数値計算問題に出会った。東京大学(2007年前期)・数学(理系)の第 6 問 (2) である。河合塾の過去問解説などで見られる。

東大・数学(理系)の2007年第6問で,数値積分である。

(1) で上記の不等式を証明させ,(2) でそれを利用して
0.68 < log 2 < 0.71
を導かせる問題であった。 不等式の中の積分区間の大きさが 2x なので,左辺は積分値の長方形近似であり,右辺は台形近似であることが,すぐ分かる。もちろん,両方とも台形近似とみなすことも可能である。

すぐ分かる,と言っても,大学で数値積分を学んだからであり,入試で出題されたら私には解けなかった気がする。数学テキストの古典的名著である高木貞治(著)「解析概論」にも,定積分の近似計算として Simpson 法などが取り上げられていて,学生だった私は,学んだばかりの Fortran で計算して,コンピュータの威力に興奮していたものである。

この問題 (2) は,積分区間をさらに細かくしていって,(1) の不等式の辺々の和を考えるので,パソコン利用に好適な問題とも言える。

以下が R のスクリプトで,積分区間を等分しない場合から,20等分した場合まで,上記不等式の左右の辺で表される近似値の変化を示した。

k<- 1:20 # 等分割数
lw<- as.numeric(NULL)
up<- as.numeric(NULL)

for (i in 1: length(k)) {

  lw[i]<- 0
  up[i]<- 0

  for (j in 1: k[i]) {

  x<- 1/(2*k[i])
  a<- (2*j-1)*x+1

  lw[i]<- 2*x/a+lw[i]
  up[i]<- x*(1/(a+x)+1/(a-x))+up[i]
 }   
}

plot(k, lw, main="1/x 積分による log(2) 近似",
   ylim=c(0.66, 0.76), xlim=c(0, 20), 
   col="blue", pch=1, type = "b",
   xlab="等分割数", ylab="近似積分値",
   yaxp=c(0.66, 0.76, 10), xaxp=c(0, 20, 4))

axis(side=2, at=0.66: 0.76)

lines(k, up, type = "b", col="red", pch=4)

legend("topright", c("台形近似", "長方形近似"),
    col=c("red", "blue"), pch=c(4, 1), lw=2, bty="n")

abline(h = log(2))
mtext("log(2)", side=2, line=2, las=1, at=c(1, log(2)))

abline(h = 0.68)
abline(h = 0.71)

結果のグラフは以下のとおり。


左辺の長方形近似のほうが,右辺の台形近似より,やや速く log(2) に近づくのが分かる。入試問題の条件を満たすには,2 等分で十分であり,紙と鉛筆向けの問題となっている。しかし,今どき,これを紙と鉛筆で解かせるという発想も芸が無い。もう少し複雑にして,パソコンで解かせる入試を考えてほしいものだ。