graphics graphics lab @ korea university kucg.korea.ac.kr 2. solving equations of one variable korea...
TRANSCRIPT
Graphics
kucg.korea.ac.kr Graphics Lab @ Korea University
2. Solving Equations 2. Solving Equations of One Variableof One VariableKorea University Computer Graphics Lab.
Lee Seung Ho / Shin Seung Ho Roh Byeong Seok / Jeong So Hyeon
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Contents
Bisection Method Regula Falsi and Secant Method Newton’s Method Muller’s Method Fixed-Point Iteration Matlab’s Method
Graphics
kucg.korea.ac.kr Graphics Lab @ Korea University
Bisection Method
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Bisection Method
1 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 2-2
-1.5
-1
-0.5
0
0.5
1
32 xy
2
bam
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Finding the Square Root of 3 Using Bisection
3
3:0 xy32 xy
How can we get ? 3
k
aberror
2most at is 11
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Approximating the Floating Depth for a Cork Ball by Bisection(1/2)
13 23 xxy
Cork ball
Radius : 1
Density : 0.25
[0,1] by ballcork ofdepth floatingget can we
,0 if
x
y
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Approximating the Floating Depth for a Cork Ball by Bisection(2/2)
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Discussion of Bisection Method
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Fixed-Point Iteration
Solution of equation
Convergence Theorem of fixed-point iteration
)(xgx
1
,2/1)(1 if
kkk xxxx
xg
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Fixed-Point Iteration to Find a Zero of a Cubic Function
2
3
3
3
5.1)(
)(3.05.0
3510
,03105)(
xxg
xgxx
xx
xxxf
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Matlab’s Methods(1/2)
roots(p) p : vector
Example
EDU> r = roots(p); (p=[1 -7 14 -7])
r = 3.8019
2.445
0.75302
7147)( 23 xxxxp
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Matlab’s Methods(2/2)
fzero( ‘function name’,x0 ) function name: string x0 : initial estimate of the root
Example
function y = flat10(x)
y = x.^10 – 0.5;
z = fzero(‘flat10’,0.5)
z = 0.93303
Graphics
kucg.korea.ac.kr Graphics Lab @ Korea University
Regular Falsi and Secant Methods
2005. 3. 23
Byungseok Roh
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Regula Falsi Method
The regula falsi method start with two point, (a, f(a)) and (b,f(b)), satisfying the condition that f(a)f(b)<0.
The straight line through the two points (a, f(a)), (b, f(b)) is
The next approximation to the zero is the value of x where the straight line through the initial points crosses the x-axis.
)()()(
)( axab
afbfafy
)()(
)()()(
)()( afbf
abfbafaf
afbf
abax
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Regula Falsi Method (cont.)
If there is a zero in the interval [a, c], we leave the value of a unchanged and set b = c.
On the other hand, if there is no zero in [a, c], the zero must be in the interval [c, b]; so we set a = c and leave b unchanged.
The stopping condition may test the size of y, the amount by which the approximate solution x has changed on the last iteration, or whether the process has continued too long.
Typically, a combination of these conditions is used.
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Example
Finding the Cube Root of 2 Using Regula Falsi
Since f(1)= -1, f(2)=6, we take as our starting bounds on the zero a=1 and b=2.
Our first approximation to the zero is
We then find the value of the function:
Since f(a) and y are both negative, but y and f(b) have opposite signs
1429.17/87/62
)6(16
122))((
)()(
bfafbf
abbx
5073.02)7/8()( 3 xfy
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Example (cont.)
Calculation of using regula falsi.3 2
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Secant Method
Instead of choosing the subinterval that must contain the zero, we form the next approximation from the two most recently generated points:
At the k-th stage, the new approximation to the zero is
The secant method, closely related to the regula falsi method, results from a slight modification of the latter.
101
0112 y
yy
xxxx
kkk
kkkk y
yy
xxxx
1
11
The secant method has converged with a tolerance of .410
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Example
Finding the Square Root of 3 by Secant Method To find a numerical approximation to , we seek the zero of
. Since f(1)=-2 and f(2)=1, we take as our starting bounds on the
zero and . Our first approximation to the zero is
Calculation of using secant method.
33)( 2 xxfy
10 x 21 x
667.13
5)1(
)2(1
1221
01
0112
yyy
xxxx
3
Graphics
kucg.korea.ac.kr Graphics Lab @ Korea University
NEWTON’S METHOD
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Newton’s Method
Newton’s method uses straight-line approximation which is the tangent to curve.
.
Intersection point
)())((')( 000 xfxxxfxf
)('
)(
0
001 xf
xfxx
)('
)(1
k
kkk xf
xfxx
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Example
Finding Square Root of ¾
approximate the zero of using the fact that .
Continuing for one more step
4
334)( 2 xxf
xxf 8)('
)('
)(
0
001 xf
xfxx 1
4
25.0
875.08/78
10.1
)('
)(
1
112
xf
xfxx
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Finding Floating Depth for a Wooden Ball
Volume of submerged segment of the Sphere
To find depth at which the ball float, volume of submerged segment is time.
Simplifies to
6/)3( 22 xrxV
)3/4(6/)3( 22 xrx
043 23 xx
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Finding Floating Depth for a Wooden Ball (cont.)
To find depth a ball, density is one-third of water float.
3/43)( 23 xxxf
Calculation f(x) using Newton’s Method
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Oscillations in Newton Method
Newton’s method give Oscillatory result for some funtions & initial e
stimates. Ex) 33)( 23 xxxxf
Graphics
kucg.korea.ac.kr Graphics Lab @ Korea University
Muller’s Method
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Muller’s Method
based on a quadratic approximation procedure
1. Decide the parabola passing through (x1,y1), (x2, y2) and (x3,y3)
2. Solve the zero(x4) that is closest to x3
3. Repeat 1,2 until x converge to predefined tolerance
advantage Requires only function values; Derivative need not be calculated X can be an imaginary number.
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Muller’s Method (Cont’)
))(()( 231323 xxxxdxxcyy
12
121 xx
yyc
23
232 xx
yyc
13
121 xx
ccd
132
334
4)(
2
dysssigns
yxx
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Example
Finding the sixth root of 2 using Muller’s method , , ,
375.1112
121
xx
yyc 781.20
23
232
xx
yyc 812.18
13
12
xx
ccD
375.11)5.0(812.18781.20)( 2312 xxdcs
0779.1812.18)1(4375.11375.11
)1(21
4)(
2
2
132
334
dysssigns
yxx
2)( 6 xxfy 5.01 x 5.12 x 0.13 x
1,3906.9,9844.1 321 yyy
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Example (Cont’)
i x y
1 0.5 -1.9844
2 1.5 9.3906
3 1 -1
4 1.0779 -0.43172
5 1.117 -0.05635
6 1.1255 0.00076162
7 1.1255 -4.7432e-07converge
Calculation of using Muller’s method6 2
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
Another Challenging Problem
step x Y
1 0 -0.5
2 1 0.5
3 0.5 -0.49902
4 0.80875 -0.38029
5 0.9081 -0.11862
6 0.94325 0.057542
7 0.93269 -0.0018478
8 0.93303 -6.3021e-06
9 0.93303 -3.1235e-10
Tolerance = 0.0001 5.010 xy
kucg.korea.ac.kr
KUCG
Graphics Lab @ Korea University
MATLAB function for Muller’s Method
P.65~66 code