You are on page 1of 33

방정식의 근

강원대학교 메카트로닉스전공
박용재
메카트로닉스공학전공
Mechatronics Engineering

• 이분법
• 가위치법
• 고정점 반복법
• 할선법
• 뉴턴법
방정식의 근
• 방정식을 만족하는 𝒙를 구하는 것

𝑓 𝑥 0

• 2차 방정식의 근

 b  b 2  4ac
ax  bx  c  0 
2
x
2a

• 고차 방정식이나 다른 방정식은?

ax 5  bx 4  cx 3  dx 2  ex  f  0  x  ?
sin x  x  0  x  ?

이러한 경우 정확한 해는 아니더라도 사용하기에 충분한 근사해를 구하는 것이 중요.


→ 수치해석이용

함수의 근 구하는 법
• 함수의 근

 어떤 함수 f(x)에 대해서 조건 f(x) = 0을 만족하는 숫자 x가 근(roots)

 x축과 그래프가 만나는 점

 비선형 방정식의 근을 찾기는 어려움

• 수치해석에서는 근삿값과 관련된 오차 해석을 이용하여 찾음

sin x  x  0 x?
MATLAB을 이용하면

clear all
c=[2 -5 0 8]
d=polyval(c,2)
disp([‘solution=‘,num2str(d)])
solution=4

a=[1 -5 -17 21];


roots(a)

x=[-5:0.01:10];
y=x.^3-5*x.^2-17*x+21;
figure
plot(x,y)
grid

f (x) = 0 이 되는 x를 구하는 방법

비선형 방정식
근 구하는 법

Open
Bracketing Graphical
Methods

이분법
고정점 반복법
(Bisection)

가위치법
뉴턴법
(False Position)

할선법(Secant)
그래프를 이용한 방법
• 가장 간단한 방법은 f(x)의 그래프를 그린 다음 x축과 만나는 점의 위치를 눈으로
찾는 것

• 아래의 그래프의 경우 대략 0.6 정도

• 이 방법은 근의 대략적인 위치를 쉽게 알려 주기 때문에 정확하지는 않지만, 대


략적인 값을 찾는 것에 종종 사용됨.

그래프를 이용한 방법
• 함수값을 비교하여 근의 유무 판단

f (a )  f (b)  0 근이 존재

f (a )  f (b)  0 근이 존재하지 않음.

중근 불연속 함수

단, 위의 부등식이 항상 만족하지는 않는다.


1) 중근이 존재하거나
2) 함수가 불연속이거나 등

→ 따라서 다른 방법 필요함.
컴퓨터를 이용하여 근 구하기

f ( x)  sin10 x  cos 3 x

Bracketing 방법(괄호법: 두 지점 사이에서 근 찾기)


• 초기 가정에 근의 구간이 정해져 있는 방법

• 구간이 있어야 하기 때문에 괄호법이라는 용어를 사용함.

f (a )  f (b)  0 근이 존재
이분법 (Bisection)
• 반복법을 활용한 가장 간단한 방법- 중간값 정리를 이용하여 해를 찾는 방법

• 범위가 정해져 있는 구간을 항상 반으로 나누어 검색하는 증분법의 변형

 구간의 중앙값을 이용하여 함수값을 계산

• 일반적으로 근의 범위를 설정하고

• f (a)  f (b) 의 부호에 따라 계산을 반복적으로 수행


• 부호가 음수이면 근이 존재한다는 것

• 범위의 중간값을 취하고 이를 적용하여 새로운 구간을 생성.

이분법 적용
이분법 예제

예제 이분법을 이용한 비선형방정식의 근 찾기

구간 [1, 2]에서 아래 함수는 한 개의 근을 가지고 있다. 이분법 알고리즘을 이용하여 오


차 10-4의 범위 내에서 함수의 근을 구하시오.

𝑓 𝑥 𝑥 𝑥 1

(a) 구간 [1, 2]에서 근이 하나 존재함을 보여라.


(b) 이분법을 네 번 반복하여 각각의 근을 계산하라.

이분법 예제

예제 이분법을 이용한 비선형방정식의 근 찾기

이분법을 이용하여 구간 [-1, 0]에서 다음 식을 풀어보시오.

f ( x)  e x  x 2  x
엑셀로 계산한 이분법

이분법에 대한 오차추정

15  14
a  100%  6.667%
15
Step2

Step1
Step5

Step3

Step2

Step4
new  old
a  100
new

function f=f1(x)
f=exp(x)-x.^2-1;

bisect(‘f1’,-1,0,10^(-4),10)
이분법 장단점
• 장점 • 단점

 쉽다.  느리다.

 항상 근을 찾을 수 있다.  근이 있는 구간을 알아야

 절대 오차를 계산하기 쉽다. 한다.

 여러 개의 근을 구하기 어
렵다.

이분법을 얼마나 반복해야 하는가?


• 첫번째 구간 길이 Lo=b-a

• 1번 반복한 후 L1=Lo/2

• 2번 반복한 후 L2=Lo/4
⁞ ⁞

• k번 반복한 후 Lk=Lo/2k

Lk
a   100% a  s
x
• 요구되는 오차범위 내의 정확성을 얻기 위하여 반복해야 하는 횟수는?

2
10  4   2 k  2 10 4  k  14.3  15
2k
이분법에 의한 반복계산 횟수 n을 구하기
• n 번째 단계에서 이분법은 𝑏 𝑎 /2 의 오차로 근사시킴.

예제 절대오차가 10-6 이상이 되지 않는 f(x)의 근을 찾기 위해 요구되는 반


복계산 횟수를 결정하시오. 단, 구간[1 2]

𝑓 𝑥 𝑥 𝑥 1

이분법에 의한 반복계산 횟수 n을 구하는 식

ba log b  a  log 


n  log2 
 log 2

 : 허용오차, b, a : 구간 [a, b]

예) 오차가 10-5 이고 구간이 [2, 4]인 경우 반복계산 횟수는


이분법 Algorithm
1. 구간 x0, x1 과 허용오차 ε 입력

2. 함수 f(x0), f(x1) 계산 → f(x0) × f(x1) > 0 이면 계산 정지

3. f(x0) × f(x1) < 0 이면, x2 =(x0 + x1)/2, f(x2) 계산

4. f(x0) × f(x1) < 0 이면, x1 ← x2


f(x0) × f(x1) > 0 이면, x0 ← x2

5. 3번 계산을 반복 수행, 이때
→ | xn - xn-1| < ε 이면 6번으로
→ | xn - xn-1| > ε 이면 3번으로

6. xn 출력 후 계산 종료

가위치법 (Regula falsi method : False‐position method)


• 이분법을 수정한 형태

 구간의 폭을 반복적으로 좁히면서 정확한 근은 구하지 않음

 새롭게 설정되는 구간의 끝 점들을 직선으로 연결

 절편의 위치를 결정하여 다음 근들을 추정

• 함수 f(x)가 주어진 구간 내에서 근을 포함

 반복적으로 미리 결정된 근의 값을 수행

이분법과 동일하나, 구간을 이분하는 위치가 다르다.


가위치법
• 좌표점 (a, f(a))와 (b, f(b)) 을 통과하는 직선방정식
(1)
• m은 직선방정식의 기울기 표시

(2)

• f(x) = 0일 때 새롭게 추정되는 근 x

• 직선방정식의 절편

왜 가위치법을 사용하는가?
이분법이 가위치법보다 나은 경우
• 빠르다.
가위치법 예제

예제 가위치법을 이용한 비선형방정식의 근 찾기

구간 [1, 2]에서 아래 함수는 한 개의 근을 가지고 있다. 가위치법을 이용하여 오차 10-4


의 범위 내에서 함수의 근을 구하시오.

𝑓 𝑥 𝑥 𝑥 1

Tip !
 주어진 구간의 왼쪽 끝점 1을 a0, 오른쪽 끝점 2를 b0로 지정
가위치법 예제2

예제 가위치법을 이용한 비선형방정식의 근 찾기

가위치법을 이용하여 구간 [-1, 0]에서 다음 식을 풀어보시오.


f ( x)  e x  x 2  x

가위치법 정리
• 가위치법은 이분법과 다르게 주어진 구간에 대한 구간법 이용이 불확실

• 가위치법은 할선법과 동일한 방법으로 근삿값 추정

• 가위치법은 이분법보다 신속하게 근을 찾음

 이분법보다 계산은 복잡

• 가위치법은 끝점 두 개가 필요하고 항상 실제 근에 수렴
고정점 반복법 (Fixed‐point iteration)
• 방정식의 형태를 변형하여 근을 구하는 방법

• 연속함수 f(x)가 주어졌을 때 방정식 f(x) = 0을 만족시키는 해를 구하기 위해 먼


저 방정식 f(x) = 0 을 다음과 같이 변환시킨다.

f ( x)  0  g ( x)  x
xk  g ( xk 1 ) xo given, k  1, 2, ...

• 위 관계식의 해 x를 발견하기 위하여 초기 추측값 x0로부터 출발하여 만들어지는


새로운 근사값이 수렴할 때까지 반복을 거듭하는 방법
→ 즉, 이전 계산 g(x)에서 얻은 x의 값을 이용하여 새로운 x값을 예측

• 이때 원하는 해로 수렴하기 위해서는 다음이 성립해야 한다.

고정점 반복법
• x = g(x) 는 아래의 식과 같이 표현할 수
있음.

