2021년 2월 23일 화요일

선형대수코드_CH6

1

 1. 행렬 A에 대해
(a) 0벡터에 대응하는 모든 정의역의 벡터?

A=np.array([[3,-2, 1, -1], [-3, 5, 2, 4],[-9, 12, 3, 11],[3, -8, -5, -7]])
print(A)
[[ 3 -2 1 -1]
   [-3 5 2 4]
   [-9 12 3 11]
   [ 3 -8 -5 -7]]


b=np.array([[0],[0],[0], [0]])
print(b)
[[0]
   [0]
   [0]
   [0]]


au=np.hstack([A, b])
print(au)
[[ 3 -2 1 -1 0]
   [-3 5 2 4 0]
   [-9 12 3 11 0]
   [ 3 -8 -5 -7 0]]


Matrix(au).rref()
(Matrix([[1, 0, 1, 0, 0],
        [0, 1, 1, 0, 0],
        [0, 0, 0, 1, 0],
        [0, 0, 0, 0, 0]]),
        (0, 1, 3))

Matrix(A).nullspace()
[Matrix([[-1],
        [-1],
        [ 1],
        [ 0]])]

위 코드에서 나타낸 것과 같이 Ax=b의 확대행렬 au의 기약행사다리꼴로부터 선형종속임을 알 수 있습니다. 그러므로 이 시스템의 해집합의 기저에 대한 스칼라배한 결과가 모두 x벡터가 될 수 있습니다.

$scalar \cdot \left[\begin{matrix}-1\\-1\\1\\0\end{matrix}\right]$

(b) 다음 벡터 b가 치역에 존재합니까?
$b = \left[\begin{matrix}-2\\14\\36\\-27\end{matrix}\right]$

b=np.array([[-2],[14],[36],[-27]])
print(b)
[[ -2]
   [ 14]
   [ 36]
   [-27]]


Matrix(np.hstack([A, b])).rref()
(Matrix([[1, 0, 1, 0, 0],
        [0, 1, 1, 0, 0],
        [0, 0, 0, 1, 0],
        [0, 0, 0, 0, 1]]),
        (0, 1, 3, 4))

위 결과에 의하면 4행 즉, $0x_1+0x_2+0x_3+0x_4=1$은 성립하지 않습니다. 그러므로 T(x)=b는 존재할 수 없습니다.

2

T: ℝ2  → ℝ2에서 벡터 u, T(u), v, T(v)는 다음과 같습니다.
(a) T(2u)?
 (b)변환 T의 표준행렬인 A?

(a) 선형변환의 경우 다음 두 조건이 만족합니다.
T(a+b)=T(a)+T(b)
T(ca)=cT(a), c: 스칼라
그러므로 T(2u)=2T(u)

u=Matrix([[-2], [2]])
v=Matrix([[-1],[-3]])
Tu=Matrix(2,1,[6,4])
Tv=Matrix(2,1, [7, 6])
2*Tu
$\left[\begin{matrix}12\\8\end{matrix}\right]$

(b) 표준행렬 A의 경우 다음 코드와 같이 sympy 모듈의 symbols() 함수를 사용하여 생성할 수 있습니다. 이 행렬을 사용하여 Au=Tu, Av=Tv의 식들을 계산하여 미지수 4개의 해를 결정합니다. 이 과정에서 solve() 함수를 적용합니다.

x1,x2,x3,x4=symbols('x1 x2 x3 x4', real=True)
A=Matrix([[x1, x2],[x3, x4]])
A
$\left[\begin{matrix}x_{1} & x_{2}\\x_{3} & x_{4}\end{matrix}\right]$

eq1=Eq(A*u, Tu)
eq1
$\left[\begin{matrix}- 2 x_{1} + 2 x_{2}\\- 2 x_{3} + 2 x_{4}\end{matrix}\right] = \left[\begin{matrix}6\\4\end{matrix}\right]$

eq2=Eq(A*v, Tv)
eq2
$ \left[\begin{matrix}- x_{1} - 3 x_{2}\\- x_{3} - 3 x_{4}\end{matrix}\right] = \left[\begin{matrix}7\\6\end{matrix}\right]$

sol=solve((eq1, eq2), (x1, x2, x3, x4))
sol
{x1: -4, x2: -1, x3: -3, x4: -1}

A1=A.subs(sol)
A1
$\left[\begin{matrix}-4 & -1\\-3 & -1\end{matrix}\right]$

#위 (a)를 확인
A1*2*u
$\left[\begin{matrix}12\\8\end{matrix}\right]$

3

다음 행렬 A의 대각화가 가능합니까?

다음 코드에서 각각의 결과 객체는 latex형태로 나타내기 위해 sympy의 Matrix() 객체로 전환하였습니다.

A=np.array([[6,-2, 0],[0, 6, 2],[0,0,6]])
Matrix(A)
$\left[\begin{matrix}6 & -2 & 0\\0 & 6 & 2\\0 & 0 & 6\end{matrix}\right]$
val, vec=la.eig(A)
D=np.diag(val)
Matrix(D)
$\left[\begin{matrix}6.0 & 0.0 & 0.0\\0.0 & 6.0 & 0.0\\0.0 & 0.0 & 6.0\end{matrix}\right]$

