帰ってきた「しっぽのさきっちょ」

しっぽのさきっちょ: 2016-02-21 付 (2016-02-22 更新)

算数で遊ぼう または 11 × 11 × 3.14 = 379.94 は誤りか

no extension

問題はこう。

円周率を 3.14 とするとき、半径 11 の円の面積を求めよ

この答えとして $11 \times 11 \times 3.14 = 379.94$ とするのは誤りか? という話。

結論から言おう。

馬鹿じゃねーの?

そもそもこれを正解か不正解かという観点で論じる時点で阿呆である。 日本の学校教育の悪影響がいかんなく発揮されている例と言えよう。 だから「掛け算は順序が大事」とか言う馬鹿がはびこるんだよ。

これは計算問題である。 上の問題を言い換えるのなら

$r = 11$, $\pi = 3.14$ として $\pi{r}^2$ を計算せよ

と言っているのと同じ。 ただの計算結果だから答えは 379.94 で間違いない。 ここに議論の余地はない。

(国外は知らないが)日本の小学校は何故か代数を教えない。 だから算数の問題もこんな冗長な文章になってしまうし意味のないものに意味を付加する馬鹿野郎も現れる。 ちゃんと小学生の時に代数を教えれば鶴亀算とかワケワカメなものも教えなくて済むのに。

閑話休題。

問題を,文章を糞真面目に解釈して,「(誤差評価を含めて)円の面積を求めよ」とするなら話は変わる。 なぜなら 11 も 3.14 も「数」ではなく「値」になるから。

円周率は超越数である(今の小学生が「超越数」という言葉を習うかどうかは知らないが)。 ある決まった定数だが,いくらでも桁を大きくとれる。 「半径11」を固定にして円周率の桁を変えて計算してみる。 暗算が苦手なら電卓を使えばいいし,電卓もかったるいというのならプログラムを組めばいい。 私は最近 Go 言語を勉強しているので,これでプログラムを組んでみよう。

package main

import "fmt"

func main() {
	r := 11.0
	pilist := []float64{3.0, 3.1, 3.14, 3.142, 3.1416, 3.14159}
	for _, pi := range pilist {
		fmt.Printf("r = %f , pi = %f , pi*r^2 = %f\n", r, pi, pi*r*r)
	}
}

この計算結果を表にして整理してみる。

$r$ $\pi$ $\pi{r}^2$
11 3
363.000000
3.1 375.100000
3.14 379.940000
3.142 380.182000
3.1416 380.133600
3.14159 380.132390

最初の 3 を除いて先頭の2桁がほぼ “38” に収斂しているのがわかると思う。 ここで「有効桁数」の概念が出てくる。 つまり有効桁数で評価するなら約 380 または $3.8 \times 10^2$ となる。

一方,半径 11 は測定値である。 測定値には必ず誤差が伴う1。 ここでは半径を $11.00\pm0.40\,\mathrm{cm}$ として考える(値なら単位がないとね。この範囲なら四捨五入して 11 である)。 この条件で計算結果がどう変わるか同じように計算してみる2。 ちなみに円周率は先ほどの計算結果を考慮して大きめに 3.1416 としてみた。

package main

import "fmt"

func main() {
	rlist := []float64{10.6, 10.7, 10.8, 10.9, 11.0, 11.1, 11.2, 11.3, 11.4}
	pi := 3.1416
	for _, r := range rlist {
		fmt.Printf("r = %f , pi = %f , pi*r^2 = %f\n", r, pi, pi*r*r)
	}
}

以下が計算結果。

$r$ $\pi$ $\pi{r}^2$
10.60
3.1416 352.990176
10.70 359.681784
10.80 366.436224
10.90 373.253496
11.00 380.133600
11.10 387.076536
11.20 394.082304
11.30 401.150904
11.40 408.282336

同じ「半径11」でこんなにも計算結果が違うのが分かるだろう。 これを「誤差の伝播」という。

実は半径の誤差の $\pm0.40\,\mathrm{cm}$ というのは $11\,\mathrm{cm}$ に対してかなり大きい。 詳しい説明は面倒くさいので省くが, $A$, $r$ の関係式

\[ A = \pi{r}^2 \]

の誤差をそれぞれ $r_A$, $r_r$ とすると

\[ \left(\frac{r_A}{A}\right)^2 = 4\left(\frac{r_r}{r}\right)^2 \]

の関係があるため3,この場合の面積は $380.1\pm27.6\,\mathrm{cm}^2$ ということになる。 これがもし半径 $11.00\pm0.10\,\mathrm{cm}$ 程度の誤差なら面積は $380.1\pm6.9\,\mathrm{cm}^2$ となる。

最近の子どもは知らないが,私はこれ(誤差論)を大学に入ってから正式に習った。 「小学生には無理」とは言わないが,有効桁数を含め誤差について論じるのならきちんと手順を踏んで教える必要がある。 「正解」「不正解」でぶった切るなんてもっともやってはいけないことである。

なお,誤差論を習うなら微積分と統計学の基礎知識が必要である。 高校の数学レベルでいけるはず。 あるいは結城浩さんの「数学ガール」シリーズを読む手もある。

photo
数学ガールの秘密ノート/微分を追いかけて
結城 浩
SBクリエイティブ 2015-04-18
評価

数学ガールの秘密ノート/数列の広場 数学ガールの秘密ノート/丸い三角関数 数学ガールの秘密ノート/整数で遊ぼう 数学文章作法 推敲編 (ちくま学芸文庫) 数学の言葉で世界を見たら 父から娘に贈る数学

三角関数や微分方程式は物理学,特に天文学を理解するには必須の道具。学校で教えてくれるのを待ってる暇はないのだよ。そして三角関数や微分(と積分)を理解すると理科も数学も抜群に面白くなる。

reviewed by Spiegel on 2015/04/30 (powered by G-Tools)

photo
基礎物理学実験 増訂版
下村 健次
共立出版 1977-10-05
評価

学生時代,私はコレで実験の基礎を習いました。

reviewed by Spiegel on 2016-02-21 (powered by G-Tools)


  1. 有効桁数が云々というのなら他の誤差評価も必ず必要。なお,ここでは誤差を平均2乗誤差とみなす。 [return]
  2. 平均2乗誤差の $11.00\pm0.40\,\mathrm{cm}$ は厳密には「測定値が 10.6 から 11.4 の間にある」という意味ではないのだが,ここでは計算結果の振れ方を見て欲しいので,こんな感じになっている。専門家の方,怒らないでね。 [return]
  3. これを「誤差の伝播」の法則と呼ぶ。 [return]