Loading...
2024. 6. 15. 00:33

gaussian elimination을 이용한 연립방정식의 해법

1. 3원 1차 연립방정식 미지수가 3개이고 각 미지수에 대해 차수가 모두 1차 방정식으로 이루어진 연립방정식은 3*3 matrix를 이용하여 표현할 수 있다   만약 행렬 A의 역행렬이 존재한다면 유일한 해 $x = A^{-1}b$를 이용해 구할 수 있다.  2. gaussian elimination 주어진 행렬의 rank를 구하는 방법 기본 행연산(elementary row operation)을 이용하여 주어진 행렬을 row echelon form으로 변환시키면 rank를 구할 수 있다 row echelon form이란  elementary operation을 통해서 1) 모든 원소가 0인 행(열)은 전부 밑에 존재 하고  2) 0이 아닌 원소가 있는 행(열)의 경우 가장 왼쪽에 있는 원소가 바로 위..

2024. 6. 7. 23:58

linear transformation에 대해 간단하게

matrix나 tensor는 linear transformation이다.    1차원의 [0,1]의 선분을 linear transformation T(x)=3x를 통해 변환하면 3배 늘어난 선분 [0,3]이 된다    주어진 2차원의 정사각형 ABCD를 linear transformation     을 통해 변환하면 2배 늘어나고 회전된 정사각형 A’B’C’D’이 된다    조금 더 복잡하게 주어진 정사각형을 늘리거나 회전시키거나 비틀어버리거나 하더라도 linear transformation 수학적으로 vector space V,W에 대하여 f: V → W가 linear map이라는 것은  임의의 vector u,v ∈ V와 scalar c가  $f(u+v)=f(u)+f(v)$ , $f(cu)=cf(u)..

2023. 9. 21. 03:29

reduced row echelon form을 구하는 Gauss-Jordan elimination 구현하기

1. reduced row echelon form 한번 쯤 다시 읽어보자 elementary row operation과 reduced row echelon form을 설명하고 있다. elementary row operation은 1) 주어진 행렬의 i번째 행과 j번째 행을 뒤바꾸는 것 2) i번째 행에 0이 아닌 scalar를 곱하는 것 3) i번째 행에 scalar를 곱하고 j번째 행에 더해주는 것 이러한 연산을 하더라도 주어진 행렬의 rank는 변하지 않는다. https://deepdata.tistory.com/34 선형대수학 기본 용어 -상급자편 3- 1. gaussian elimination 1) 주어진 행렬의 $i$번째 행과 $j$번째 행을 뒤바꾼다. 2) 주어진 행렬의 $i$번째 행에 0이 아..

2023. 8. 5. 02:00

기하학 알고리즘의 기본 - 두 벡터의 외적(cross product)에 대하여

https://gaussian37.github.io/math-la-cross-product/ 벡터의 외적이란? gaussian37's blog gaussian37.github.io https://cp-algorithms.com/geometry/basic-geometry.html#definition_1 Basic Geometry - Algorithms for Competitive Programming Basic Geometry In this article we will consider basic operations on points in Euclidean space which maintains the foundation of the whole analytical geometry. We will consid..

행렬을 이용한 피보나치 수열 문제의 해법

1. 피보나치 수열의 행렬 표현 피보나치 수열의 점화식은 다음과 같다. $a_{n+1} = a_{n} + a_{n-1}$ $a_{n} = a_{n} + 0$ 따라서 행렬로 나타내면 다음과 같다 $$\begin{pmatrix} a_{n+1} \\ a_{n} \end{pmatrix}=\begin{pmatrix} 1 & 1 \\ 1 & 0 \\ \end{pmatrix}\begin{pmatrix} a_{n} \\ a_{n-1} \end{pmatrix}$$ n = 1부터 반복적으로 곱해보면... $$\begin{pmatrix} a_{2} \\ a_{1} \end{pmatrix}=\begin{pmatrix} 1 & 1 \\ 1 & 0 \\ \end{pmatrix}\begin{pmatrix} a_{1} \\ a_{0..

파이썬으로 두 행렬 곱하기 구현하는 방법

1. 문제 2740번: 행렬 곱셈 (acmicpc.net) 2740번: 행렬 곱셈 첫째 줄에 행렬 A의 크기 N 과 M이 주어진다. 둘째 줄부터 N개의 줄에 행렬 A의 원소 M개가 순서대로 주어진다. 그 다음 줄에는 행렬 B의 크기 M과 K가 주어진다. 이어서 M개의 줄에 행렬 B의 원소 K개 www.acmicpc.net 2. 풀이 n*m행렬과 m*k 행렬을 곱하면, n*k행렬이 되며, n*k 행렬의 원소 $c_{ij}$는 다음과 같이 정의될 것이다 $$c_{ij} = \sum_{w = 0}^{k-1} a_{iw}b_{wj}$$ 이차원 리스트를 적절히 정의하고, i,j,w의 3중 for문으로 행렬 곱셈을 만들 수 있다 from sys import stdin n,m = map(int,stdin.readli..