+ All Categories
Home > Documents > Ch5 NumAnalysis.ppt - Chibum Lee · 5.1 공학과과학에서의근...

Ch5 NumAnalysis.ppt - Chibum Lee · 5.1 공학과과학에서의근...

Date post: 17-Feb-2020
Category:
Upload: others
View: 32 times
Download: 0 times
Share this document with a friend
23
수치해석 수치해석 Numerical Analysis Numerical Analysis 161009 161009 Ch5. Roots: Bracketing Ch5. Roots: Bracketing Methods Methods 1
Transcript

수치해석수치해석Numerical AnalysisNumerical Analysis

161009161009

Ch5. Roots: Bracketing Ch5. Roots: Bracketing Ch5. Roots: Bracketing Ch5. Roots: Bracketing MethodsMethods

1

� 앞의 낙하속도 문제에서

Q. 의학연구에 의하면 4초 후에 낙하속도가 36 m/s를 초

과하면 척추손상을 입을 가능성이 높다. 항력계수가 0.25

kg/m로 주어질 때 이러한 판정기준이 초과하는 질량을

= t

m

gc

c

gmtv d

d

tanh)(

Numerical AnalysisNumerical Analysis

kg/m로 주어질 때 이러한 판정기준이 초과하는 질량을

구하시오.

� t=4, v=36 m/s

� f(m) = 0을 만족하는 m을 구하기

)(tanh)( tvtm

gc

c

gmmf d

d

=

5.1 공학과 과학에서의 근근근근

� 외재적(Explicit) 표현과 내재적(Implicit) 표현

• 는 파라미터가 주어지고 독립변수 t가 주어

지면 종속변수 v(t)를 구할 수 있다.

�외재적 표현 y=f(x)

= t

m

gc

c

gmtv d

d

tanh)(

Numerical AnalysisNumerical Analysis

( ) tanh ( ) 0d

d

gcgmf m t v t

c m

= − =

• 는 t와 v(t)가 주어져도,

독립변수 m을 바로 구할 수 없다.

�내재적 표현 f(x,y)=0

5.2 그래프를 사용하는 방법 (1/2)

� 방정식 f(x)=0에 대한 근의 근사값을 구하는 방법

• f(x)를 그려 x축과 만나는 점을 찾는다.

(a) 같은 부호, 근 없음

(b) 다른 부호, 근 1개

(c) 같은 부호, 근 2개

Numerical AnalysisNumerical Analysis

(d) 다른 부호, 근3개

� 같은 부호: 짝수근

다른 부호: 홀수근

그림 5.1 하한값 xl 과 상한값 xu 사이의 구간에서 근이 존재할 수 있는 몇 가지 경우

5.2 그래프를 사용하는 방법 (2/2)

(a) 중근을 갖는 경우

� 일반적이지 않은 경우

Numerical AnalysisNumerical Analysis

(b) 불연속인 경우

예제 5.1 (1/2)

� Q. 자유낙하 4초 후의 속도를 36 m/s로 되게 하는 번지

점프하는 사람의 질량을 그래프적인 접근법으로 구하라.

(항력계수는 0.25 kg/m이고, 중력가속도는 9.81 m/s2

이다.)

Numerical AnalysisNumerical Analysis

예제 5.1 (2/2)

>> cd = 0.25; g = 9.81; v = 36; t = 4;>> mp = linspace (50, 200);>> fp = sqrt(g*mp/cd).*tanh(sqrt(g*cd./mp)*t) - v;>> plot(mp,fp), grid

Numerical AnalysisNumerical Analysis

m=145를 확인하면,>> sqrt(g*145/cd)*tanh(sqrt(g*cd/145)*t)ans =

36.0456

m=145

� 초기 가정값의 유형에 따른 분류

•구간법

- 근을 포함하고 있는 구간의 양끝을 나타내는 초기 가정

값에서부터 시작.

- 항상 근을 찾지만 수렴이 느리다.

<수치해석의 근 찾는 방법>

Numerical AnalysisNumerical Analysis

•개방법

- 한 개 또는 그 이상의 초기 가정값에서 출발.

- 근을 포함한 구간의 양끝값은 아님,

- 발산하는 경우도 있지만, 수렴이 빠르다

5.3 구간법과 초기 가정 (1/2)

� 증분탐색법(incremental search method)

• 이면 적어도 xl과 xu 사이에 실근이하나 이상 존재

• 증분 구간이 너무 작으면: 계산시간이 많이 소요

너무 크면: 근을 놓치게 됨

• 증분 구간의 크기에 관계없이 중근은 놓칠 위험이 많음

0)()( <ul xfxf

Numerical AnalysisNumerical Analysis

5.3 구간법과 초기 가정 (2/2)function xb = incsearch(func, xmin, xmax, ns) % finds brackets of x that contain sign changes of a function on an interval % input: % func= name of function % xmin, xmax = endpoints of interval % ns = (optional) number of subintervals along x % output: % xb(k,1) is the lower bound of the kth sign changes % xb(k,2) is the upper bound of the kth sign changes % If no brackets found, kb =[]. if nargin <4, ns =50; end % if ns blank set to 50 % Incremental search x = linspace(xmin, xmax, ns); f = feval(func,x);

Numerical AnalysisNumerical Analysis

f = feval(func,x); nb = 0, xb =[]; % xb is null unless sign change detected for k = 1:length(x)-1

if sign(f(k)) ~= sign(f(k+1)) % check for sign change nb = nb + 1; xb(nb,1) = x(k); xb(nb,2) = x(k+1);

end end if isempty(xb) % display that no brackets were found

disp('no brackets found')disp('check interval or increase ns')

elsedisp('number of brackets:') %display number of bracketsdisp(nb)

end

� Q. incsearch를 사용하여 구간 [3,6] 사이에서 다음 함수

의 부호가 바뀌는 구간을 찾아라.

Sol)

