2017-10-20 18 views
1

私は行列の乗算を行うためのPythonの能力について知っています。 残念ながら、これを抽象的に行う方法がわかりません。したがって、数字は で、変数はありません。抽象的な行列の乗算と変数

例:

M = (1 0) * (1 d) 
    (a c) (0 1) 

、CとDを定義するためのいくつかの方法は、行列の乗算 は私

(1 d  ) 
(a a*d + c) 

に与えるよう、ありますか?

+1

持っAシンボリックコンピューティングのためのPythonライブラリ 'sympy'を見てください。 – dseuss

答えて

3

あなたがこれを行うことができsympyを使用する:

>>> from sympy import * 
>>> var('a c d A B') 
(a, c, d, A, B) 
>>> A = Matrix([[1, 0], [a, c]]) 
>>> A 
Matrix([ 
[1, 0], 
[a, c]]) 
>>> B = Matrix([[1, d], [0, 1]]) 
>>> B 
Matrix([ 
[1, d], 
[0, 1]]) 
>>> M = A.multiply(B) 
>>> M 
Matrix([ 
[1,  d], 
[a, a*d + c]]) 
0

変数と同様に、配列/行列は特定の値でのみ初期化できます。あなたがすることができる唯一のことは

import numpy as np 

def helper(a, c, d): 
    A = np.array([[1, 0], [a, c]]) 
    B = np.array([[1, d], [0, 1]]) 
    return A @ B 

初期化を容易にするための関数を作るです( @、オペレータが明示的なマトリックス乗算演算子である場合)

+1

関数名がありますか? – Asterisk

+0

@アスタリスク:はい、もちろん、それは正常な機能です。タイプミスを修正しました。 –