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)
선택한 방식을
수행
올바른 해가 나왔는
가?
해 출력