算数で遊ぼう または 11 × 11 × 3.14 = 379.94 は誤りか
問題はこう。
円周率を 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$ の関係式
の誤差をそれぞれ $r_A$, $r_r$ とすると
の関係があるため3,この場合の面積は $380.1\pm27.6\,\mathrm{cm}^2$ ということになる。 これがもし半径 $11.00\pm0.10\,\mathrm{cm}$ 程度の誤差なら面積は $380.1\pm6.9\,\mathrm{cm}^2$ となる。
最近の子どもは知らないが,私はこれ(誤差論)を大学に入ってから正式に習った。 「小学生には無理」とは言わないが,有効桁数を含め誤差について論じるのならきちんと手順を踏んで教える必要がある。 「正解」「不正解」でぶった切るなんてもっともやってはいけないことである。
なお,誤差論を習うなら微積分と統計学の基礎知識が必要である。 高校の数学レベルでいけるはず。 あるいは結城浩さんの「数学ガール」シリーズを読む手もある。
参考図書
- 数学ガールの秘密ノート/微分を追いかけて
- 結城 浩 (著)
- SBクリエイティブ 2015-04-17 (Release 2015-05-26)
- Kindle版
- B00Y9EYOIW (ASIN)
- 評価
三角関数や微分方程式は物理学,特に天文学を理解するには必須の道具。学校で教えてくれるのを待ってる暇はないのだよ。そして三角関数や微分(と積分)を理解すると理科も数学も抜群に面白くなる。
- 基礎物理学実験 増訂版
- 下村 健次 (編集), 井上 則好 (編集), 上垣内 孝彦 (編集), 大内 侃 (編集), 小此木 久一郎 (編集), 岡本 哲彦 (編集), 尾田 年充 (編集)
- 共立出版 1977-10-05
- 単行本
- 4320030885 (ASIN), 9784320030886 (EAN), 4320030885 (ISBN)
- 評価
学生時代,私はコレで実験の基礎を習いました。もちろん絶版本。