Loading [MathJax]/jax/output/CommonHTML/jax.js

2025/03 24

[선형대수] 4.5 Singular Value Decomposition ~ 4.5.1 Geometric Intuitions for the SVD

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4.5 Singular Value Decomposition선형대수에서 SVD(singular value decomposition)는 중요한 matrix decomposition 방법이다.모든 행렬에 적용할 수 있고, 항상 존재하기 때문이다.그리고 SVD를 통해서 선형변환 ϕ:VW이 벡터 공간의 구조를 어떻게 바꾸는지 기하학적으로 설명할 수 있다.   Theorem 4.22 (SVD Theorem)m×n 행렬 A가 있을 때, A의 SVD 공식은 아래와 같다.$$A = U \Sigma V^..

선형대수 2025.03.15

[프로그래머스] 소수 만들기 (파이썬, 최적화)

[문제]주어진 숫자중에 3개를 더했을 때 소수가 되는 경우의 수를 세는 문제였다.   [기존 코드]숫자 3개를 뽑아서 더하고 리스트에 추가한 다음, 리스트에 있는 숫자들이 소수인지 판별해주었다.i == 3 일 때는 별도로 처리해주었다.def solution(nums): # 숫자 3개 뽑아서 더하기 t = len(nums) lst = [] for i in range(t): for j in range(i+1,t): for k in range(j+1,t): lst.append(nums[i]+nums[j]+nums[k]) # 소수 판별 answer = 0 for i in lst: ..

코테 오답노트 2025.03.14

[선형대수] 4.3 Cholesky Decomposition ~ 4.4 Eigendecomposition and Diagonalization

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4.3 Cholesky Decomposition행렬도 분해할 수 있다.여러 가지 방법이 있는데 우리는 Cholesky decomposition/ Cholesky factorization에 대해서 알아볼 것이다.(숫자에서의 제곱근처럼 행렬을 분해하는 방법이라서 symmetric, positive definite 한 행렬에만 적용할 수 있음)  Theorem 4.18 (Cholesky Decomposition)Symmetric하고 positive definite한 행렬 AA=LL으로 분해할 수 있다.여기서 L을 $A..

선형대수 2025.03.13

[프로그래머스] 공원 산책 (파이썬, 예시 테케에 없는 테케도 생각하기)

[문제]격자판 안에서 장애물을 고려하면서 이동시키는 문제였다.공원 크기와 시작지점이 각각 다르게 설정되어 있었다. [내 코드]처음에 공원 크기를 잡아주고 S 위치를 파악한 다음 이동을 시켜줬다.조건이 모두 만족해야 이동하는 방법으로 코드를 구성했다.def solution(park, routes): answer = [] # 공원 크기 H = len(park)-1 W = len(park[0])-1 # 시작점 설정 i = 0 while park: # for문 써도 되었을 듯 if 'S' in park[i]: a = i b = park[i].index('S') break i += 1 ..

코테 오답노트 2025.03.12

[선형대수] 4.2 Eigenvalues and Eigenvectors(Graphical Intuition in Two Dimensions~)

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4.2 Eigenvalues and Eigenvectors Graphical Intuition in Two Dimensions여러 가지 linear mapping을 사용해서 determinant, eigenvector, eigenvalue를 직관적으로 접근해보자.아래는 5개의 transformation 행렬이 원점을 중심으로 하는 정사각형에 미치는 영향을 각각 나타낸다. eigenvalue는 변환 후에도 같은 방향으로 남아있는 벡터들의 크기 변화를 나타냄!e.g. $A=\begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatr..

선형대수 2025.03.11

[선형대수] 4.2 Eigenvalues and Eigenvectors (~ 4.6 Example)

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4.2 Eigenvalues and Eigenvectors이제 행렬과 그 linear mapping을 eigen이라는 개념을 통해서 새롭게 표현해볼 것이다.  Def 4.6n×n 행렬 A에 대해서 λ를 eigenvalue라고 하고, AAx=λx를 만족할 때 xA의 eigenvector라고 한다. 그리고 이 식을 eigenvalue equation 이라고 부른다.   Remark관습적으로 eigenvalue를 내림차순으로 정렬한 뒤 순서대로 first, second, .. ..

선형대수 2025.03.10

[선형대수] 4.1 Determinant and Trace (Determinant's properties ~)

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4.1 Determinant and Trace이어서 n×n 행렬 A의 성질에 대해서 알아볼 것이다.n×n 행렬 A의 성질은 아래와 같다. • det(AB)=det(A)det(B)• det(A)=det(A)• det(A)0이면 det(A1)=1det(A)• Similar matrices(B=P1AP, 기저변환 행렬)끼리는 determinant가 같다.  즉, determinant는 basis를 무엇으로 잡는가에 따라서 변..

선형대수 2025.03.09

[선형대수] 4.1 Determinant and Trace (~Ex 4.3 Laplace Expansion)

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4.1 Determinant and Trace앞에서 배웠듯이 행렬 ARn×n의 determinant은 AR로 대응시키는 함수이다.쓸 때는 det(A) 혹은 |A|와 같이 쓴다.   Ex 4.1 (Testing for Matrix Invertibility)행렬 ARn×nn의 크기에 따라서 살펴보자.(i) A1×1 행렬 a일 때:   A의 역행렬은 $A^..

선형대수 2025.03.08

[선형대수] 4. Matrix Decompositions

공부하는 단계에서 정리한 내용입니다.잘못된 내용이 있다면 말씀해주시면 감사하겠습니다.https://mml-book.github.io/book/mml-book.pdf 4. Matrix DecompositionsChapter 2와 3에서 벡터를 여러 가지 방법으로 다루어봤다. 이번 챕터에서는 행렬을 요약하는 법(summarization), 행렬을 분해하는 법(decomposition), 그리고 분해된 행렬을 사용해서 행렬을 근사하는 법(approximation)에 대해서 배울 것이다. Section 4.1의 determinants와 sections 4.2의 eigenvalues를 통해 몇 개 안되는 숫자를 가지고 행렬 전체의 성질을 설명하는 방법에 대해서 배울 것이다. 그 다음 섹션들에서 matrix dec..

선형대수 2025.03.07

[프로그래머스] 달리기 경주 (파이썬, 시간복잡도 개선)

[문제]callings에 등장하는 항목을 앞 항목하고 바꿔치기하는 문제였다.시간복잡도를 고려하는 게 문제의 포인트였다.   [코드]처음에는 아무 생각 없이 아래와 같이 코드를 짰다. def solution(players, callings): for i in callings: f_index = players.index(i) j = players[f_index-1] players[f_index] = j players[f_index-1] = i return players for문 안에서 i의 인덱스 찾아서 앞 항목과 바꿔치기하는 방법을 사용했다.   [왜 틀렸나]시간초과가 떴다.players의 길이가 50,000개 이하, callings의 길..

코테 오답노트 2025.03.06