y1  x
y2  g ( x )

• 이것을 각각 그리면 옆의 그래프와 같다.


고정점 반복법
• 수렴과 발산

고정점 반복법 예제

예제 고정점 반복법을 이용한 비선형방정식의 근 찾기


5
방정식 x   2 는 구간 [2.5, 3]에서 한 개의 근을 가지고 있다. x0  2.5 와
x2
g ( x)  5 / x 2  2 인 고정점 반복법을 이용하여 오차가 10-4보다 작아지게 근을 찾으시오.
고정점 반복법 예제

예제 고정점 반복법을 이용한 비선형방정식의 근 찾기

고정점 반복법을 이용하여 x0  1 일 때 x1 , x2 , x3 를 구하시오.


1
f ( x)  ( x 2  2 x  4)
2

고정점 반복법 예제

예제 고정점 반복법을 이용

g ( x)  cos x , 구간 [0, 1.5] 인 경우에 이 문제는 고정점 반복법이 항상 수렴함을 보이시오.


고정점 반복법 예제

예제 고정점 반복법을 이용한 비선형방정식의 근 찾기

구간 [1, 2]에서 다음의 3차 방정식의 근을 고정점 반복법을 이용하여 구하시오.


x3  x  1  0

고정점 반복법 MATLAB 예제

이 프로그램은 f(x) = x 일때
뉴턴법 (뉴턴‐랩슨법: Newton‐Raphson법)
• 비선형방정식의 근을 결정할 때 자주 사용하는 방법

• 개발자인 뉴턴과 랩슨(Raphson)의 이름을 합쳐서 뉴턴-랩슨법이라고도 부름

• 특징: f(x)=0의 근을 구하기 위한 가장 효율적이고 잘 알려진 방법

• 원리: 초기 근사해를 이용하여 초기 근사해보다 해에 가까운 새로운 해를


예측하여, 이러한 과정을 계속 반복함으로써 보다 정확한 해를 구한다.

 초기 근사해 (x, f(x))를 지나고 기울기가 f´(x)인 직선과 x축이 만나는 점을


새로운 근사해로 취하며, 이렇게 구하여진 근사해를 토대로 계속 새로운 근
사해를 찾는다.

• 단점:

 반복계산시 일차도함수 f´(x)를 계산해야 하므로 시간이 많이 소요됨.

 초기 근사해가 구하고자 하는 해에 충분히 가깝지 않으면 N-R법은 발산하


거나 수렴하더라도 다른 근에 접근

뉴턴법
• 근 a는 y = f(x) 그래프가 x축과 교차하는 점을 찾음

• 근을 찾기 위한 문제 f(x) = 0을 쉽게 찾기 힘든 경우

 근 a의 근처에서 함수 f(x)를 근사시킴

 선형 다항식 p1(x)를 구하여 p1(x) = 0을 계산

• 구간 [a, b]에서 함수 f(x)가 미분 가능하고 함수의 해도 포함하고 있다고 가정


뉴턴법
• 미분을 이용한 접선으로 수렴해 가는 방법을 사용하여 처음 해로 x0 를 추정

 x0 가 실제 근에 가까운 값일수록 더 빠르게 수렴

 x0 가 실제 근에 가까운 값이 아니어도 구간 내에 있으면 최종 해는 구함

• 미분으로 x0 에서 접선을 구하고 이 접선을 이용하여 x1 을 구함

 x1 은 x0 보다 좀 더 a 에 근접

• 같은 방법을 반복하면 실제 근 a 에 수렴함

뉴턴법 간단히 정리
• 주어진 식을 미분한다.

• 초깃값 x0 를 선택한다.

• 반복 규칙을 이용하여 x1 , x2 , x3 , … , xn 을 구한다.,

• xn 이 주어진 오차범위 안에 들어가면 반복을 중단한다.


뉴턴법을 이용하기 위해 새로운 근사해를 구하는 방법 I
• 함수 f(x)를 임의점 a를 중심으로 Taylor 급수전개

( x  a )2 ( x  a )n ( n )
f ( x )  f (a )  ( x  a ) f ' (a )  f '' (a )  ......  f (a )  ......
2! n!
• 이때 f(x) = 0을 만족하는 근을 x = p 라 하면 (임의점 a를 x1 이라하면)

( p  x1 )2 ( p  x1 )n ( n )
f ( p )  0  f ( x1 )  ( p  x1 ) f ' ( x1 )  f '' ( x1 )  ......  f ( x1 )  ......
2! n!
• 만약 x1 이 x = p 에 매우 가까운 근사값이라면 2차항 이상은 무시가능

f ( x1 )
0  f ( x1 )  ( p  x1 ) f ' ( x1 ) p  x1 
f ' ( x1 )
• 이것을 반복과정의 형태로 나타내면,
f ( xn )
xn 1  xn 
f ' ( xn )

N-R 반복계산식
뉴턴법을 이용하기 위해 새로운 근사해를 구하는 방법 II
• 기하학적 방법
f1
f ' ( x1 )  (  tan θ )
x1  x2

이 식을 x2 에 관하여 풀면,

이를 일반항으로 나타내면

반복계산하면 근사해 P 를 구할 수 있음

뉴턴법 사용 시 주의
• 초기 근사해 x1을 잘못 선정하는 경우

A. 구하고자 하는 근사해 p가 아닌 B. 발산하는 경우


다른 실근 q를 구하는 경우

x3 x2 x1 x1
x2 x3
뉴턴법 예제

예제 뉴턴법을 이용한 비선형방정식의 근 찾기

10-4 의 정확도로 뉴턴법을 이용하여 아래 식의 근을 계산하시오. x0 = 1을 이용하시오.

𝑓 𝑥 𝑥 𝑥 1

뉴턴법 예제

예제 뉴턴법을 이용한 비선형방정식의 근 찾기

구간 [0, 1]에서 다음 식의 3단계까지의 근을 구하시오.


f ( x)  e 2 x  e x  2 x1  0 ( I .C.)
뉴턴법 예제

예제 뉴턴법을 이용한 비선형방정식의 근 찾기

다음 식의 2단계 근 x2와 그 때의 함수값 f를 구하시오.


f ( x)  e x  5 x0  3 ( I .C.)

뉴턴법 예제

예제 뉴턴법을 이용한 비선형방정식의 근 찾기

구간 [1, 2]에서 다음 식의 3단계까지의 근을 구하시오.


f ( x)  x 2  2 x1  1.4 ( I .C.)
뉴턴법 정리
• 뉴턴법의 가장 큰 장점은 실제 근에 빠른 속도로 수렴

 4~5번의 반복 실행으로 10-6 정도의 작은 오차 범위를 갖는 근을 구함

• 뉴턴법의 단점은 기술적으로 완전히 수렴되지 못함

• 또 다른 단점은 함수 f(x)의 1차 도함수 f´(x)의 계산도 반드시 필요

 근사시키는 함수 f(x)가 미분 가능한지를 먼저 확인

뉴턴법 MATLAB 예제

미분
할선법 (Secant)
• 뉴턴법을 기초로 이용

 뉴턴법과는 다르게 1차 도함수 f´(x)의 계산이 필요없는 유용한 방법

 뉴턴법처럼 실제 근에 완전하게 수렴하지는 않음

• 함수 f(x)의 곡선 그래프와 교차하는 접촉점을 이용하여 직선을 그림

• 실제 근 a에 근접하는 두 개의 초기점 x0와 x1을 추정

• 세 번째 추정점 x2는 좀 더 실제 근 a에 근접

할선법
• 두 점을 이용하여 구간을 선정함.

f f (xi )  f (xi 1 )
• 뉴턴법에서 f ' ( xn ) 을 차분형태  로 바꾼 방법
x xi  xi 1

• 두 점 [xi-1, f(xi-1)], [xi, f(xi)], 을 지나는 직선이 x축과 만나는 점 xi+1

𝛥𝑓

𝛥𝑥
할선법 예제

예제 할선법을 이용한 비선형방정식의 근 찾기

다음 식의 근사값을 x0 = 0, x1 = 5를 이용하여 구하시오.

x2  4  0
할선법 예제

예제 할선법을 이용한 비선형방정식의 근 찾기

다음 식의 근을 할선법을 이용하여 구하시오.

f ( x)  log( x  5.0)  x, x0  0, x1  1

할선법 예제

예제 할선법을 이용한 비선형방정식의 근 찾기

다음 식의 근을 할선법을 이용하여 구하시오.

f ( x)  x3  x 2  1, x0  1, x1  2
수정된 할선법
• 도함수를 추정하기 위하여 독립변수에 약간의 변동을 주는 방법

수정된 할선법 예제

예제 6.8 수정된 할선법을 이용한 비선형방정식의 근 찾기

다음 식의 근을 수정된 할선법을 이용하여 구하시오. 참값: 0.56714329

f ( x )  e  x  x,   0.01, x0  1.0
할선법 정리
• 할선법은 이분법보다 더 빠르게 실제 근에 수렴하는 장점이 있음

• 할선법의 단점은 이분법과는 다르게 기술적으로 완전히 수렴되지 못함

• 할선법은 뉴턴법과는 다르게 f´(x)의 계산은 불필요

• 할선법도 뉴턴법처럼 대개의 경우만 수렴

할선법 MATLAB 예제
근 찾기 방법 비교
Q&A

You might also like