수치해석 (Numerical Analysis) 보간법 (Interpolation). Page 2 보간법 (Interpolation) In this chapter … 보간법이란 ? 통계적 혹은 실험적으로 구해진 데이터들 (x i ) 로부터, 주어진 데이터를 만족하는 근사.

Slides:



Advertisements
Similar presentations
6 장. printf 와 scanf 함수에 대한 고찰 printf 함수 이야기 printf 는 문자열을 출력하는 함수이다. – 예제 printf1.c 참조 printf 는 특수 문자 출력이 가능하다. 특수 문자의 미 \a 경고음 소리 발생 \b 백스페이스 (backspace)
Advertisements

1. 2 차원 배열  배열은 동일한 데이터 유형으로 여러 개의 변수를 사용할 경우 같은 이 름으로 지정하여 간편하게 사용할 수 있도록 하는 것으로서 앞에서 1 차원 배열을 공부하였습니다.  2 차원 배열은 바둑판을 생각하면 되며, 1 차원 배열에서 사용하는 첨자를 2.
제 2 장. 비선형 방정식의 해법 1. 방정식의 근 2. 방정식의 실근을 구하는 해법 3. 다항식의 복소수 근을 구하는 해법.
1. 도형의 연결 상태 2. 꼭지점과 변으로 이루어진 도형 Ⅷ. 도형의 관찰 도형의 연결상태 연결상태가 같은 도형 단일폐곡선의 성질 연결상태가 같은 입체도형 뫼비우스의 띠.
수치해석 (Numerical Analysis) 보간법 (Interpolation) 문양세 강원대학교 IT 대학 컴퓨터과학전공.
Add Your Text 5. 지수함수와 로그함수 1. 지수함수 2. 로그함수 · 지수함수와 그 그래프 · 지수방정식과 지수부등식 · 로그 함수와 그 그래프 · 로그방정식과 로그부등식.
수치해석 (Numerical Analysis) 과목 개요 문양세 강원대학교 IT 대학 컴퓨터과학전공.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
재료수치해석 HW # 박재혁.
적분방법의 연속방정식으로부터 Q=AV 방정식을 도출하라.
제 5 장. 보간법(Interpolation)
Report #5 - due: 4/13 다음 10*5의 희소 행렬 A, B를 고려하라.
(Numerical Analysis of Nonlinear Equation)
Excel 일차 강사 : 박영민.
공차 및 끼워맞춤.
수치해석 6장 예제문제 환경공학과 천대길.
Report #2 - Solution 문제 #1: 다음과 같이 프로그램을 작성하라.
컴퓨터 프로그래밍 기초 [Final] 기말고사
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
- 1변수 방정식의 solution 프로그램 (Bisection method, Newton-Raphson method)
제 6 장. 수치미분과 수치적분.
수치해석 (Numerical Analysis)
질의 사항 Yield Criteria (1) 소재가 평면응력상태에 놓였을 때(σ3=0), 최대전단응력조건과 전단변형에너지 조건은σ1 – σ2 평면에서 각각 어떤 식으로 표시되는가? (2) σ1 =σ2인 등이축인장에서 σ = Kεn로 주어지는 재료의 네킹시 변형율을 구하라.
Error Detection and Correction
멀티미디어 시스템 (아날로그 이미지,신호를 디지털로 변환 방법) 이름 : 김대진 학번 :
비선형 방정식 김영광.
6장. printf와 scanf 함수에 대한 고찰
예: Spherical pendulum 일반화 좌표 : θ , Ф : xy 평면으로부터 높이 일정한 량 S 를 정의하면
Tail-recursive Function, High-order Function
행렬 기본 개념 행렬의 연산 여러가지 행렬 행렬식 역행렬 연립 일차 방정식 부울행렬.
3차원 객체 모델링.
일차방정식의 풀이 일차방정식의 풀이 순서 ① 괄호가 있으면 괄호를 먼저 푼다.
제4장 제어 시스템의 성능.
Ⅲ. 이 차 방 정 식 1. 이차방정식과 그 풀이 2. 근 의 공 식.
1.4 중첩된 한정기호 (Nested Quantifiers) 이산수학 (Discrete Mathematics)
C 프로그래밍 C언어 (CSE2035) (Chap11. Derived types-enumerated, structure, and union) (1-1) Sungwook Kim Sogang University Seoul, Korea Tel:
프로그래밍 개요
Report #3 - due: 4/6 100*100의 2개의 희소 행렬 A, B를 전달 받아서 이들의 덧셈을 구하고, 그 결과의 행렬 C를 반환하는 add_sparse_matrix(A, B, C)를 다음과 같이 작성하라. 희소 행렬은 sparse_matrix 타입으로 표현된다.
수학 토론 대회 -도형의 세가지 무게중심 안다흰 임수빈.
Term Projects 다음에 주어진 2개중에서 한 개를 선택하여 문제를 해결하시오. 기한: 중간 보고서: 5/30 (5)
Metal Forming CAE Lab., Gyeongsang National University
보고서 (due 5/8) 다음과 같은 방식으로 문제를 해결하시오. 문제 분석 알고리즘 작성 프로그램 작성 테스트 및 검증
8장. spss statistics 20의 데이터 변환
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
Fitting / Matrix / Excel
보고서 #7 (기한: 6/2) 2개의 스택, stk1, stk2를 이용하여 큐를 구현하라.
홍수추적 담당교수명 : 서 영 민 연 락 처 :
수학10-나 1학년 2학기 Ⅰ. 도형의 방정식 2. 직선의 방정식 (9/24) 점과 직선 사이의 거리 수업계획 수업활동.
수치해석 (Numerical Analysis)
미분방정식.
알고리즘 알고리즘이란 무엇인가?.
1. 선분 등분하기 (1) 주어진 선분 수직 2등분 하기 ① 주어진 선분 AB를 그린다. ② 점 A를 중심으로 선분AB보다
수학10-나 1학년 2학기 Ⅰ. 도형의 방정식 1. 평면좌표 (2~3/24) 선분의 내분점과 외분점 수업계획 수업활동.
약식 진리표를 이용한 타당성 증명 진리표 그리기 방법의 한계
에어 PHP 입문.
홍수추적 담당교수명 : 서 영 민 연 락 처 :
4장. 데이터 표현 방식의 이해. 4장. 데이터 표현 방식의 이해 4-1 컴퓨터의 데이터 표현 진법에 대한 이해 n 진수 표현 방식 : n개의 문자를 이용해서 데이터를 표현 그림 4-1.
원의 방정식 원의 방정식 x축, y축에 접하는 원의 방정식 두 원의 위치 관계 공통접선 원과 직선의 위치 관계
1. 접선의 방정식 2010년 설악산.
쉽게 배우는 알고리즘 2장. 점화식과 점근적 복잡도 분석
11장 배열 1. 배열이란? 1.1 배열의 개요 1.2 배열의 선언과 사용.
Chapter 7 – Curves Part - I
상관계수.
Numerical Analysis Programming using NRs
수치해석 (Numerical Analysis)
컴퓨터공학과 손민정 Computer Graphics Lab 이승용 교수님
수치해석 ch3 환경공학과 김지숙.
수학10-나 1학년 2학기 Ⅱ.부등식의 영역 3. 부등식의 영역에서 최대, 최소(5/5) 부등식 영역 수업계획 수업활동.
수학 2 학년 1 학기 문자와 식 > 미지수가 2개인 연립방정식 ( 3 / 4 ) 대입법으로 풀기.
Ch8.기본적인 RL, RC 회로 자연응답, 강제응답, 시정수, 계단입력과 스위치 회로
Presentation transcript:

수치해석 (Numerical Analysis) 보간법 (Interpolation)

Page 2 보간법 (Interpolation) In this chapter … 보간법이란 ? 통계적 혹은 실험적으로 구해진 데이터들 (x i ) 로부터, 주어진 데이터를 만족하는 근사 함수 (f(x)) 를 구하고, 이 식을 이용하여 주어진 변수에 대한 함수 값을 구하는 일련의 과정을 의 미한다. 예를 들어, (0, 0), (1, 10), (2, 20) 이 주어졌을 때, 이들에 대한 근사 함수 를 f(x) = 10x 로 구하고, 1.5 에 대한 함수 값으로 15 를 구하는 것이다. We will cover … 선형 보간법 라그랑제 다항식 보간법 네빌레의 반복 보간법 뉴튼 다항식에 의한 보간법 3 차원 스플라인 보간법

Page 3 We are now … 선형 보간법 라그랑제 다항식 보간법 네빌레의 반복 보간법 뉴튼 다항식에 의한 보간법 Linear Interpolation

Page 4 Linear Interpolation 선형 보간법 개념 (1/2) 선형 보간법은 주어진 두 점을 이은 직선의 방정식을 근사 함수로 사용하 는 단순한 방법이다. 함수 f(x) 가 폐구간 [a,b] 위에서 정의되고, 이 구간에 있는 n 개의 점 x 1, x 2, …, x n 에 대하여 각각의 함수 값을 안다고 하자. 이때, 임의의 두 점 (x i, f(x i )), (x i+1, f(x i+1 )) 을 지나는 직선의 방정식은 다 음과 같다. 상기 식에서, g(x) 는 (x i, x i+1 ) 사이의 임의의 x 값에 대한 선형 보간 값이 되는 것이다.

Page 5 Linear Interpolation 선형 보간법 개념 (2/2) 선형 보간법의 원리 xixi X i+1 f(xi)f(xi) f(x i+1 ) f(x)f(x) g(x)g(x) f(a)f(a) a g(a)g(a)

Page 6 선형 보간법 - 알고리즘 procedure linear_inter(x 1, x 2, y 1, y 2 : real numbers, x m : real number) { (x 1,y 1 ) and (x 2,y 2 ) are the initial points. } { x m is the value that we want to get the f(x). } g(x) := return g(x m ); Linear Interpolation

Page 7 주어진 문제 : 함수 f(x) = e x 에서 f(1) = e, f(2) = e 2 를 안다고 할 때, f(1.0), f(1.1), f(1.2), …, f(1.9), f(2.0) 의 값을 선형 보간법으로 구하라. 선형 보간법 - 프로그램 Linear Interpolation

Page 8 선형 보간법 – 실행 결과 Linear Interpolation

Page 9 We are now … 선형 보간법 라그랑제 다항식 보간법 네빌레의 반복 보간법 뉴튼 다항식에 의한 보간법 Lagrange Interpolation

Page 10 라그랑제 보간법 개념 (1/6) 점들을 단순하게 직선으로 연결하는 것이 아니라, 여러 개의 점들을 지나 는 곡선으로 연결하는 방법을 사용한다. 즉, 여러 개의 점들이 주어졌을 경우, 이들 점들을 지나는 다항식을 구하 고, 이 다항식을 사용하여 주어진 점에 대한 보간 값을 구한다. Lagrange Interpolation xixi X i+1 f(xi)f(xi) f(x i+1 ) f(x)f(x) g(a)g(a) X i+2 g(x)g(x) f(a)f(a) a

Page 11 라그랑제 보간법 개념 (2/6) (n+1) 개의 점을 지나는 n 차 다항식은 오로지 한 개 존재한다. (n+1) 개의 점들이 다음과 같이 주어진다고 가정하자. 여기에서, x 0, x 1, …, x n 은 (n+1) 개 점들의 x 축 값이며, 그 간격은 일정하지 않아도 된다. Lagrange Interpolation

Page 12 라그랑제 보간법 개념 (3/6) 구하고자 하는 n 차 다항식은 다음과 같이 표현할 수 있다. 다항식 g(x) 에 (n+1) 개 점들을 대입하여 다음의 (n+1) 개 연립 방정식을 얻 을 수 있다. Lagrange Interpolation

Page 13 라그랑제 보간법 개념 (4/6) 연립 방정식을 풀기 위해서는 다른 프로그램이 필요하고, 정확성도 보장 할 수 없다. Lagrange Interpolation 상기 연립 방정식을 풀면, 계수 a 0, a 1, …, a n 을 구할 수 있고, 결국 다항식 g(x) 를 구하여 다른 x 값에 대한 보간 값을 구하는데 사용할 수 있다.  라그랑제 보간법 : 연립 방정식을 풀지 않고 다항식을 결정함

Page 14 라그랑제 보간법 개념 (5/6) 함수 F(x) 는 x = x 0, x 1, x 2, …, x n 일 때 각각 0 이 된다. Lagrange Interpolation 라그랑제의 식은 n 차일 때의 식이 다음과 같다. F(x) 를 각각의 F(x i ) 로 나눈 식을 다음과 같이 G i (x) 라 놓는다. ( 단, 나눌 때 (x  x i ) 은 분모 및 분자에서 제외한다.)

Page 15 라그랑제 보간법 개념 (6/6) Lagrange Interpolation 각각의 G i (x) 에 y i 를 곱하고, 이를 서로 더하면 그 합은 다음과 같이 n 차 다항식이 된다. 상기 g(x) 는 0 과 n 사이의 모든 i 에 대해서 g(x i ) = y i 를 만족한다. 즉, g(x) 는 모든 (x i, f(x i )) 를 지나는 다항식이 된다.

Page 16 라그랑제 보간법 - 알고리즘 procedure lagrange(x 0 ~x n, y 0 ~ y n : real numbers, x: real number) { (x i,y i )’s are the given points. } { x is the value that we want to get the f(x). } y := return y; Lagrange Interpolation

Page 17 주어진 문제 : 다음 표와 같이 네 개의 x 값과 이의 함수 값이 주어졌을 때, x = 1.5, 2.7, 3.4 일 때의 근사 함수 값을 라그랑제 보간법으로 구하시오. 라그랑제 보간법 – 프로그램 (1/3) Lagrange Interpolation 참고 : 상기 표의 함수 값은 f(x) = log 10 (x) 에 해당한다. xf(x)f(x)

Page 18 라그랑제 보간법 – 프로그램 (2/3) Lagrange Interpolation

Page 19 라그랑제 보간법 – 프로그램 (3/3) Lagrange Interpolation

Page 20 라그랑제 보간법 – 실행 결과 (1/2) Lagrange Interpolation 입력 파일 실행 결과 (x = 1.5)

Page 21 라그랑제 보간법 – 실행 결과 (2/2) Lagrange Interpolation 실행 결과 (x = 2.7) 실행 결과 (x = 3.4)

Page 22 We are now … 선형 보간법 라그랑제 다항식 보간법 네빌레의 반복 보간법 뉴튼 다항식에 의한 보간법 Nevile Interpolation

Page 23 네빌레의 반복 보간법 개념 (1/5) 라그랑제 보간법의 문제점 : 기존 데이터에 덧붙여 새로운 점이 하나만 추가되어도, ( 앞서 구성한 다항식을 사용하지 못하고 ) 다항식을 다시 계산해야 한다.  네빌레의 반복 보간법 : 앞서 구한 계산이나 결과를 다음 단계에서 사용하 는 방법으로서, 새로운 점이 지속적으로 추가될 경우 매우 적합하다. Nevile Interpolation 네빌레의 반복 보간법의 다항식 구성 개념 한 점에 대한 0 차 다항식을 구한다. 앞서 구한 0 차 다항식을 사용하여, 두 점에 대한 1 차 다항식을 구한다. 앞서 구한 1 차 다항식을 사용하여, 세 점에 대한 2 차 다항식을 구한다. … 앞서 구한 (n  1) 차 다항식을 사용하여, (n+1) 개 점에 대한 n 차 다항식을 구한다.

Page 24 네빌레의 반복 보간법 개념 (2/5) 한 점에 대한 0 차 다항식을 다음과 같이 구한다. ( 단, g i (x) = g(x i ) 이다.) Nevile Interpolation 두 점에 대한 1 차 다항식을 앞서의 0 차 다항식을 사용하여 구한다. 라그랑제 보간법에 따르면, 두 점 x 0, x 1 을 지나는 1 차 다항식은 다음과 같다. 마찬가지로, 두 점 x 1, x 2 을 지나는 1 차 다항식은 다음과 같다.

Page 25 네빌레의 반복 보간법 개념 (3/5) 다음 표기법을 사용하여, 두 점을 지나는 1 차 다항식을 간략히 나타낸다. Nevile Interpolation

Page 26 네빌레의 반복 보간법 개념 (4/5) 같은 방식으로, 세 점에 대한 2 차 다항식을 앞서의 1 차 다항식을 사용하 여 구한다. Nevile Interpolation 마찬가지로, 네 점에 대한 3 차 다항식을 앞서의 2 차 다항식을 사용하여 구한다.

