山口屋~活動日誌~

私生活で主な出来事をピックアップ

スパースタブロー法 修正節点解析法 節点解析法

2018-05-17 23:48:31 | 工学
<スパースタブロー法>

A[1][1] = [0]
A[1][2] = [Ai]:接続行列(Kirchhoff's Current Law)
A[1][3] = [0]
A[2][1] = [0]
A[2][2] = [Bi]:特性行列
A[2][3] = [Bv]:特性行列
A[3][1] = [Av]:接続行列(Kirchhoff's Voltage Law)
A[3][2] = [0]
A[3][3] = [Iv]:接続行列
b[1] = [0]
b[2] = [S]:特性の値
b[3] = [0]
x[1] = [u]:電位の値
x[2] = [i]:電流などの値
x[3] = -[v]:電圧などの値

<修正節点解析法>

A[1][1] = [0]
A[1][2] = [Ai]
A[2][1] = [Bv] * [Iv]^-1 * [Av]
A[2][2] = [Bi]
b[1] = [0]
b[2] = [S]
x[1] = [u]
x[2] = [i]
[Iv] * [v] = [Av] * [u] (乗算は行方式)

A[3][3] に [Iv](LU分解後) を格納
[Bv]、[Av] を格納
1列分の一時メモリに [Iv]^-1 を格納、列順に算出される
1列分の一時メモリに [Bv] * [Iv]^-1 (乗算は、内積形式、jikループ) を格納
A[2][1] に ([Bv] * [Iv]^-1) * [Av] (乗算は、外積形式、kijループ) を格納
※逆行列計算時の定数行列が順序付けなしであれば、[Iv] のindexは結果に影響しないので、[Bv] の行index、[Av] の列indexに従って格納する。

<節点解析法>

A[1][1] = ([Ai] * [Bi]^-1) * ([Bv] * [Iv]^-1 * [Av])
b[1] = ([Ai] * [Bi]^-1) * [S]
x[1] = [u]
[Iv] * [v] = [Av] * [u] (乗算は行方式)
[Bi] * [i] = - ([Bv] * [Iv]^-1 * [Av]) * [u] (乗算は行方式) + [S]

完全短絡や電圧源は [Bi] = [0] となり [Bi]^-1 が計算不能。修正節点解析法の A[1][2] で一方を他方の行に加算、A[2][1] , A[2][2] の式が残る。
完全開放は [Bv] = [0] で、A[1][1] の対角要素に零成分が入る可能性あり。

A[3][3] に [Iv](LU分解後) を格納
[Bv]、[Av] を格納
1列分の一時メモリに [Iv]^-1 を格納、列順に算出される
1列分の一時メモリに [Bv] * [Iv]^-1 (乗算は、内積形式、jikループ) を格納
([Bv] * [Iv]^-1) * [Av] (乗算は、外積形式、kijループ) を格納
※逆行列計算時の定数行列が順序付けなしであれば、[Iv] のindexは結果に影響しないので、[Bv] の行index、[Av] の列indexに従って格納する。

A[2][2] に [Bi](LU分解後) を格納
[Ai]、[S] を格納
1列分の一時メモリに [Bi]^-1 を格納、列順に算出される
1列分の一時メモリに [Ai] * [Bi]^-1 (乗算は、内積形式、jikループ) を格納
A[1][1] に ([Ai] * [Bi]^-1) * ([Bv] * [Iv]^-1 * [Av]) (乗算は、外積形式、kijループ) を格納
b[1] に ([Ai] * [Bi]^-1) * [S] (乗算は列方式) を格納
※逆行列計算時の定数行列が順序付けなしであれば、[Bi] のindexは結果に影響しないので、[Ai] の行index、([Bv] * [Iv]^-1 * [Av]) の列indexに従って格納する。
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

C言語 stderr errno.h

2018-05-16 22:11:14 | ソフトウェア開発
C言語で、環境や処理系のエラー出力には、下記が利用できる
stderr:stdio.h
errnoマクロ:errno.h
perror():stdio.h→errnoに対応した文字列の前に、指定文字列を連結してstderrに出力。

なお、stderrに任意の文字列を出力するには、
fprintf():stdio.h
コメント
  • Twitterでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする