2014 年度「計算数学」 2014-12-12

§11.1 定積分の近似計算

(11.1.1) 連続関数 f(x) の 0 から 1 までの定積分は,

   
n-1
Σf(i/n) * (1/n)
i = 0
   または   
n
Σf(i/n) * (1/n)
i = 1

で近似されるのだった。(n→∞ のときの極限が定積分の値になる。)

§11.2 【課題4】

(11.2.1) このアイディアに基づいて,関数 f(x) = x2 + K (K は (10.2.1) で述べた数)を 0 から 1 まで積分した値を,二通り,求めよ。 結果は,それぞれ,小数点以下 60 桁まで表示させよ。

(11.2.2) 1/n を MESH という名の定数とせよ。 その値は,1/2n (n は自然数)にとると誤差が少なくなる。 それには, #define MESH (1.0/1024/512) のように書くとよい。 こう書けば,コンパイラが 1/(1024*512) を計算し, その値で置き換えてくれる。

(11.2.3) 1 でなく 1.0 と書く理由は (9.2.4) を参照。 置き換える値全体は小かっこで囲うのが定石である。 囲わないと,もしもプログラム内に 1/MESH があった場合 1/1.0/1024/512 に置き換わり,予期せぬ結果になるからである。 (「定跡」でなく「定石」としたのは「囲う」の“縁語”だから。)

(11.2.4) 定数 MESH の値は, 両方の式で計算した値を出力させながらだんだんと小さくし, 適当に決めよ。

(11.2.5) メールは,必ず,この授業で配布したアカウントから送れ。 メールの本文冒頭に, 学籍番号,名列番号,氏名(として大学に届けてあるもの)を忘れずに書け。 次に,レポートの内容を, 「x^2 + 14.99 を 0 から 1 まで積分した値を求める」程度に, 簡潔に書け。 (「x^2」は x の二乗の意味でよく使う。C言語では別の意味になるが。)

(11.2.6) その次に,プログラムを載せよ。 その際,Active! mail のメール作成画面の「添付ファイル」 *ではなく* 本文の中にソースファイルを貼りつけること。 そのプログラムは,実験を行なったプログラムそのものでなければならない。 (一部でも変更したときは,コンパイル・実行をやり直すこと。)

(11.2.7) 今回の実行結果は,もちろん,一回分でよい。 かかった時間を計る必要はない。

(11.2.8) 宛て先は私(岩瀬)の実習用アカウント((1.9.7) 参照)である。 件名は「?? kadai4」(←全て半角文字,小文字, ?? は自分の id の下二けた,その後ろに半角スペース一つ, kadai4 の間にはスペースを入れない)とせよ。

§11.3 時間の余った人へ

(11.3.1) 定数 MESH の値を 0.001, 0.0001, 0.00001, ... などにするとどうなるか?


岩瀬順一