Page 27 네빌레의 반복 보간법 개념 (5/5) 지금까지 구한 다항식들은 다음과 같이 표로 나타낼 수 있다. Nevile Interpolation 결국, 주어진 개수의 점을 사용하여 다항식을 구하고, 이를 근사 값 계산 에 사용한다. 그 이후에, 새로운 점이 추가되면, 이전 다항식에 이 점을 추가한 다항식 을 다시 구하고, 이를 근사 값 계산에 사용한다. xixi xxixxi f i (x)=g i (x) 근사 함수 x0x0 xx0xx0 g0(x)g0(x) x1x1 xx1xx1 g1(x)g1(x)g 0,1 (x) x2x2 xx2xx2 g2(x)g2(x)g 1,2 (x), g 0,1,2 (x) x3x3 xx3xx3 g3(x)g3(x)g 2,3 (x), g 1,2,3 (x), g 0,1,2,3 (x) …………

Page 28 네빌레의 반복 보간법 – 알고리즘 (1/2) procedure nevile(x 0 ~x n-1, y 0 ~ y n-1 : real numbers, x: real number) { (x i,y i )’s are the given points. } { x is the value that we want to get the f(x). } for i := 0 to n  1 {increment} begin g cur [0] = y i ; // g xxx [0] = g i, g xxx [1] = g i-1,i, g xxx [2] = g i-2,i-1,I, … k := 1; // g prev [i]: previous row, g cur [i]: current row for j := i to 1 {decrement} begin g cur [i  j+1] := calc_product(g prev [i  j], g cur [i  j], x i, x (i-k), x); k := k+1; end for j := 0 to i g prev [j] = g cur [j]; end return y; Nevile Interpolation

Page 29 네빌레의 반복 보간법 – 알고리즘 (2/2) procedure calc_product(g prev, g cur, x e, x s, x: real numbers) y := return y; Nevile Interpolation

Page 30 주어진 문제 : 다음 표와 같이 다섯 개의 x 값과 이의 함수 값이 주어졌을 때, x = 2.7 에 대한 근사 함수 값을 네빌레의 반복 보간법으로 구하시오. 네빌레의 반복 보간법 – 프로그램 (1/4) 참고 : 상기 표의 함수 값은 에 해당한다. xf(x)f(x) Nevile Interpolation

Page 31 네빌레의 반복 보간법 – 프로그램 (2/4) Nevile Interpolation

Page 32 네빌레의 반복 보간법 – 프로그램 (3/4) Nevile Interpolation

Page 33 네빌레의 반복 보간법 – 프로그램 (4/4) Nevile Interpolation

Page 34 네빌레의 반복 보간법 – 실행 결과 입력 파일 실행 결과 (x = 2.7) Nevile Interpolation

Page 35 We are now … 선형 보간법 라그랑제 다항식 보간법 네빌레의 반복 보간법 뉴튼 다항식에 의한 보간법 Interpolation on Newton Polynomials

Page 36 뉴튼 보간법 개요 뉴튼 보간법은 ( 네빌레 보간법과 유사하게 ) 라그랑제 보간법의 1) 하나의 보간을 위해 필요한 계산량이 많고, 2) 데이터의 수가 증가할 때, 바로 직전의 결과를 사용하지 못하며, 3) 에러 계산이 용이하지 않은 문제점을 해결한다. 뉴튼 보간법에서는 기존 데이터를 기초로 차분표 (differential table) 를 구 성하고, 이 차분표를 사용하여 보간 공식을 구한다. 또한, 새로운 데이터가 추가되어도 그 차수를 늘리기 쉬운 장점이 있다. 뉴튼 보간법은 데이터의 종류 및 방법에 따라 다음 세 가지가 있다. 주어진 점의 x 값 간격이 등간격이 아닌 경우 : 분할 차분법 주어진 점의 x 값 간격이 등간격인 경우 : 전향 차분법 혹은 후향 차분법 Interpolation on Newton Polynomials

