前期最終日 まとめ これまでやったこと 計算機の内部 ( 本来の講義と関係ないが、知っていると理解が進む.. ) 内部表現 整数 二進法で表現されている。 十進数との違いを理解 0/1 だけで表現できる 論理回路との関係 浮動小数点数 文字 計算機の動き エラーが生じた時の対処方法 方程式を解く ( Main ) 解法の種類 直接法 解の公式を利用する 手順が決っており、有限 Step で終了する => 必ずあるとは限らない 反復法 与えられた方程式に基いて、解を推定する。 推定解の改良(変形)を繰り返す 繰り返す回数が決っていない 非線型方程式 # 問題としては難しいが、解法は簡単 ( なものしかない ) 反復法のみ 二分法 f(a)f(b)<0 となる a, b から始めて.. 区間を詰めて行く.. ( 一次収束 ) # この a, b を求めることが実は難しい ニュートン法 微係数の情報を利用する 速い ( 二次収束 ) # 最初の一桁が遅い # 解がでないこともある.. 代数方程式の解法 n 次式なら n 個解 ただし、複素数 線型方程式 直接法 ガウスの消去法のみで Okey LU 分解は、ガウスの消去法の手順を記憶して再利用する方法 反復法 ( スパース行列を解く場合に利用 ) ヤコビ法 ガウス=ザイデル法 # この二つは殆ど親戚 対角優位な行列に適用する。 a11 x1 + a12 x2 + a13 x3 = b1 a21 x1 + a22 x2 + a23 x3 = b2 a31 x1 + a32 x2 + a33 x3 = b3 より x1 = 1/a11 { b1 - a12 x2 - a13 x3) x2 = 1/a22 { b2 - a21 x2 - a23 x3) x3 = 1/a33 { b3 - a31 x1 - a32 x2 ) とする ( ヤコビ ) SOR 法 ガウス=ザイデルの修正量Δx を w 倍する ( 0 < w < 2 ) CG 法 n step で解ける 「講義の目的」 数値計算の over view を眺めてもらう => 細かい内容はふれない => 必要になったら、細かい処は自分で調べる。 数値計算を専門にすると、利用されるのは、全体の一部 それぞれ細かくやっても役に立たない ( し、時間的に難しい ) 全体の概要を理解してもらうことが目的 == 数字と数値 ( 数の表現 ) どの数字がどの数値を表しているかは本質的でない 表現と値に 1-to-1 の関係があればよい 負の数の表現 負号 bit を設ける => 絶対値表現 ( i.e. IBM 7090 ) 二の補数表現 a + (-a) = 0 であることを 数の範囲は有限 逆元をどう定義するか ? a が n bit で表現されているとき -a = 2^n - a で定義。 浮動小数点数 (符号部と..) 仮数部と指数部からなる => 長さのバリエーションがいくつかるが... IEEE が普通 1+8+23