예제 5.2 (1/2)

)3cos()10sin()( xxxf +=

>> incsearch(@(x) sin(10*x)+cos(3*x), 3, 6)number of brackets:

Numerical AnalysisNumerical Analysis

number of brackets:5

ans =3.2449 3.30613.3061 3.36733.7347 3.79594.6531 4.71435.6327 5.6939

소구간이 너무 넓어서 x=4.25와5.2 사이의 근을 놓쳤다.

예제 5.2 (2/2)

>> incsearch (@(x) sin(10*x)+cos(3*x), 3,6, 100)number of brackets:

9ans =

3.2424 3.27273.3636 3.39393.7273 3.75764.2121 4.24244.2424 4.2727

Numerical AnalysisNumerical Analysis

4.2121 4.24244.2424 4.27274.6970 4.72735.1515 5.18185.1818 5.21215.6667 5.6970

5.4 5.4 5.4 5.4 이분법이분법이분법이분법(bisection method)(bisection method)(bisection method)(bisection method) (1/4)(1/4)(1/4)(1/4)

� 증분탐색법의 변형으로 구간 폭을 항상 반으로 나누는 방법

이다.

� 함수의 부호가 구간

내에서 바뀌면 구간의

중간점에서 함수 값을

계산한다.

Numerical AnalysisNumerical Analysis

계산한다.

� 나뉜 소구간 중에서

부호가 바뀌는 소구간

에 위치한 근을 구한다.

� 절대오차는 매 반복마다 반으로 감소

2

ulr

xxx

+=

� 이분법을 마치기 위한 객관적인 판단기준은?

• 근의 참값을 모르므로 를 이용할 수 없다.

• 근사 상대오차,

5.4 5.4 5.4 5.4 이분법이분법이분법이분법 (2/4)(2/4)(2/4)(2/4)

oldnew xx −

Numerical AnalysisNumerical Analysis

snew

r

old

r

new

ra

x

xxεε <×

−= %100

예제 5.4 (1/3)

� Q. 이분법을 이용하여 자유낙하 4초 후의 속도를 36 m/s

로 되게 하는 번지 점프하는 사람의 질량을 구하라. 근사

오차가 s = 0.5%의 종료 판정기준 이하가 될 때까지 계산

을 반복하라.

(단, 항력계수는 0.25 kg/m이고, 중력가속도는 9.81

m/s2이다. )

Numerical AnalysisNumerical Analysis

m/s 이다. )

예제 5.4 (2/3)

구간 추정 근 오차(%)

xl xu xr

1 50 200

2 125 200 23.08 13.85

3 125 162.5 13.04 0.71

aε tε

1252

20050=

+ %43.127376.142

1257376.142=