Page 37 분할 차분법 개념 (1/4) 서로 다른 (n+1) 개의 점 x 0, x 1, x 2, …, x n 에 대해서, 함수 f(x) 와 함수 값이 같은 n 차 이하의 다항식 P n (x) 가 다음과 같이 주어진다고 하자. ( 다음과 같은 형태를 뉴튼형이라 한다.) Interpolation on Newton Polynomials 그러면, 각 x i 값에 따라서 다음 관계가 만족하고, 이에 따라 상수항 a 0, a 1, … 을 순서대로 구할 수 있다.

Page 38 분할 차분법 개념 (2/4) 중복된 계산식 ( 예 : (x 2  x 0 )) 을 줄이기 위해, 분할 차분 기호를 사용한다. (  일종의 dynamic programming 기법으로 볼 수 있다.) Interpolation on Newton Polynomials 이를 일반화 시켜서 표현하면 다음과 같다.

Page 39 분할 차분법 개념 (3/4) 분할 차분 기호를 사용하여 P n (x) 를 다시 표현하면 다음과 같다. Interpolation on Newton Polynomials

Page 40 분할 차분법 개념 (4/4) 차분 기호를 이용한 방정식 풀이를 위해 차분표를 작성하면 다음과 같다. Interpolation on Newton Polynomials ixixi f[xi]f[xi]f[x i,x i+1 ]f[x i,x i+1,x i+2 ]f[x i,x i+1,x i+2,x i+3 ]… x0x1x2x3x4x0x1x2x3x4 f[x0]f[x1]f[x2]f[x3]f[x4]f[x0]f[x1]f[x2]f[x3]f[x4] f[x0,x1]f[x1,x2]f[x2,x3]f[x3,x4]f[x0,x1]f[x1,x2]f[x2,x3]f[x3,x4] f[x0,x1,x2]f[x1,x2,x3]f[x2,x3,x4]f[x0,x1,x2]f[x1,x2,x3]f[x2,x3,x4] f[x0,x1,x2,x3]f[x1,x2,x3,x4]f[x0,x1,x2,x3]f[x1,x2,x3,x4] …………………

Page 41 분할 차분법 – 알고리즘 procedure newton-diff(x 0 ~x n-1, y 0 ~ y n-1 : real numbers, x: real number) { (x i,y i )’s are the given points. } { x is the value that we want to get the f(x). } for i := 0 to n  1 f cur [i] := f prev [i] := y i ; for i := 1 to n  1 begin for j := i to n  1 f cur [j] := (f prev [j]  f prev [j  1])/(x j  x j  i ); for j := i to n  1 f prev [j] := f cur [j]; end y := 0;t := 1; for i := 0 to n  1 begin y := y + (f prev [i]  t); t := t  (x  x i ); end return y; Interpolation on Newton Polynomials 교재에서는 2-D Array 를 사용하였으나, 실제로는 1-D Array 들로 해결이 가능하다.

Page 42 주어진 문제 : 다음 데이터를 참고로 하여, x = 3.8 일 때의 근사 함수 값을 뉴튼의 분할 차분법을 이용하여 구하시오. 분할 차분법 – 프로그램 (1/3) xf(x)f(x) Interpolation on Newton Polynomials

Page 43 분할 차분법 – 프로그램 (2/3) Interpolation on Newton Polynomials

Page 44 분할 차분법 – 프로그램 (3/3) Interpolation on Newton Polynomials

Page 45 분할 차분법 – 실행 결과 입력 파일 실행 결과 (x = 3.8) Interpolation on Newton Polynomials

Page 46 전향 차분법 및 후향 차분법 개념 전향 차분법과 후향 차분법은 기본적으로 분할 차분법과 동일하나, 주어진 데이터가 등간격인 경우에 사용하는 좀 더 간략화된 방법이다. Interpolation on Newton Polynomials 전향 차분법은 주어진 점 x i (i = 0, 1, 2, …, n) 의 간격이 h 일 때, 함수 값을 구하고자 하는 점 x 를 (x 0 +sh) 로 놓고 다음 관계를 활용하는 방법이다. 후향 차분법은 주어진 점 x i (i = 0, 1, 2, …, n) 의 간격이 h 일 때, 함수 값을 구하고자 하는 점 x 를 (x n +sh) 로 놓고 다음 관계를 활용하는 방법이다. 분할 차분법과 유도 과정이 동일하므로, 알고리즘 및 프로그램은 생략한다.

Page 47 Homework #4 Interpolation on Newton Polynomials