본문 바로가기

선형대수학/implement_linearAlgebra

(16)
A = LU 분해 (2) 2023.01.08 - [선형대수학/implement_linearAlgebra] - 소거법을 이용한 Ax = b 의 풀이 소거법을 이용한 Ax = b 의 풀이 R^3 공간에서 세 평면이 만나는 것을 시각화하기는 쉽지 않다. R^n 공간에서 초평면 n 개가 한 점에서 만남을 시각화하기도 어려움, 하지만 열벡터의 일차결합은 쉽다. 행렬 A 에는 반드시 3(또는 n) teach-meaning.tistory.com 원래 행렬 A 는 마지막으로 얻은 행렬 U 와 어떤 관계가 있을까? 1 단계에서 4*4 크기의 문제는 1행의 배수를 다른 행에서 제거함으로써 3*3 크기의 문제로 축소했다. 위 식에서 우변의 첫 번째 행렬이 행렬 A 에서 제거되었다. 이것이 랭크 1인 행렬이다. A = np.array(([1,2,3,..
소거법을 이용한 Ax = b 의 풀이 R^3 공간에서 세 평면이 만나는 것을 시각화하기는 쉽지 않다. R^n 공간에서 초평면 n 개가 한 점에서 만남을 시각화하기도 어려움, 하지만 열벡터의 일차결합은 쉽다. 행렬 A 에는 반드시 3(또는 n) 개의 일차독립인 벡터가 있어야 한다. 그리고 이 열들은 반드시 R^3 의 동일한 평면에 있지 않아야 한다. 대수학에서는 다음과 같은 문장으로 해석할 수 있다. 일차독립인 열 Ax = 0 의 유일한 해는 영벡터 x = 0 이다. 즉, 일차독립은 모든 열에 0을 곱하는 경우에만 열들의 결합이 영벡터가 됨을 의미한다. 그러면 Ax = 0 의 해는 x = 0 이 유일하다. 해가 유일하다면 열벡터의 일차결합이 b 가 되는 유일한 결합을 소거법으로 찾아 Ax = b 의 해를 구할 수 있다. 소거법을 열 하나 하나..
A = LU 선형대수학의 가장 기본적인 문제는 Ax = b 의 해를 구하는 것이다. n * n 행렬 A 와 n * 1 열벡터 b 가 주어지면, 해벡터 x 를 구할 수 있다. x 의 성분인 n 개의 미지수 x_1, x_2,...,x_n 과 n 개의 일차방정식이 있다고 하면, 일반적으로 정사각행렬 A 는 b 에 대한 Ax = b 의 하나의 해를 생각하는 것이다. 우리는 기하적 또는 대수적으로 x 를 구할 수 있다. 먼저 Ax = b 의 행과 열을 그림으로 나타낸 다음 방정식을 단순화하여 해결한다. n-1 개의 방정식으로 이뤄진 더 작은 연립일차방정식 A_2x_2 = b_2 를 얻기 위해 x_1 을 제거한다. 결국 1 * 1 연립일차방정식 A_n x_n = b_n 에 도달할 것이며, 여기서 x_n = b_n / A_n 을..
implement_subspace(2) 행렬 B 에서 m = 2, n = 3 이다. 따라서 행렬 B 의 기본 부분공간은 R^3, R^2 의 부분공간이다. A = np.array(([1,2],[3,6])) A >>> array([[1, 2], [3, 6]]) B = np.array(([1,-2,-2],[3,-6,-6])) B >>> array([[ 1, -2, -2], [ 3, -6, -6]]) 2 * 2 행렬 A 와 행렬 B 를 비교하면 두 가지 부분공간은 바뀌지 않는다. 행렬 B 의 열공간은 R^2 의 부분공간이며 행렬 A 의 열공간과 기저 벡터가 같다. 그러나 행렬 B 의 열 개수는 n = 3 이고, 3 차원 공간 R^3 의 부분이다. 여전히 행공간에는 단 하나의 v 만 있다. 행렬 B 의 두 행은 같은 방향이므로 랭크는 r = 1 이다...
implement_subspace m*n 행렬 A 에서 4개의 부분 공간, 즉 2개의 R^m 부분공간과 2 개의 R^n 부분공간이 어떻게 유도되는가 랭크가 1인 행렬 uv^T 의 예시 A = np.array(([1,2],[3,6])) A >>> array([[1, 2], [3, 6]]) m = 2, n = 2 이다. R^2 의 부분공간을 생각해본다. C_A = A[:,0] C_A >>> array([1, 3]) 열공간 C(A) 는 u = [1],[3] 을 지나는 직선이다. 행렬 A 의 2열 [2],[6] 은 이 직선 위에 있다. C_A_T = A.T[:,0] C_A_T >>> array([1, 2]) 행공간 C(A^T) 는 v = [1],[2] 를 지나는 직선이다. c_a = np.linspace(-2,2,200) c_a_result =..
4.5 대칭 행렬 2022.12.15 - [미분방정식] - 4.5 대칭 행렬과 직교 행렬 4.5 대칭 행렬과 직교 행렬 m*n 행렬 A 에서 시작, A 의 행들이 A^T 의 열들이 되는 것을 A의 전치라고 한다. m*n 행렬은 주대각성분을 중심으로 뒤집힌다. 그러면 A^T 는 n*m 행렬이다. 곱 AB, AB 의 전치는 (AB)^T = B^T A^T 이다. 역행 teach-meaning.tistory.com A = np.array(([1,2,6],[0,0,5])) A >>> array([[1, 2, 6], [0, 0, 5]]) AT = A.T AT >>> array([[1, 0], [2, 0], [6, 5]]) B = np.array(([1,2],[3,4],[5,6])) B >>> array([[1, 2], [3, 4],..
가우스 - 조던 소거법으로 계산한 A^-1 2022.12.15 - [미분방정식] - 4.4 역행렬 4.4 역행렬 A 가 정사각행렬일 때, A^-1 과 A 를 곱하면 I 가 되는 동일한 크기의 역행렬 inverse matrix A^-1 을 살펴보자. 이 곱은 항등 행렬이 되며, 따라서 모든 벡터의 변화를 무효가 되게 한다. 따라서 A^-1Av = v teach-meaning.tistory.com Av = b 의 방정식을 풀기 위해 v = A^-1 b 로 풀 수 있다. 하지만 A^-1 을 계산하고 이를 b 에 곱하는 것은 비효율적이다. 가우스-조던 소거법을 사용하면 v 를 바로 계산할 수 있다. A = np.array(([2,-1,0],[-1,2,-1],[0,-1,2])) A >>> array([[ 2, -1, 0], [-1, 2, -1], [ 0,..
1.6.1 고윳값의 직접 계산 2022.12.09 - [선형대수학] - 1.6.1 고윳값과 직접 계산 1.6.1 고윳값과 직접 계산 Ax = lamda x 는 (A - lamda I)x = 0 과 같음에 주목, 그러면 A - lamda I 의 역행렬은 존재하지 않는다. 즉, 이 행렬은 특이행렬이다. 행렬식은 반드시 0 이 되어야 한다. 이는 lamda 에 관한 n 차 방정식이며, teach-meaning.tistory.com Ax = lamda x 는 (A - lamda I)x = 0 과 같음에 주목, 그러면 A - lamda I 의 역행렬은 존재하지 않는다. 즉, 이 행렬은 특이 행렬이다. A - lamda I 의 행렬식은 0이 되어야 한다. A = np.array(([8,3],[2,7])) x = sympy.Symbol('x') ..