P=vec
Matrix(np.around(P, 10))
$\left[\begin{matrix}1.0 & 1.0 & -1.0\\0.0 & 0.0 & 0.0\\0.0 & 0.0 & 0.0\end{matrix}\right]$

Matrix(np.dot(np.dot(P, D), la.inv(P)))
$\left[\begin{matrix}6.0 & 0.0 & 0.0\\0.0 & 6.0 & 0.5\\0.0 & 0.0 & 6.0\end{matrix}\right]$

위 결과는 행렬 A와 같지 않습니다. 즉, 대각화는 가능하지 않습니다. 유사변환에 의한 분해에서 P는 가역행렬이어야 하지만 생성된 행렬 P의 경우 비가역행렬입니다.

np.around(la.det(P), 10)
0.0

4

다음 벡터들의 집합 {u1, u2, u3}는 직교집합입니까? 그렇다면 이 벡터들의 배수들로 이루어진 직교행렬을 나타내십시요?
$u_1=\left[\begin{matrix}2\\1\\-2\end{matrix}\right]\quad u_2=\left[\begin{matrix}1\\2\\2\end{matrix}\right]\quad u_3=\left[\begin{matrix}2\\-1\\1\end{matrix}\right]$
각 벡터가 직교 관계이면 내적이 0이므로 이들의 계산을 위해 각 벡터를 결합하여 행렬로 전환한 후 계산합니다. 또한 직교관계인 벡터들의 선형결합은 선형독립입니다.

x=np.array([[2,1,2],[1,2,-2],[-2,2,1]])
for i in range(2):
for j in range(i+1, 3):
print(f'{i} and {j}: {np.dot(x[:,i], x[:,j].T)}')
0 and 1: 0
   0 and 2: 0
   1 and 2: 0

Matrix(x).rref()
(Matrix([[1, 0, 0],
      [0, 1, 0],
      [0, 0, 1]]),
      (0, 1, 2))

위 결과에 의하면 위 벡터 집합은 직교집합입니다. 이들 벡터의 배수로 형성된 직교행렬은 각 벡터를 단위 행렬로 전환한 후 결합한 행렬로 나타낼 수 있습니다.

x=np.array([[2,1,2],[1,2,-2],[-2,2,1]], dtype=np.float64)
print(x)
[[ 2. 1. 2.]
   [ 1. 2. -2.]
   [-2. 2. 1.]]


x_n=la.norm(x, axis=0)
x_n
array([3., 3., 3.])
for i in range(3):
 x[:,i]=x[:, i]/x_n[i]
print(np.around(x, 3))
[[ 0.222 0.111 0.222]
   [ 0.111 0.222 -0.222]
   [-0.222 0.222 0.111]]

5

다음 행렬 A는 직교행렬입니까?

U=np.array([[2,5],[-5, 2]])
print(U)
[[ 2 5]
   [-5 2]]


print(U.T)
[[ 2 -5]
   [ 5 2]]


print(la.inv(U))
[[ 0.06896552 -0.17241379]
   [ 0.17241379 0.06896552]]

6

다음 부분공간 W의 직교 기저를 발견하세요?
$W=\left\{ \left[\begin{matrix}3\\-1\\2\\-1\end{matrix}\right], \quad \left[\begin{matrix}-5\\9\\-9\\3\end{matrix}\right] \right\}$

x1=np.array([[3, -1, 2, -1]]).reshape(4,1)
x2=np.array([[-5, 9, -9, 3]]).reshape(4,1)
print(x1)
[[ 3]
   [-1]
   [ 2]
   [-1]]


print(x2)
[[-5]
   [ 9]
   [-9]
   [ 3]]


v1=x1
v2=x2-np.dot(v1.T, x2)/np.dot(v1.T, v1)*v1
print(v2)
[[ 4.]
   [ 6.]
   [-3.]
   [ 0.]]

7

다음 행렬은 정규직교입니까?

A=Matrix([[Rational('4/5'), 0, Rational('3/5')], [Rational('3/5'), 0, -Rational('4/5')],[0,1,0]])
A
$ \left[\begin{matrix}\frac{4}{5} & 0 & \frac{3}{5}\\\frac{3}{5} & 0 & - \frac{4}{5}\\0 & 1 & 0\end{matrix}\right]$

A.det()
1
A.T
$\left[\begin{matrix}\frac{4}{5} & \frac{3}{5} & 0\\0 & 0 & 1\\\frac{3}{5} & - \frac{4}{5} & 0\end{matrix}\right]$

A.inv()
$ \left[\begin{matrix}\frac{4}{5} & \frac{3}{5} & 0\\0 & 0 & 1\\\frac{3}{5} & - \frac{4}{5} & 0\end{matrix}\right]$

위 결과와 같이 행렬은 선형독립이며 전치행렬과 역행렬이 같으므로 정규직교 행렬입니다.

댓글 없음:

댓글 쓰기

CalculusMadeEasy_CH1

1-6 a=np.array([[1],[2],[3]]) la.norm(a) 3.7416573867739413 b=np.array([[-1],[-3],[-4]]) la.norm(b) 5.0990195135927845 c=np.array([[...