行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行

Similar documents
09.pptx

行列、ベクトル

差分スキーム 物理 化学 生物現象には微分方程式でモデル化される例が多い モデルを使って現実の現象をコンピュータ上で再現することをシミュレーション ( 数値シミュレーション コンピュータシミュレーション ) と呼ぶ そのためには 微分方程式をコンピュータ上で計算できる数値スキームで近似することが必要

Microsoft PowerPoint - Eigen.ppt [互換モード]

Microsoft PowerPoint - 10.pptx

Microsoft PowerPoint - 10.pptx

数学 ⅡB < 公理 > 公理を論拠に定義を用いて定理を証明する 1 大小関係の公理 順序 (a > b, a = b, a > b 1 つ成立 a > b, b > c a > c 成立 ) 順序と演算 (a > b a + c > b + c (a > b, c > 0 ac > bc) 2 図

スライド 1

代数 幾何 < ベクトル > 1 ベクトルの演算 和 差 実数倍については 文字の計算と同様 2 ベクトルの成分表示 平面ベクトル : a x e y e x, ) ( 1 y1 空間ベクトル : a x e y e z e x, y, ) ( 1 1 z1

PowerPoint Presentation

vecrot

<4D F736F F D E4F8E9F82C982A882AF82E98D7397F1>

板バネの元は固定にします x[0] は常に0です : > x[0]:=t->0; (1.2) 初期値の設定をします 以降 for 文処理のため 空集合を生成しておきます : > init:={}: 30 番目 ( 端 ) 以外については 初期高さおよび初速は全て 0 にします 初期高さを x[j]

に対して 例 2: に対して 逆行列は常に存在するとは限らない 逆行列が存在する行列を正則行列 (regular matrix) という 正則である 逆行列が存在する 一般に 正則行列 A の逆行列 A -1 も正則であり (A -1 ) -1 =A が成り立つ また 2 つの正則行列 A B の積

スライド 1

補足 中学で学習したフレミング左手の法則 ( 電 磁 力 ) と関連付けると覚えやすい 電磁力は電流と磁界の外積で表される 力 F 磁 電磁力 F li 右ねじの回転の向き電 li ( l は導線の長さ ) 補足 有向線分とベクトル有向線分 : 矢印の位

以下 変数の上のドットは時間に関する微分を表わしている (ex. 2 dx d x x, x 2 dt dt ) 付録 E 非線形微分方程式の平衡点の安定性解析 E-1) 非線形方程式の線形近似特に言及してこなかったが これまでは線形微分方程式 ( x や x, x などがすべて 1 次で なおかつ

memo

航空機の運動方程式

untitled

パソコンシミュレータの現状

12.pptx

NumericalProg09

u τ = 2 u x 2 u(x, 0) = max[e ( 2r σ 2 1)x/2 e ( 2r σ 2 +1)x/2, 0] lim u(x, τ) = x lim u(x, τ) =0 x 1 u(x, τ) V (S, t) V = E 1 2 (1+k) S 1 2 (1 k) e 1

スライド タイトルなし

PowerPoint プレゼンテーション

Microsoft PowerPoint - 9.pptx

Microsoft PowerPoint - H21生物計算化学2.ppt

海生研ニュース

受信機時計誤差項の が残ったままであるが これをも消去するのが 重位相差である. 重位相差ある時刻に 衛星 から送られてくる搬送波位相データを 台の受信機 でそれぞれ測定する このとき各受信機で測定された衛星 からの搬送波位相データを Φ Φ とし 同様に衛星 からの搬送波位相データを Φ Φ とす

C言語による数値計算プログラミング演習

航空機の運動方程式

Microsoft Word - COMP-MATH-2016-FULLTEXT.doc

2日目 10月31日(金曜日)プログラム

本文/本文


ω ω

横組/中高 技術科問題           ●

Microsoft PowerPoint - 9.pptx

Microsoft Word - thesis.doc

( ) 5 Reduction ( ) A M n (C) Av = λv (v 0) (11.1) λ C A (eigenvalue) v C n A λ (eigenvector) M n (R) A λ(a) A M n (R) n A λ

PSCHG000.PS

<8D828D5A838A817C A77425F91E6318FCD2E6D6364>

DVIOUT-17syoze

DVIOUT




untitled

2011年度 筑波大・理系数学

数学の世界

数学 Ⅲ 無限等比級数の問題解答 問 1 次の無限級数の和を求めよ (1) (5) (2) (6) (7) (3) ( 解 )(1) 初項 < 公比 < の無限等比級数より収束し (4) (2) (3) その和は ( 答 ) であるから 初項 < 公比 となっている よって 収束し その和は よって

連立方程式の解法

多次元レーザー分光で探る凝縮分子系の超高速動力学

Microsoft PowerPoint - Eigen.pptx

< BD96CA E B816989A B A>

‘¬”R.qx

Matrix and summation convention Kronecker delta δ ij 1 = 0 ( i = j) ( i j) permutation symbol e ijk = (even permutation) (odd permutation) (othe

PowerPoint Presentation

景気指標の新しい動向

2019年度 千葉大・理系数学

スライド 1

レッスン15  行列とグラフ

åłºæœ›å•¤ï¼„åłºæœ›ã…Žã‡¯ã…‹ã…«ã†®æ±‡ã‡†æŒ¹

§6



学習指導要領

DVIOUT-SS_Ma



2013年度 九州大・理系数学

オートマトン 形式言語及び演習 3. 正規表現 酒井正彦 正規表現とは 正規表現 ( 正則表現, Regular Expression) オートマトン : 言語を定義する機械正規表現 : 言語

第 4 週コンボリューションその 2, 正弦波による分解 教科書 p. 16~ 目標コンボリューションの演習. 正弦波による信号の分解の考え方の理解. 正弦波の複素表現を学ぶ. 演習問題 問 1. 以下の図にならって,1 と 2 の δ 関数を図示せよ δ (t) 2

テレビ講座追加資料1105

Math-quarium 練習問題 + 図形の性質 線分 は の二等分線であるから :=:=:=: よって = = = 線分 は の外角の二等分線であるから :=:=:=: よって :=: したがって == 以上から =+=+= 右の図において, 点 は の外心である α,βを求めよ α β 70

2011年度 東京工大・数学

ボルツマンマシンの高速化

線形代数とは

2014年度 筑波大・理系数学

研究紀要 第5号

ベクトル公式.rtf

Microsoft Word - K-ピタゴラス数.doc


1



液晶ディスプレイ取説TD-E432/TD-E502/TD-E552/TD-E652/TD-E432D/TD-E502D

000-.\..



スタイルシェルフ 〈クローク収納プラン〉

2

<31332D97708CEA89F090E02E6D6364>

マイスタープロジェクト 推奨仕様

第18回海岸シンポジウム報告書

3

(718)



Transcription:

行列の反復解法 1. 点 Jacobi 法 数値解法の重要な概念の一つである反復法を取り上げ 連立一次方程式 Au=b の反復解法を調べる 行列のスペクトル半径と収束行列の定義を与える 行列のスペクトル半径行列 Aの固有値の絶対値の最大値でもって 行列 Aのスペクトル半径 r(a) を与える 収束行列 B が正方行列で のとき B を収束行列と呼ぶ 定理収束行列のスペクトル半径は である 簡単な証明もし ρ(b) 1 ならば 固有ベクトルp 0 で となる p がある このとき p=p だから ベクトル列 { p} は 0 に収束しない 行列の分離と反復解法行列 Aを分離 (regular することを考える 分離方法には様々な方法が考えられる splitting) が 今 A=S-T と分離する そこで 初期値 u0 として 反復 m 回目の計算を構成できる 列 + 条件 1 新しい条件 2 列 が容易に計算される したがって 条件 2を満たすためには B= 実際 収束行列でなければならない =

よって = = 分離の方法 点 Jacobi 行列 D: 対角行列 E: 狭義下三角行列 F: 狭義上三角行列と A を分離することができる このとき + Bを点 Jacobi 行列と呼ぶ 条件 1 条件 2 点 Jacobi 法のコード n:=10: A:=Matrix(1..n,1..n): b:=vector([1,1,1,1,1,1,1,1,1,1]): for i from 1 to n-1 do: A[i,i+1]:=-1: A[i+1,i]:=-1: for i from 1 to n do: A[i,i]:=2: A; (1)

(1) E:=Matrix(n,n,shape=identity): DD:=2*E: IDD:=(1/2)*E: Aの対角行列 DDの逆行列は容易に計算できて IDD と定義できる このとき 点 Jacobi 行列は B:=IDD.(DD-A); (2) と計算できる 点 Jacobi 法のコード N:=200: m:=1:

eps:=0.001: err:=1.0: u:=vector([1,1,1,1,1,1,1,1,1,1]): ER:=Array(1..N-1): x:=array(1..n-1): while ( err>eps and m<n ) do: um:=u: u:=b.u+idd.b: err:=(u-um).(u-um): err:=evalf(sqrt(err),7): ER[m]:=err: x[m]:=m: m:=m+1: evalf(u,7); (3) evalf(err,7); 0.0009811129 m-1; 176 (4) (5) 点 Jacobi 法の収束のふるまい plot(x,er);

1 0 0 20 40 60 80 100120140160 2. 点 Gauss-Siedel 法 Au=b の反復解法をさらに調べ そのアルゴリズムの改善をはかる 行列の分離と反復解法 行列 Aを分離 (regular することを考える 分離方法には様々な方法が考えられる splitting) が 今 A=S-T と分離する そこで 初期値 u0 として 反復 m 回目の計算を構成できる 列 + 条件 1 新しい条件 2 列 が容易に計算される したがって

分離の方法 点 Gauus-Siedel 行列 D: 対角行列 E: 狭義下三角行列 F: 狭義上三角行列と A を分離することができる このとき + Cを点 Gauss-Siedel 行列と呼ぶ 条件 1 条件 2 アルゴリズムの改善点 であり 成分 行列 A=D E F の設定 n:=10: A:=Matrix(1..n,1..n): AE:=Matrix(1..n,1..n): AF:=Matrix(1..n,1..n): b:=vector([1,1,1,1,1,1,1,1,1,1]): for i from 1 to n-1 do: A[i,i+1]:=-1: AF[i,i+1]:=1: A[i+1,i]:=-1: AE[i+1,i]:=1: for i from 1 to n do: A[i,i]:=2: A;

(6) AF;AE; (7) 点 Gauss-Siedel 法のコード EE:=Matrix(n,n,shape=identity): DD:=2*EE: DD-AE は下三角行列だから 逆行列は容易に計算できるが ここでは MatrixInverse コマ

ンドを使う with(linearalgebra): IDE:=MatrixInverse(DD-AE); (8) このとき 点 Gauss-Siedel 行列は C:=IDE.AF; (9)

(9) と計算できる N:=100: m:=1: eps:=0.001: err:=1.0: u:=vector([1,1,1,1,1,1,1,1,1,1]): ER:=Array(1..N-1): x:=array(1..n-1): while ( err>eps and m<n ) do: um:=u: u:=c.u+ide.b: err:=(u-um).(u-um): err:=evalf(sqrt(err),7): ER[m]:=err: x[m]:=m: m:=m+1: evalf(u,7); (10)

(10) evalf(err,7); 0.0009816868 m-1; 点 Gauss-Siedel 法の収束のふるまい 97 (11) (12) plot(x,er); 2 1 0 0 10 20 30 40 50 60 70 80 90

3. 法 SOR 連立一次方程式 Au=b の反復解法を構成した その中で 点 Gauss-Siedel 法は点 Jacobi 法よりも収束性が向上していることがわかった その結果を基に アルゴリズムをさらに改善してみる 行列の分離と反復解法 反復解法は 行列 Aを分離 (regular して構成した 分離方法には様々な方法が考え splitting) られるが 今 A=S-T と分離する そこで 初期値 u0 として 反復 m 回目の計算を構成できる 列以下の条件を満たすことが必要である + 条件 1 新しい条件 2 列 が容易に計算される したがって 分離の方法 点 Gauus-Siedel 行列 D: 対角行列 E: 狭義下三角行列 F: 狭義上三角行列と A を分離することができる このとき + Cを点 Gauss-Siedel 行列と呼ぶ 条件 1 条件 2 アルゴリズムの改善点 であり

いる SOR 反復法 (Successive Overrelaxation Iterative Met 点 Gauss-Siedel 法で新しく計算された成分に加速パラメータwを乗じて 修正量の効果を大きく補正し 新しい反復解を構成する すなわち 反復ベクトルを + として求める のとき 新しく A を 4 4 行列とし成分ごとに書いて このことを説明する であり 補正量を w によって調整する これを行列で書くと である を消去すれば よって =(1- =(1- =(1- =(1- =(1- =(1- =((1- = ((1- 行列 SOR= ((1- が得られ この行列を点 SOR 行列と呼ぶ 点 SOR 行列において以上をまとめ SOR 法のコードを作成する SOR 法のコード n:=10: A:=Matrix(1..n,1..n): AE:=Matrix(1..n,1..n): AF:=Matrix(1..n,1..n): b:=vector(1..n): for i from 1 to n-1 do:

A[i,i+1]:=-1.0: AF[i,i+1]:=1.0: A[i+1,i]:=-1.0: AE[i+1,i]:=1.0: for i from 1 to n do: A[i,i]:=2.0: b[i]:=1.0: AF:AE: EE:=Matrix(n,n,shape=identity): DD:=2.0*EE: (13) OMEGA:=1.5: with(linearalgebra): IDE:=MatrixInverse(DD-OMEGA*AE): このとき 点 SOR 行列は SOR:=IDE.((1.0-OMEGA)*DD+OMEGA*AF): と計算できる 課題 9.1 行列 SOR は 0<ω<2.0 のとき収束行列であることを数値実験で調べよ コード N:=100: m:=1: eps:=0.001: err:=1.0: u:=vector(1..n): for i from 1 to n do: u[i]:=1.0: ER:=Array(1..N-1): x:=array(1..n-1): while ( err>eps and m<n ) do: um:=u: u:=sor.u+omega*ide.b: err:=(u-um).(u-um): err:=evalf(sqrt(err),7): ER[m]:=err: x[m]:=m: m:=m+1: evalf(u,7); (14)

(14) evalf(err,7); 0.0008080718 m-1; 32 plot(x,er); (15) (16) 6 5 4 3 2 1 0 0 10 20 30