3일차 - 수치해석

Download Report

Transcript 3일차 - 수치해석

3주차 - 수치해석
목표
데이터를 직접 입력하지 않고 파일에 저장된 데이터를 불러
올 수 있다.
식의 해를 구하는 방법에 대하여 공부해 본다.
복습

자동으로 채점을 해주는 프로그램을 만들어보자
struct나 cell type으로 학생들의 이름과 답지를 저장
하고
채점해주는 함수에 입력변수로 넘겨주자.
파일 입출력


Matlab이 제공하는 파일 입출력 함수들은 임의의 이
진파일과 형식화된 ASCII 파일을 읽고, 쓸 수있는
여러 종류의 함수들을 제공하고 있다. 이러한 함수들
은 여러 가지 형식으로 설정된 데이터를 읽어 들이고,
다른 프로그램이나 장비에 데이터를 기록하게 해준
다.
Low_level file I/O의 경우에는 C언어에서 제공되는
파일 입출력 함수들과 거의 동일한 이름과 기능을 갖
는다.
파일 입출력
파일 입출력 주의사항



확장자를 mat뿐만아니라 다른 확장자로 저장할 수
있다.
만약 확장자가 mat이 아닌 다른 확장자로 저장을 하
였다면 load를 할 때 맨 뒤에 -mat이라고 붙여 주어
야한다.
만약 -mat라고 붙여 주지 않으면 주어진 파일을
ASCII text 파일로 간주하기 때문이다.
ASCII
LOW LEVEL FILE I/O 함수들
FORMAT 예제
예제
Fid의 값이 1인 경우에는 screen에 표시하라는 뜻이고, 2인 경우엔
표준 error를 나타낸다. 3부터 파일 식별자가 해당된다.
코딩에 유용한 함수들
Input(‘prompt’,’s’)
Input(‘prompt’) : 그 뒤에 입력 받은 문자들을 base
workspace에 있는 변수들에 기반을 두고 계산하여 그 결과
값을 출력 변수 R에 반환한다.
 [x,y]=ginput(n) : 그래프를 n번 클릭하여 각 점의 좌표를
얻는다.
 [Y,I]= Sort(x) : 벡터 X를 오름차순으로 정렬하고 각각의
원소가 벡터 X에서 위치하는 곳을 출력 변수 I에 반환한
다.
 [I,j]=find(x)
 p=inline(문자열수식,’arg1’,’arg2’,…)
 Eval(‘문자열수식’) : 자신의 프로그램의 내부 변수를 사
용자가 입력한 문자열에 맞춰 계산할 수 있다.
 Feval(‘함수명’,변수) : 함수에 변수를 넣은 결과값을 반
환한다.

수치해석

식의 해를 얻는 경우 오차의 범위를 명확하게 하기
위한 수학적 방법.
연립 방정식이나 비선형 방정식의 풀이법
 고유값 문제
 함수의 근사, 수치 적분
 다항식 보간
 오차의 평가
컴퓨터에서는 유한 자릿수의 이산적인 수치만을 취
급하므로 반올림 오차(rounding error)나 자리 버림
등을 충분히 고려하여 유한회의 연산으로 끝내도
록 알고리즘을 고려해야 한다.

함수의 근을 찾아주는 함수

Roots([a,b,c])
𝑓 𝑥 = 𝑎𝑥 2 + 𝑏𝑥 + 𝑐의 근을 찾아준다.
다항식의 근을 찾을 때 유용하다.

Fzero(‘function’,x)

초기값 x근처에서 function의 해를 찾아준다.

Roots를 이용한 해 구하기
𝑓 x = x 2 + 7x + 10
Fzero를 이용한 해 구하기
𝑓 𝑥
= 2𝑥 + 𝑒 −𝑥 − 2

BISECTION METHOD(이분법)
Idea
중간값 정리를 이용하여 해를 찾는 방법
𝑓 𝑎 ∗ 𝑓 𝑏 < 0면 𝑎. 𝑏 에서 근은 반드시 하나가 존재한다.
𝑓 𝑐 를 구하고 𝑓 𝑐 가 0과 가까우면 근 아니면 다시 처음 루틴으로
돌아간다

BISECTION METHOD(이분법)
1. 초깃값 𝑥0 를 선택한다.
 2. 반복 규칙을 이용하여 𝑥1 , 𝑥2 , … , 𝑥𝑁 을 구한다.
 3. 𝑥𝑁 이 주어진 오차범위 안에 들어가면 반복을
중단한다.
여기서 말하는 오차는 ‘실제해-근사해’가 아닌
′
′
𝑥𝑖 − 𝑥𝑖−1 을

의미한다.
적용 예
𝑓 x = x 2 + 7x + 10
알고리즘
실제 아이디어가 적용된
지점
FIXED POINT METHOD
Idea
𝑓 𝑥 = 0꼴에서 𝑔 𝑥
= 𝑥꼴로 바꿔서 식의 해를 찾는 방법
이를 기반으로 𝑥𝑛+1
= 𝑔 𝑥𝑛 라는 형태의 알고리즘을 구성한다.

FIXED POINT METHOD
1. 식을 f(x)=0꼴의 형태에서 g(x)=x꼴의 형태로 바
꾼다.
 2. 초깃값 𝑥0 를 선택한다.
 3. 반복 규칙을 이용하여 𝑥1 , 𝑥2 , … , 𝑥𝑁 을 구한다.
 4. 𝑥𝑁 이 주어진 오차범위 안에 들어가면 반복을
중단한다.

적용 예

𝑥 4 − 𝑥 − 10 = 0
𝑔 𝑥 = 𝑥 4 − 10
10
𝑔 𝑥 = 3
𝑥 −1
알고리즘
𝑥𝑛+1 = 𝑔 𝑥𝑛 꼴로 만들고
오차범위내에서 해를
구하는 루틴
NEWTON-RHAPSON METHOD
Idea
한 점에서의 접선의 방정식을 구하여 그 식의 해를 구
하는 과정을 반복한다.
𝑓 𝑥𝑛
𝑥𝑛+1 = 𝑥𝑛 − ′
, 𝑛 = 0,1,2, …
𝑓 𝑥𝑛

NEWTON-RHAPSON METHOD
1. 주어진 식을 미분한다.
 2. 초깃값 𝑥0 를 선택한다.
 3. 반복 규칙을 이용하여 𝑥1 , 𝑥2 , … , 𝑥𝑁 을 구한다.
 4. 𝑥𝑁 이 주어진 오차범위 안에 들어가면 반복을
중단한다.

적용 예

𝑓 𝑥 = 𝑥 2 − 2의 근의 근사값을 구하여라.
𝑓 ′ 𝑥 = 2𝑥
알고리즘
미분한 식을 알고 있을 때 쓸 수 있는 알
고리즘
단점
SECANT METHOD

Newton-Rhapson 알고리즘에서 단순하게 f’(x)의 식
을 점 두개의 기울기식으로 바꾼 알고리즘이다.
𝑥𝑛−1 − 𝑥𝑛−2
𝑥𝑛 = 𝑥𝑛−1 − 𝑓 𝑥𝑛−1 ∗
𝑓(𝑥 𝑛−1 − 𝑓 𝑥𝑛−2
적용 예

cos x - x = 0의 근의 근사값을 구하여라. 단, 초기값
𝑥0 = 0 , 𝑥1 = 2 , 최대 반복횟수는 20으로 한다.
알고리즘
반복연산
초기값 설
정
수렴성 증명
(Cauchy)
선택한 방식을
수행
올바른 해가 나왔는
가?
해 출력