09/07/22 17:36:55
>>472
> a1_{k, i-1}*f_{k, i-1} + a2_{k, i}*f_{k, i} + a3_{k, i+1}*f_{k, i+1} = g_{k, i}
>
> ここで、
>
> A : n 行 n 列の三重対角行列
> x : f_{k, i} を要素に持つ n 次元の列ベクトル
> b : g_{k, i} を要素に持つ n 次元の列ベクトル
>
> とすると、各モードについて A x = b を解くことになります。A が多次元と言いましたのは、
> このモード数の次元のことを指しておりました。
> モード数が 1 の場合には、紹介して頂いた連立 1 次方程式のルーチンを使えば良いと思うのですが、
> 複数のモード数について解く場合には、毎回サブルーチンを呼ぶ必要があるのでしょうか?
> k 個の n 行 n 列の三重対角行列を一度に解く方法があればと思うのですが・・・。
この中で未知数は x だとして、それでも a1 や a2 がイミフなので勝手に解釈します。
1 <= k, i <= n として
行列 A は固定する(つまり共通)。
縦ベクトル x_i の第 k 成分を f_{k,i} とする。b についても同様。
行列 X を X = ( x_1, x_2, ..., x_n ) で定義する。==> n×n 行列
行列 B を B = ( b_1, b_2, ..., b_n ) で定義する。==> n×n 行列
AX = B を解くということで終わらんか?要するに X = A^{-1}B で計算できるでしょ?
det A = 0 ではないとして。
線型代数のマトモなテキストには書いている話だと思うケド。