− 871.1)409.0(579.4)125()50( =−−=ff

5.1622

200125=

+ 147.0)359.0(409.0)5.162()125( −=−=ff

5.162125=

+

Numerical AnalysisNumerical Analysis

3 125 162.5 13.04 0.71

4 125 143.75 134.375 6.98 5.86

5 134.375 143.75 139.0625 3.37 2.58

6 139.0625 143.75 141.4063 1.66 0.93

7 141.4063 143.75 142.5781 0.82 0.11

8 142.5781 143.75 143.1641 0.41 0.30

75.1432

5.162125=

+

예제 5.4 (3/3)

Numerical AnalysisNumerical Analysis

� 왜 참오차는 들쭉날쭉한 형태를 갖는가?

�구간 내의 어느 점이나 참근이 될 수 있기 때문.

• 참근이 구간의 중앙에 위치할 때는 와 의 차이가 크다

• 참근이 구간의 끝 쪽에 위치할 때는 와 의 차이가 작다.

tε aε

tε aε

5.4 5.4 5.4 5.4 이분법이분법이분법이분법 (3/4)(3/4)(3/4)(3/4)

� 는 와 같이 줄어드는 경향을 보인다.

� 는 참오차의 상한이므로 보다 항상 크다.

� 절대오차: 반복을 시작하기 전

1번 반복 후

0000

lua xxxE −=∆=

2

01 xEa

∆=

Numerical AnalysisNumerical Analysis

n 차례 반복 후

� 만약 Ea,d가 원하는 오차라면,

n

n

a

xE

2

0∆=

∆=

∆=

da

da

E

xExn

,

0

2

,

0

log2log

)/log(

5.4 5.4 5.4 5.4 이분법이분법이분법이분법 (4/4)(4/4)(4/4)(4/4)

>>func1=@(x) sin(10*x)+cos(3*x)

>> bisection('func1', 50, 200, 0.001, 50)

1 125

2 162.5000

3 143.7500

4 134.3750

5 139.0625

Numerical AnalysisNumerical Analysis

5 139.0625

6 141.4063

7 142.5781

16 142.7361

17 142.7372

ans =

142.7372

5.5 가위치법(false position method) (1/3)

� 선형보간법이라고도 하는 구간법이다.

• 이분법과 매우 유사하다.

• f(xl)과 f(xu)를 연결하는

직선과 x축의 교점을 찾아

개선된 추정값으로 이용.

• 가위치법 공식

Numerical AnalysisNumerical Analysis

• 가위치법 공식

)()(

))((

ul

uluur

xfxf

xxxfxx

−−=

5.5 가위치법 (2/3)

가위치법 공식의 유도

닮은꼴 삼각형에서

정리하면,

로 나누면

ur

u

lr

l

xx

xf

xx

xf

−=

)()(

)()()]()([ ulluulr xfxxfxxfxfx −=−

)()( ul xfxf −

)()( ullur

xfxxfxx −=

Numerical AnalysisNumerical Analysis

를 더하고 빼면

항을 모으면

)()()()( ul

ul

ul

lur

xfxfxfxfx

−−

−=

ux

)()(

)(

)()(

)(

ul

ulu

ul

luur

xfxf

xfxx

xfxf

xfxxx

−−−

−+=

)()(

))((

ul

uluur

xfxf

xxxfxx

−−=

예제 5.5 (1/2)

� Q. 가위치법으로 의 근을 구하라.

Sol) 1st iteration

ε

2773.176860291.0579387.4

)20050(860291.0200

860291.0)( 200

579387.4)( 50

=−−

−−=

==

−==

r

uu

ll

x

xfx

xfx

)3cos()10sin()( xxxf +=

Numerical AnalysisNumerical Analysis

εt = 23.5%

2nd iteration

εt = 13.76%, εa = 8.56%

860291.0579387.4 −−

592732.2)()( −=rl xfxf

3828.162566174.0579387.4

)2773.17650(566174.02773.176

860291.0)( 2773.176

579387.4)( 50

=−−

−−=

==

−==

r

uu

ll

x

xfx

xfx

예제 5.6

� Q. 이분법과 가위치법을 사용해서 x = 0과 1.3 사이에서

의 근을 구하라.

Sol) 이분법

1)( 10 −= xxf

반복반복반복반복 xl

xu

xr

εεεεa

(%) εεεεt(%)

1

2

3

0

0.65

0.975

1.3

1.3

1.3

0.65

0.975

1.1375

100.0

33.3

14.3

35.0

2.5

13.8

Numerical AnalysisNumerical Analysis

가위치법

3

4

5

0.975

0.975

0.975

1.3

1.1375

1.05625

1.1375

1.05625

1.015625

14.3

7.7

4.0

13.8

5.6

1.6

반복반복반복반복 xl

xu

xr

εεεεa

(%) εεεεt(%)

1

2

3

4

5

0

0.09430

0.18176

0.26287

0.33811

1.3

1.3

1.3

1.3

1.3

0.09430

0.18176

0.26287

0.33811

0.40788

48.1

30.9

22.3

17.1

90.6

81.8

73.7

66.2

59.2


Recommended