« Python+SymPyで2*NポートのSパラメータをTパラメータに変換(1) 2ポートの場合 | トップページ | 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 »

2018年3月27日 (火)

Python+SymPy(ブロック行列)で2*NポートのSパラメータをTパラメータに変換(2) 4ポートの場合

先日は2ポートの計算でしたが、こちらが本題。

4ポートの場合のSパラメータ・Tパラメータ変換を以下のように考える。
(ポート1とポート2、ポート3とポート4が組の場合)
Tpara4port
これはブロック行列の計算が必要だが、なんとSymPyはその計算ができる。
4x4行列を2x2行列4個に分解して計算を進める。
MatrixSymbok, BlockMatrix, block_collapseを使う。こんな感じ。
from sympy import *
init_printing()
SA=MatrixSymbol('SA',2,2)
SB=MatrixSymbol('SB',2,2)
SC=MatrixSymbol('SC',2,2)
SD=MatrixSymbol('SD',2,2)
I=Identity(2)
O=ZeroMatrix(2,2)
A=BlockMatrix([[I,-SA],[O,-SC]])
B=BlockMatrix([[SB,O],[SD,-I]])
block_collapse(Inverse(A)*B)

すると、結果はこうなる。

Tpara4port2
おお、完全にあってる。
2*Nポートも全く同様にできます。
案外、この計算している文献が少ない、、、

« Python+SymPyで2*NポートのSパラメータをTパラメータに変換(1) 2ポートの場合 | トップページ | 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 »

学問・資格」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/512682/66537047

この記事へのトラックバック一覧です: Python+SymPy(ブロック行列)で2*NポートのSパラメータをTパラメータに変換(2) 4ポートの場合:

« Python+SymPyで2*NポートのSパラメータをTパラメータに変換(1) 2ポートの場合 | トップページ | 行列の平方根(X^2 =AとなるX)をPython+SciPy(linalg.sqrtm)で計算。 »

最近の記事

2018年7月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
フォト
無料ブログはココログ