5일차 - 수치해석

Report
5주차 - 수치해석
목표
연산 결과의 오차를 최소화할 수 있다.
선형대수적 방법으로 해를 구할 수 있다.
복습

Euler법을 이용하여 아래함수를 t=0에서 4까지 간
격크기를 1로 놓고 적분하라. 초기조건은 t=0에서
y=2이다.
 ′ = 4 0.8 − 0.5
복습

다음과 같이 데이터가 주어졌을 때 x=5에서의 값을
계산하여라.
X
3
4.5
7.0
9.0
f(x)
2.5
1.0
2.5
0.5
오차의 종류
1. 식에 대입하는 값 자체가 오차를 가지고 있는 경
우
→ 초기 데이터 오차
 2. 무한급수의 경우 어느 정도의 값에서 잘라서 얻을
수 있는데 이러한 과정에서 발생하는 경우
→ 공식오차, 절단오차
 3. 숫자가 나누어 떨어지지 않고 무한히 나머지가 발
생하는 값을 유효숫자내에서 계싼하는 경우
→ 계산오차

수치적 데이터를 다룰 때 조심해야 하는 것
들

컴퓨터가 다룰 수 없는 수

실수연산을 많이 해야 하는 경우
10진수 TO 2진수
오차가 생기는 이유


실수연산일 경우
언더플로우가 나서 데이터가 짤리는 경우
허용 오차에 따라 데이터의 신뢰도가 달라
짐
오버플로우가 나서 데이터가 짤리는 경우
다시 구해야함
유효 숫자가 적을 경우
유효 숫자는 0이 아닌 숫자로써 지정되는 개수를 말
한다.
계산을 할 때 유효 숫자가 가장 작은 것을 기준으로
계산한다.
Ex) 0.12*0.123*123456789 = 123456789.243
예
해결방법
오차의 정의

절대 오차 : 실제값 − 근사값 구한 값

상대 오차 :

절대 오차가 작으면 상대 오차도 작다.
실제값 −근사값
실제값
테일러 급수


미분 가능한 함수를 다항식의 형태로 근사시키는 방
법이다.
 
1 ′′
′
=  +  − +   − 2+⋯
2!
1 
+    −   + ⋯ + 
!
이 때 a가 0이라면 맥클로린 급수라고 부른다.
테일러 다항식의 오차


1 
! 
 −    +1  
 −  +1 +1
  =   −   =


+1 !
  =
위의 식을 중간값 정리를 이용하여 정리하면
 −  +1
  −   ≤
max | +1  |
 + 1 ! ∈[,]
선형대수



선형대수는 간단하게 말해서 행렬(matrix)과 벡터
(vector)를 배우는 수학의 한 분야라고 말할 수 있다.
선형대수는 어떤 함수(function 뿐만 아니
라 mapping, operator, transformation 등을 포함해
서)가 선형(linear)함수일 때 그 함수의 성질을 배우
는 것이다.
f(ax) = af(x), f(x+y) = f(x) + f(y)
간단한 행렬 방정식

Ax=b
가우스 소거법

첫 번째 방정식에 적당한 인수를 곱하고 다른 방정식의
변수 하나를 소거하기 위해서 더하거나 빼준다. 이 과
정을 반복한 후에 나온  의 값을 뒤에서부터 대입한다
.
피봇 가우스 소거법


가우스 소거와 방법은 동일하지만 열에서 가장 큰 계
수를 가지고 있는 녀석을 첫 번째 피봇방정식으로 두
고 연산한다.
주의 할 점 : 위 과정에서 가우스 소거법에 비해 계산
비용이 더 들어간다.
이 방법은 가우스 소거의 나눗셈 오차를 줄여주기 위
한 방법이다.
알고리즘
예제
−1 + 2 + 23 = 2
31 − 2 + 3 = 6
−1 + 32 + 43 = 4
위 식의 해를 구하시오.
가우스-조단법


현재의 행렬의 역행렬을 구하는 방법으로 가우스 소
거법과 방법이 유사하다.
가우스 소거법과 마찬가지로 피봇팅을 한 방법과 안
한 방법 두가지 모두 상황에 맞게 이용한다.
가우스-조단법


[A][x]=[b]꼴의 형태로 만들어서 해를 구해보자
알고리즘
CRAMER’S RULE
11 12 13
  = 21 22 23
31 32 33
 det  = 11 22 33 + 12 23 31 + 13 32 21 −
13 22 31 − 12 21 33 − 11 32 23
CRAMER’S RULE
예제
알고리즘
LU분해
가우스 소거법가 기초인 방법이다.
 LU분해는 가우스 소거법이 행렬의 차수가 커지면
실행속도가 느려진다는 단점을 극복하기 위해서 이
용하는 방법이다.
 주어진 행렬 A를 단위 하삼각 행렬 L과 상삼각 행렬
U의 곱 A=LU로 나타내는 것을 LU분해라고 한다.
 하삼각 행렬의 대각벡터의 원소는 모두 1이다.

LU분해
LU분해
LU분해
LU분해

여기에 수식을 입력하십시오.
1
 = −21
−31
1
1
 = 30
1
10
0
1
−32
0
0
1
0
0
1
0
57
2110
1
3
 = 0.1
0.3
3
=
0
0
−0.1
7
−0.2
−0.1
211
30
0
−0.2
−0.3
10
−0.2
22
−
75
3314
331
예제
피봇팅을 이용한 LU분해
피봇팅을 이용한 LU분해
예제

다음 연립방정식을 LU분해를 이용하여 해를 구하여
라.
LU분해와 역행렬
…
…
…

similar documents