Transcript 5일차 - 수치해석
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 + 2𝑥3 = 2 3𝑥1 − 𝑥2 + 𝑥3 = 6 −𝑥1 + 3𝑥2 + 4𝑥3 = 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분해와 역행렬 … … …