You are on page 1of 4

23 Apr 2022 05:26:57 - root-finding.

sm

Bisection Method
8 4 5 3 3 2
function f x 0.67665 10 x 0.26689 10 x 0.12748 10 x 0.018507

6
required precision ε 1 10 starting values a 450 b 400

check that f(b) <= 0 <= f(a)

f a 8.469085 f b 17.965493

Bisection calculation

test "OK" 0

if sign f a sign f b
b a
xn
2
n 0
y

while f xn ε
-200
if f xn f a 0
b xn
else
a xn
b a
xn
2 -400
n n 1 -400 -200 0 200
x
else
test "oooops" f x

Result

7
test "OK" n 1 22 xn 437.462065 f xn 1.9458 10

Compare with Smath soolve function

myroot solve f x , x , 450, 400 437.4621

1/5
23 Apr 2022 05:26:57 - root-finding.sm

Newton-Raphson Method
code 1
8 4 5 3 3 2
function f x 0.67665 10 x 0.26689 10 x 0.12748 10 x 0.018507

d
g x f x
d x

6
kmax 200 ε 1 10

x 10 0

for k 1 ..kmax
xk x
f x
y
xn eval x
g x
-200
if xn x ε
break
else
x xn

x 14.5725 k 4
-400
17 -400 -200 0 200
f x 6.4373 10 x
f x

solve f x , x , 0 , 29 14.5725

roots f _x , _x , 10 14.5725

2/5
23 Apr 2022 05:26:57 - root-finding.sm

code 2
8 4 5 3 3 2
function f x 0.67665 10 x 0.26689 10 x 0.12748 10 x 0.018507

d
fp x f x
d x 100

6
nmax 200 ε 1 10
0
xG 10
k 0
-100

y
while k nmax f xG ε
f xG
xGp1 xG -200
fp xG
k k 1
xG xGp1 -300

xG -400
14.5724
-200 -100 0 100 200
x
k 2 f x
9
f xG 4.7078 10

solve f x , x , 0 , 29 14.5725

roots f _x , _x , 10 14.5725

3/5
23 Apr 2022 05:26:57 - root-finding.sm

Secant Method

8 4 5 3 3 2
f x 0.67665 10 x 0.26689 10 x 0.12748 10 x 0.018507

8 200
Required precision ε 1 10

100

Starting value for x x 10 x 15


1 2
0

Iteration limit kmax 200


-100

y
for k 2 ..kmax
-200
f x x x
k k k 1
x x -300
k 1 k f x f x
k k 1
if f x ε
k 1 -400
-400 -300 -200 -100 0 100 200
break
x
else
continue f x
x 14.5724
k 3 k 1

9
f x 6.0676 10
k 1

10
15
x
14.557
14.5724

4/5

You might also like