お世話になります。長文で失礼します。
最近になって偏微分方程式の数値解析の勉強を始めました。
1)早速質問したいですが、二次元での拡散方程式を、
陰解法で数値的に解く場合、途中で出てくる連立方程式の係数行列は、
どのような構造になるのでしょうか。
手持ちの教科書のすべてが一次元の場合を例示しており、
係数行列は三重対角行列になる、と説明しているのですが、
二次元になると係数行列はどうなるのでしょうか。
試しに「陰解法 対角行列」とググってみると、
「5重対角行列」と記載のあるリンクが出てくるのですが、
http://www-mmc.es.hokudai.ac.jp/else/cdrom/main_ …
実際に読んでみても、「疎な5重対角行列」と言及されるだけで、
具体例は示されていませんでした。
結局、2次元問題の陰解法の実装にあたって
係数行列をどのように定義すればよいのか分からず、
添付の画像の式3ようにインデックスを振り直し、
計算領域の行列uをベクトル化(式4)して、
疑似的な五重対角行列Aを無理矢理定義しました(式6、周期境界条件)。
果たして合っているのでしょうか。
一応、空間刻みと時間刻みを揃えて陽解法と計算結果を比べましたが、
同じような挙動になりました。
合っていない場合、係数行列はどのような構造になるのでしょうか。
2)上記の方法が合っているのだとすると、
2次元問題の陰解法で用いる「5重対角行列」というのは、
式6の係数行列のように対角成分が0の隙間が出来てしまい、
厳密な「多重対角行列」の定義から外れると思うのですが、
この理解は正しいでしょうか。
むしろ逆に、対角成分が0の隙間が出来てしまっていても、
「~重対角行列」と呼んで良いものなのでしょうか。
3)同様に三次元に拡張した陰解法スキームを考えると、
係数行列は二次元のときよりも広い0の隙間を持った、
七重対角行列になると思うのですが、この理解も合っているでしょうか。
どなたか詳しい方がいらっしゃいましたら、
ご回答よろしくお願い致します。
No.4ベストアンサー
- 回答日時:
No.3へのコメントについてです。
どうもまともに読んでいただけていないようなんで、ま、どうでもいいんですが。> 私が例示した行列uは4x4行列で、係数行列Aは16x16行列だったのですが、
> これを「2n+1」の係数行列に直した方が良い
係数行列のサイズは、当然ながら、空間をいくつに分割したかによって決まります。たとえばn=2において空間を100×100に分けたとすると10000個の成分がある。そのうちの「合計2n+1個の成分に0でない係数がついた一次方程式を連立したもの」、すなわち10000×10000の行列の各行に5個だけ0でない係数が入っている。この行列の10000×5個の成分だけが0でないということです。
> なぜ共役勾配法だけ
「行列はなるべく相手にしたくないという場合」、これなら行列を直にいじくらなくても良いからです。ことにご質問の例のように拡散係数が位置依存性を持たない(定数である)場合には、10000×(2n+1)個の成分を保持することも必要ない。
辛抱強く何度も対応して頂き、ありがとうございます。
言い換えて頂いたおかげで、何とか理解できたと思います。
ANo.1にて、
>空間を四角く切ることにすると、一つのセルに隣接するセルがn次元の場合2n個あるんで
という表現を、「一つのセルに隣接するセルがn次元である場合」と読んでしまい、
数値1個が入る各セルが何故か「n次元」?と意味不明なまま読み進めてしまいました。
直後の「2n個あるんで」も、何が2n個あるのか分からないまま読みました。
「n次元の空間を四角く切ることにすると」という意味だったのですね泣
はじめに頂いた文面を初見で理解できない程度に、私の到達度の初心者ぶりを自覚できました。
また、共役勾配法のメリットについても追記頂きまして、ありがとうございました。
自分で実装してみて、メモリ節約のありがたみを体感してみようと思います。
この度は、ありがとうございました。
No.3
- 回答日時:
ANo.1へのコメントについてです。
> 少なくとも質問に対する回答が優先的に欲しい
3つに分けるまでもなく、まとめて2n+1だと申し上げたんですがね。
追記ありがとうございます。
ご記載の内容はシンプルで理解できましたが、私が初学者のため、
ごまかさずに問題を細分化して個別に確認したかった、という次第です。
不満点があるとすれば、
私が例示した行列uは4x4行列で、係数行列Aは16x16行列だったのですが、
これを「2n+1」の係数行列に直した方が良い理由は、
先のご説明だけでは分からなかったので、回答意図の曖昧さを感じました。
また、(半)陰解法の中でもクランク・ニコルソン法やADI法、畳み込み法など、
いくつか戦法があると思うのですが、なぜ共役勾配法だけを例示して下さったのか、
「自分が好みでよく使うんですが」程度の理由でも構わないので、
オススメの根拠が欲しかったです。この点も回答意図の曖昧さを感じました。
入門者の学習補助というより中級者の向学心を誘うようなスタンスを感じ、
私の需要とは今回は合致しませんでした。
(回答する側にとっては判断が難しいでしょうが笑
ありがとうございました。
No.2
- 回答日時:
全く回答にはなっていないのですが,知っている範囲でお答えしますと,
1 ) 解き方は正しいと思います。
2 ) 示された行列は対角行列ではなく,帯行列です。
対角行列の定義は質問者様の認識で正しいです。
ただ,自分は帯行列になると教わったんですよね。
3 ) おっしゃる通りです。
残念ながら数学が専門ではないので,
そのような方がいらっしゃれば,そちらの意見の方が正しいかと思われますり
早速ご回答ありがとうございます。
1)合っているようで安堵しました。
2)「帯行列」という用語は耳にしたことがあったのですが、
卒業した学部カリキュラムに線形代数の講義が無かったため、
定義は知りませんでした。勉強になりました。
クリティカルな回答を頂きまして、大変感謝申し上げます。
ご提案通りに、もう少し他の回答も待ってみたいと思います。
No.1
- 回答日時:
単なる拡散方程式(熱方程式)なら、それこそ陽解法が適しているんじゃないでしょうかね。
最初は空間を粗く切ってざくざく計算し、収束に近づいたらメッシュを小さくする、という風にやれば速くて、行列には出番なし。というのはさておき、ともあれ陰解法でやってみたいと。
空間を四角く切ることにすると、一つのセルに隣接するセルがn次元の場合2n個あるんで、合計2n+1個の成分に0でない係数がついた一次方程式を連立したものを解く必要がある。ご質問にあるような、端っこに「折り返し」の成分がついた「隙間のある2n+1重対角行列」っぽいもの、ってことです。まともに逆行列を計算してたら大変。
行列はなるべく相手にしたくないという場合、答のほうから探っていく、すなわち近似解を改良していく方法があります。近似解の出発値は陽解法の1ステップで計算すればいいでしょう。
Ax = y
という方程式の近似解 x*の持つ誤差εを
Ax* = y + ε
としますと、x*に微小変動Δxを加えて
E = Σ|ε|^2
が小さくなるように改良する、という、非線形最小二乗法でおなじみの手続きを繰り返す。Δxを決める手法は多々ありますが、行列の計算をしないで済ませるには最急降下法を使うことになる。Aはヤコビアン
A[i,j]=∂ε[j] /∂x*[i]
になっているわけですから理屈は簡単ですし、適当な加速のテクニックを組み合わせることができます。ただし、どうせこれ、Δt刻みの1ステップにすぎないのですから、xにあんまり精度を求めてもしょうがない。このへんの匙加減がコツってことでしょう。
早速ご回答ありがとうございます。
ご説明頂いた方法は、「共役勾配法」のことでしょうか。
まだ実装したことはないですが、この方法の有効性も確認したいと思います。
本文には3個ほど質問があったのですが、
長文だとやはり読んで頂けないものなんですかね汗
建設的で発展的な情報は勿論歓迎するところなのですが、
少なくとも質問に対する回答が優先的に欲しいところでした笑
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
3行3列の行列の和と積の計算...
-
線形代数です。 正方行列A,BがA...
-
【数値解析】行列の可約、既約...
-
matlabで条件をみたしたデータ...
-
基本行列の積
-
単因子の計算問題
-
数学「行列」の実生活への応用
-
統計数学の問題でノルム1に基準...
-
diag(-1,1)
-
高校数学で教わる行列っていっ...
-
3行3列の逆行列(ルートを含む)
-
分散共分散行列の逆行列
-
行列と行列式の違いは?
-
行列の消去法のコツなど教えて...
-
行列式計算で答が二通りでてしまう
-
逆行列の計算について
-
NPU付きのPCを買ったのですが、...
-
[☆急いでます!!☆] 基本変形の解...
-
行列の階数(rank)を求める
-
回転した楕円の長径短径、媒介...
おすすめ情報
「帯行列」の存在を教えてくださったANo.2の回答もありがたかったのですが、
今回は情報量が多かったANo.4をベストアンサーに選ばせて頂きます。
ありがとうございました。。。