数値解析 — 演習問題 — 電子情報システム学科 担当:高安亮紀 1/12 2 分法 1. a0 := a, b0 := b とする. 2. cn+1 := an +bn 2 (an , bn の中点; n = 0, 1, 2, · · · ) とする. 3. cn+1 が「十分解に近く」なったら終了, そうでなければ ▶ f (an )f (cn+1 ) < 0 (f (an ) と f (cn+1 ) が異符号) ならば, an+1 := an , bn+1 := cn+1 , ▶ f (bn )f (cn+1 ) < 0 (f (bn ) と f (cn+1 ) が異符号) ならば, an+1 := cn+1 , bn+1 := bn として, 区間 [an+1 , bn+1 ] を構成し, 2–3 を繰り返す. 2/12 Newton-Raphson 法 1. 適当な初期値 x0 を与える. 2. xn+1 := xn − f (xn ) f ′ (xn ) (n = 0, 1, 2, · · · ) とする. xn+1 が「十分解に近付く」まで, これを繰り返す. 3/12 どのように微分するか? Newton 法の反復 xn+1 := xn − f (xn ) f ′ (xn ) において, f ′ (xn ) をどのように計算するのか.f ′ (x) が具体 n) の代わ 的に書ける場合はいいが,そうでない場合は − ff′(x (xn ) りに −f (xn ) [f (xn ) − f (xn−1 )]/(xn − xn−1 ) という数値微分を用いることも多い.これは割線法(secant method)という手法と同じである. 4/12 演習について ▶ 以下で指示される 3 問のプログラムをそれぞれ作成し, 共有フォルダより提出せよ. ▶ はじめに自分 PC のフォルダ内に学籍番号のフォルダを 作成し,出来たコードを入れておく. ▶ 各コードのファイル名は「問題番号 学籍番号.c」と する. ▶ 提出は共有フォルダ内に学籍番号のフォルダを丸ごと 提出する. (一度提出したファイルは編集できないので 注意!) 提出期限:5 月 19 日(火)14:00 ▶ 5/12 提出するに当たって,以下のことに注意すること. ▶ C 言語で書くこと(C++はダメ). ▶ コンパイルが必ず通るものを提出する. ▶ 見て分かりやすいコードを書く(インデント重要). ▶ コピーしたコードや参考にしたものがあれば必ず書く. ▶ 提出期限を過ぎてからのファイルは受け付けません. C 言語であればどんなコードでも良い.問題の表示と同 様に出力するコードを作成してください.またコード作 成の際は,紙とペンを使用してコードを作成することを おすすめします. 6/12 第1問 7/12 第1問 √ 2 分法を用いて, 2 を計算するプログラムを書きなさい. (非線形方程式 x2 − 2 = 0 を解くプログラム) ▶ ソースファイルは「01 学籍番号.c」とせよ. ▶ 入力と表示は以下のようにする: Input initial inteval [a,b]: a = 1.0【Enter】 b = 50.0【Enter】 1.414213562373095 * 小数点以下 15 桁が正しく表記されるようにせよ. 8/12 第2問 9/12 第2問 整数値 n と小数値 a を与えたとき,Newton 法もしくは数値 微分を利用した割線法を用いることにより a の n 乗根を計 算するプログラムを作れ. ▶ ソースファイルは「02 学籍番号.c」とせよ ▶ 表示は以下のようにする: Compute n th root of a: n = 10【Enter】 a = 3.0【Enter】 1.116123174033905 * √ 3 ≈ 1.1161231740339044. 10 10/12 第3問 11/12 第3問 非線形関数 ( x) f (x) = 40 log 1 + − log(2) 4 としたとき(log の底は e),f (x) = 0 の解は区間 [0, 1] 内に 解がありそうである.この解を数値計算するプログラムを 作成せよ. ▶ ソースファイルは「03 学籍番号.c」とせよ ▶ 表示は以下のようにする: Answer is ?.??????????????? * 小数点以下 15 桁まで表示させよ. 12/12
© Copyright 2025 ExpyDoc