行列とベクトル:データサイエンティストへの道(21)
1:行列とベクトル
まず、行列とベクトルの勉強です。
それは下記の画像になります。
ベクトルには、sp.MaTrix([])を使用します。引数には必ず[]を使います。
ベクトルを転置させる場合は、変数.Tとする。
※Tはtranspose.
[a] [c]
ベクトルp 、ベクトルq について、
[b] [d]
p+q , p-q , 3p+5 を求めなさい。
q1 = sp.Matrix([a,b])
q2 = sp.Matrix([c,d])
q3 = q1 + q2
q4 = q1 -q2
q5 = 3 * q1 + 5 * q2
ベクトルpの転置を求めなさい。
q6 = q1.T
[2 -1] [3 1]
行列A 、行列B について、
[-3 5] [2 3]
2A - 3Bを求めなさい。
q1 = sp.Matrix([[2, -1] , [-3 , 5]])
q2 = sp.Matrix([[3, 1] , [2 , 3]])
q3 = 2 * q1 - 3 * q2
行列Bの転置行列を求めなさい。
q4 = q2.T
ベクトルa=(2,-1,3),ベクトルb(-3,2,5)の時、aとbの内積を求めなさい。
※ベクトルの内積は.dot()を使用します。
q1 = sp.Matrix([2, -1 , 3])
q2 = q1.T
q3 = sp.Matrix([-3, 2 ,5])
q4 = q3.T
q5 = q1.dot(q3)
ベクトルaの大きさ|a|を求めなさい。
※ベクトルの大きさは.normを使用する。
q6 = q3.norm()
これでも、同じです。→q7 = sp.sqrt(q3.dot(q3))
[a b]
行列A の行列式、逆行列を求めなさい。
[c d]
※行列式には、det()、逆行列には.inv()を使用します。
q1 = sp.Matrix([[a,b], [c,d]])
q2 = q1.det()
q3 = q1.inv()
2行2列の単位行列を求めなさい。
※単位行列は、sp.eye()を使用します。
q4 = sp.eye(2)
[a b] [e f]
行列A 、行列B について、
[c d] [g h]
A×Bを求めなさい。
q1 = sp.Matrix([ [a,b], [c,d]])
q2 = sp.Matrix([ [e,g], [g,h]])
q3 = q1 * q2
AとAの逆行列の積を求めなさい。
q4 = q1.inv()
q5 = q4**(-1)
次の連立方程式を行列を使用して解を求めなさい。
2x - 3y = 2
-3x + 5y = 4
|2 -3| |x| |2|
=
|-3 5| |y| |4| として考える。
※行列には割り算はないので、AA̠⁻¹=E(単位行列)を利用して解いていく。
q1 = sp.Matrix([ [2 , -3] , [-3 , 5] ])
q2 = sp.Matrix([x,y])
q3 = sp.Matrix([2,4])
q4 = q1 * q1.inv() * q2
q5 = q1.inv() * q3
|-2| |x| t
A= |3 | , x=|y| の時、∂/∂x・(A X)を求めなさい。
|1 | |z|
※ベクトルや行列であっても偏微分には、sp.diff()を使用します。
q1 = sp.Matrix([-2,3,1])
A = q1.T
X = sp.Matrix([x , y ,z])
q2 = A * X
q3 = sp.Derivative(q2 , x)
q4 = sp.diff(q2 , x)