Download as pdf or txt
Download as pdf or txt
You are on page 1of 69

CHƯƠNG 2

MỘT SỐ PHƯƠNG PHÁP


GIẢI PHƯƠNG TRÌNH PHI TUYẾN
TRONG KHÔNG GIAN 1 CHIỀU

1
 Tại sao?
2
2  b  b  4ac
ax  bx  c  0  x 
2a
 Nhưng


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

2
Đặt vấn đề
Cho phương trình f(x) = 0 (f là hàm đại số hoặc siêu việt).
Một số phương pháp giải phương trình phi tuyến.

 Phương pháp giải tích (Analytical Solutions)


 chỉ áp dụng cho một số phương trình đặc biệt
 Phương pháp đồ thị (Graphical Illustration)
 Hữu ích để ước lượng nghiệm cho một số phương pháp khác
 Phương pháp số (Numerical Solutions)
 Tính gần đúng nghiệm của phương trình

3
Các phương pháp giải phương trình
Phương pháp giải tích

Với một số dạng phương trình đặc biệt, ví dụ:

a x2  b x  c  0
2
 b  b  4ac
x
2a
 Không có lời giải trong phương pháp giải tích:

x  e x  0

4
Phương pháp đồ thị
 Phương pháp đồ thị hữu ích để ước lượng nghiệm

x
Phương trình x = e−x e
Nghiệm thuộc [0, 1] 2 Nghiệm
Nghiệm x ≈ 0.6
x
1

1 2

5
Phương pháp số
 Xuất phát từ một khoảng chứa một và chỉ một nghiệm
đúng của phương trình (gọi là khoảng phân ly nghiệm
hay khoảng cách ly nghiệm).
 Thu hẹp dần khoảng phân ly nghiệm : Phương pháp chia
đôi (Bisection method)
 Xuất phát từ một điểm ước lượng ban đầu (xấp xỉ đầu),
sử dụng một phương pháp lặp, mỗi lần lặp ước lượng
giá trị mới cho nghiệm.
 Phương pháp lặp (đơn)
 Phương pháp Newton (Newton’s Method)
 Phương pháp dây cung (Secant Method
 …..

6
Nội dung
 Đặt vấn đề
 2.1 − Khoảng phân ly nghiệm
 2.2 − Phương pháp chia đôi
 2.3 − Phương pháp dây cung
 2.4 − Phương pháp tiếp tuyến
(phương pháp Newton)
 2.5 − Phương pháp lặp

7
2.1. Khoảng phân ly nghiệm
 Định nghĩa. Cho phương trình f(x) = 0, f là hàm đại số
hoặc siêu việt.
Khoảng (a, b) gọi là khoảng phân ly nghiệm của
phương trình f(x) = 0 nếu nó chứa một và chỉ một
nghiệm của phương trình đó.

y
B

O a
b x
A

8
Nghiệm thực của phương trình một ẩn
Ý nghĩa hình học.

f(x) = 0; (1)
y
f – hàm cho trước của đối số x f(x)

α - nghiệm thực của ( 1 )


O M
f(α) = 0; (2) α x
- Vẽ đồ thị y = f(x) y g(x)
- hoặc (1) ~ g(x) = h(x) M
đồ thị y1 = g(x) và y2 = h(x) h(x)
O
Hoành độ điểm M nghiệm α. α x
9

nghiệm

Hai
Một nghiệm
nghiệm

Hai
nghiệm

Hàm không
liên tục
Ba
nghiệm

10
Trường hợp nhiều nghiệm

f(x) = sin 10x+cos 3x

11
2.1. Khoảng phân ly nghiệm

 Cách tìm khoảng phân ly nghiệm


 Phương pháp 1: (Phương pháp hình học) Dựa vào ý
nghĩa hình học của nghiệm:  là nghiệm của phương trình
f(x) = 0, có nghĩa giao điểm của đồ thị hàm số y = f(x) và
trục hoành là M(,0).
 Phương pháp 2: (Phương pháp giải tích) Dựa vào định lý
về sự tồn tại nghiệm f(a)
 Định lý: Nếu hàm số f(x) liên tục,
đơn điệu trên (a, b), f(a).f(b) < 0
thì trong khoảng (a,b) chứa duy
nhất một nghiệm thực của a b
phương trình f(x) = 0. f(b)12
Ví dụ 2.1
 Tìm một khoảng phân ly nghiệm của phương trình
x3 + x –1000 = 0.
f’(x) = 3.x2 +1 >0 với mọi x,
f(10) = 10 >0; f(9) < 0. Vậy khoảng (9; 10) là một
khoảng phân ly nghiệm.

13
Ví dụ 2.2
Tìm khoảng phân ly nghiệm của phương trình
x3 – 6x2 +9x – 3 = 0.

x y = f(x)

0 −3

1 1

2 −1

3 −3

4 1

14
Ví dụ 2.3
 Tìm khoảng phân ly nghiệm của phương trình
x3 – 6x2 + 9x – 4 = 0.

15
Bài toán
 Cho phương trình f(x) = 0 có khoảng phân ly nghiệm
(a,b). Ký hiệu nghiệm đúng (nghiệm thực) của phương
trình trong (a, b) là .
 Bài toán 1: Tìm nghiệm gần đúng với số lần lặp cho
trước và đánh giá sai số.
 Bài toán 2: Tìm nghiệm gần đúng với sai số  cho
trước.

16
2.2. Phương pháp chia đôi
(Bisection Method)
Giả thiết:
 f(x) liên tục trên [a,b]
 f(a) f(b) < 0 b0
Nội dung phương pháp: a0 a1 a2
 Gọi khoảng phân ly nghiệm ban đầu là (a0, b0),
a0 = a, b0 = b
 Chia đôi khoảng (a0, b0) với điểm chia x0 = (a0 + b0)/2.
 Nếu f(x0) = 0  Nghiệm đúng là x0
 Nếu f(x0).f(a0) < 0  Khoảng phân ly nghiệm mới là (a0 ,x0)
 Nếu f(x0).f(b0) < 0  Khoảng phân ly nghiệm mới là (x0,,b0)
 Gọi khoảng phân ly nghiệm mới là (a1,b1)
 Chia đôi khoảng (a1,b1) theo cách tương tự được khoảng phân ly
nghiệm mới là (a2,b2).
 Lặp lại n lần, ta có khoảng phân ly nghiệm (an, bn).
17
 Lấy nghiệm gần đúng xn = (an + bn)/2 17
2.2. Phương pháp chia đôi
Sự hội tụ

 Ta thấy (an, bn)  (an –1, bn –1)  ...  (a, b),


 {an } đơn điệu tăng, {bn} đơn điệu giảm và đều bị chặn (an < bn).
ba
bn  an   0, n  
n
2
 Do đó:
 a n , b n  , n  
lim f ( a n ) .f ( b n )  0  ( f (  ) ) 2  0
n 

 f ( )  0
 hay  là nghiệm đúng của phương trình đã cho.
 Do xn = (an + bn)/2 nên xn   , n  

18
2.2. Phương pháp chia đôi
Đánh giá sai số của nghiệm gần đúng
 Nghiệm đúng là . Nghiệm gần đúng sau n lần lặp là xn

bn  an b  a
  xn  
n 1
2 2

Điều kiện dừng quá trình lặp: 2 cách sau


1. Dừng sau khi đạt số lần lặp nhất định
2. Dừng khi
ba
 - xn  n 1

2
19
Ví dụ 2.3
 Tìm nghiệm gần đúng trong khoảng phân ly nghiệm
(9; 10) của phương trình x3 + x – 1000 = 0 theo phương
pháp chia đôi với 6 lần lặp.

20
n an bn xn = (an + bn)/2 f(xn) bn – an

0 9 10 9,5 –133,125 1

1 9,5 10 9,75 –63,391 0,5

2 9,75 10 9,875 –27,1582 0,25

3 9,875 10 9,9375 –8,6956 0,125

4 9,9375 10 9,96875 0,6230 0,0625

5 9,9375 9,96875 9,953125 –0,04356 0,03125

6 9,953125 9,96875 9,9609375 0,01563

 Với số lần lặp n = 6, lấy nghiệm gần đúng x6 = 9,9609375  0,00782.


21
Ví dụ 2.4
 Sử dụng phương pháp chia đôi để tìm nghiệm của phương trình
x = cos (x) với sai số < 0.02.
Cho khoảng phân ly nghiệm là: (0.5,0.9)

Câu hỏi 1: Hàm f (x) = ?


f(x) = x − cos(x)
Câu hỏi 2: Cần tìm nghiệm gần đúng thỏa mãn điều kiện gì ?
Điều kiện: (bn − an)/2 < 0.02
hoặc (b-a)/2n+1 < 0.02

22
Nghiệm

23
 Khoảng phân ly nghiệm khởi đầu là: (0.5,0.9)

f(a)=-0.3776 f(b) =0.2784

a =0.5 c= 0.7 b= 0.9

-0.3776 -0.0648 0.2784


(0.9-0.7)/2 = 0.1
0.5 0.7 0.9

-0.0648 0.1033 0.2784


(0.8-0.7)/2 = 0.05
0.7 0.8 0.9
24
-0.0648 0.0183 0.1033
(0.75-0.7)/2= 0.025
0.7 0.75 0.8

-0.0648 -0.0235 0.0183 (0.75-0.725)/2= 0.0125


0.70 0.725 0.75
 Vậy, với khoảng phân ly nghiệm ban đầu là: [0.5,0.9]
 Sau 4 lần lặp:
 Khoảng phân ly mới là [0.725 ,0.75]
 Nghiệm gần đúng là x4 = 0.7375
 Sai số tuyệt đối: |  − x4 | ≤ 0.0125
25
 Thuật toán: Chia đôi [1]
 Dữ liệu vào: f(x), a, b, n ((a, b) là khoảng phân ly nghiệm, n − số lần lặp)
 Kết quả ra: Nghiệm gần đúng xn và sai số e.
 Begin
an := a; bn := b;
for i from 1 to n do
xn := (an + bn)/2;
Print xn;
if f(xn) = 0 then Print(“Nghiệm đúng là xn”); Kết thúc;
else if f(an).f(xn) < 0 then bn := xn;
else an := xn;
end if;
end if;
end for;
e := bn − an; Print(“Nghiệm gần đúng:”, xn, “Với sai số tuyệt đối:”, e);
 End.
26
 Thuật toán: Chia đôi [2]
 Dữ liệu vào: f(x), a, b, e ((a, b) là khoảng phân ly nghiệm, e− sai số)
 Kết quả ra: Nghiệm gần đúng xn có sai số không quá e.
 Begin
an := a; bn := b;
repeat
xn := (an + bn)/2;
Print xn;
if f(xn) = 0 then Print “Nghiệm đúng là xn”; Kết thúc;
else if f(an).f(xn) < 0 then bn := xn;
else an := xn;
end if;
end if;
exn := bn − an;
until exn <=e;
 End.
27
2.2. Phương pháp dây cung
12
12

10
10

88

66

44
X11
22
a b
00
33 44 55 66 77
-2
-2 X0

-4
-4

-6
-6
28
2.2 Phương pháp dây cung
 Giả thiết:
 f, f’ liên tục trên [a,b]
 f’, f’’ không đổi dấu trên (a,b)

10/12/2021 29
2.2. Phương pháp dây cung
Xây dựng công thức

 Trường hợp 1: f’.f’’ < 0


 Phương trình qua AB, cắt Ox tại (x1, 0)

y  f (b) xb f (b)(b  a )


 x1  b 
f (a )  f (b) a  b f (b)  f (a )

30
2.2. Phương pháp dây cung
Xây dựng công thức

 Phương trình qua AB1:


y  f ( x1 ) x  x1

f (a )  f ( x1 ) a  x1
 Giao điểm của AB1 và trục hoành Ox là (x2,0):
f ( x1 )( x1  a )
x 2  x1 
f ( x1 )  f ( a )
 Tiếp tục quá trình trên ta được:

f ( xn )( xn  a )
xn  1  xn  , n  0,1,2,...
f ( xn )  f ( a )
x0  b
31
2.2. Phương pháp dây cung
Xây dựng công thức

 Trường hợp 2: f ’.f ’’ > 0

f ( x n )( x n  b )
xn 1  xn  , n  0 ,1, 2 ,...
f ( xn )  f (b)
x0  a
32
2.2. Phương pháp dây cung
Nội dung phương pháp

 Chọn xấp xỉ đầu x0 = a hoặc x0 = b sao cho f(x0).f ’’ < 0.


 Tính theo công thức:
f ( xn )( xn  d )
xn 1  xn  , n  0,1,2,...
f ( xn )  f (d )

trong đó d = a nếu x0 = b (Điểm Fourier là a)


và d = b nếu x0 = a

(Điểm Fourier: x  [a, b], f’’(x).f(x) > 0)

33
2.2 Phương pháp dây cung
Điều kiện hội tụ
Điều kiện:
1) f và f ’ liên tục trên [a, b]
2) f’ và f ’’ không đổi dấu trong (a, b)

 Nhận xét:
 dãy xn nhận được hoặc là đơn điệu giảm và bị chặn
dưới (trường hợp f’.f’’ < 0) hoặc đơn điệu tăng và bị
chặn trên (trường hợp f’.f’’ > 0).

34
2.2 Phương pháp dây cung
Đánh giá sai số

 Công thức 1:
f ( xn )
xn    ,
m1
0  m1  f ' ( x ) , x  a , b

 Công thức 2:

M1  m1
xn   xn  xn1 ,
m1
0  m1  f ' (x)  M1  ,x a, b

35
2.2 Phương pháp dây cung
Đánh giá sai số

 Chứng minh công thức 1:


Ta có: f() = 0 (do  là nghiệm đúng của phương trình)
|f(xn)| = |f(xn) – f()| = |f’(c).(xn – )| ,
c nằm giữa  và xn (Công thức Lagrange)
Suy ra

f (xn ) f (xn )
xn    , 0  m1  f ' (x) , x a,b
f ' (c) m1

36
2.2 Phương pháp dây cung
Đánh giá sai số

 Chứng minh công thức 2:


Từ công thức f ( xn )( xn  d )
xn 1  xn  , n  0,1,2,...
f ( xn )  f (d )
suy ra: ( f ( x n )  f ( d ))( x n 1  x n )
 f ( xn ) 
xn  d
Áp dụng công thức số gia hữu hạn, ta được:

f ' (c1).(xn  d )(xn1  xn )


 f (xn )   f ' (c1)(xn1  xn ) (1)
xn  d

trong đó c1 nằm giữa xn và d

37
Mặt khác: f() – f(xn) = – f(xn) do f() = 0.
Áp dụng công thức số gia hữu hạn
f’(c2).( – xn) = –f(xn), c2 nằm giữa  và xn (2)
Từ (1) và (2) suy ra: f’(c1)(xn + 1 – xn) = f’(c2).( – xn)
= f’(c2).( – xn + 1 + xn + 1 –xn)

( f ' (c1)  f ' (c 2))( xn 1  xn )


  xn 1 
f ' (c 2)
 Do c1, c2  [a,b] và giả thiết với x  [a,b], f’ không đổi dấu
 và 0 < m1  |f’(x)|  M1, nên: |f’(c1) – f’(c2)|  M1 – m1; |f’(c2) | ≥ m1

( f ' ( c1)  f ' ( c 2))( xn 1  xn ) M 1  m1


  xn 1   xn 1  xn
f ' ( c 2) m1
38
Thuật toán

 Thuật toán: Phương pháp dây cung [1]


 Dữ liệu vào: Hàm f(x), a, b, với (a,b)−là khoảng phân
ly nghiệm; n − số lần lặp
 Kết quả ra: Nghiệm gần đúng xn và sai số theo hai
công thức
 Thuật toán: Phương pháp dây cung [2]
 Dữ liệu vào: Hàm lặp f(x), a, b, với (a,b)−là khoảng
phân ly nghiệm; e − sai số.
 Kết quả ra: Nghiệm gần đúng xn có sai số không quá e
và n là số lần lặp cần thiết.

10/12/2021 39
Thuật toán
 Thuật toán: Phương pháp dây cung [1]
 Dữ liệu vào: Hàm f(x), a, b, với (a,b)−là khoảng phân
ly nghiệm; n − số lần lặp; xấp xỉ đầu x0;

 Kết quả ra: Nghiệm gần đúng xn và sai số

10/12/2021 40
Thuật toán: Phương pháp dây cung [1]
Function f(x); {Định nghĩa hàm (x)}
Begin
Nhập vào a, b, n, x0;
if x0 = a then d := b
else if x0 = b then d:= a else Dừng thuật toán;
For i from 1 to n do
Begin
x1 := x0 – f(x0)*(x0 – d)/(f(x0) – f(d));
In ra x1;
x0 := x1;
End;
Tính/Nhập vào m = min|f’(x)|, x  [a, b]
e := |f(x1)|/m ; In ra e;
End.

10/12/2021 41
Thuật toán: Phương pháp dây cung [2]
 Dữ liệu vào: Hàm f(x), a, b, với (a,b)−là khoảng phân
ly nghiệm; e − sai số; xấp xỉ đầu x0;

 Kết quả ra: Nghiệm gần đúng xn (và số lần lặp n)

10/12/2021 42
Thuật toán: Phương pháp dây cung [2]
Function f(x); {Định nghĩa hàm f(x)}
Begin
Nhập vào a, b, e, m, x0;
Tính/Nhập vào m = min|f’(x)|, x  [a, b]
if x0 = a then d := b
else if x0 = b then d:= a else Dừng thuật toán;
repeat
x1 := x0 – f(x0)*(x0 – d)/(f(x0) – f(d));
In ra x1;
err := |f(x1)|/m;
x0 := x1;
until err<= e;
In ra x1 ;
End.

10/12/2021 43
10/12/2021 43
Bài tập

 1- Viết lại thuật toán 1, sử dụng mảng để lưu các


giá trị xn
 1- Viết lại thuật toán trên để tính được nghiêm gần
đúng và sử dụng công thức hai xấp xỉ liên tiếp.
 2- Vẽ sơ đồ khối
 3- Với thuật toán 2: chỉnh sửa lại để có thể đưa ra
số lần lặp cần thiết

10/12/2021 44
2.3. Phương pháp tiếp tuyến
Giả sử đã có xấp xỉ xn, cần
tìm xấp xỉ tốt hơn xn+ 1

y  f ( xn )  f ' ( xn )( x  xn )
' f ( xn )  0
f ( xn ) 
xn  xn 1
f ( xn )
 xn 1  xn 
f ' ( xn )

 Giả thiết
 f và f ’ liên tục trên [a, b]
 f’ và f ’’ không đổi dấu trong (a, b)
45
2.3. Phương pháp tiếp tuyến (PP Newton)
Xây dựng công thức

 Trường hợp 1: f’.f’’ < 0

f ( xn )
xn 1  xn  , n  0,1,2,....; x0  a
f ' ( xn )
46
2.3. Phương pháp tiếp tuyến
Xây dựng công thức
 Trường hợp 2: f’.f’’ > 0

f ( xn )
xn 1  xn  , n  0,1,2,....; x0  b
f ' ( xn )
47
2.3. Phương pháp tiếp tuyến
Điều kiện hội tụ

1) f, f’ liên tục trên [a,b]


2) f’, f” không đổi dấu trên [a,b]
3) Chọn xấp xỉ đầu x0  [a,b] sao cho f(x0).f”> 0
+ Nếu f(a) cùng dấu với f’’ thì x0 = a, (Chọn x0 là điểm Fourier)
+ Ngược lại: x0 = b
 Nhận xét:
 dãy xn nhận được hoặc là đơn điệu tăng và bị chặn
trên (trường hợp f’.f’’ < 0) hoặc đơn điệu giảm và bị
chặn dưới (trường hợp f’.f’’ > 0) bởi α.
Công thức tiếp tuyến:
f ( xn )
xn 1  xn  , n  0,1,2,....;
f ' ( xn ) 48
2.3. Phương pháp tiếp tuyến
Đánh giá sai số

 Công thức 1

f ( xn )
xn    , 0  m1  f ' ( x ) , x  a, b
m1

 Công thức 2

M2 2
xn    ( xn  xn 1 ) ,
2m1
0  m1  f ' ( x) ; f ' ' ( x)  M 2  , x  a, b

49
 Công thức 1: f ( xn )
xn    , 0  m1  f ' ( x) , x  a, b
m1 (1)
 Khai triển Taylor f(xn) tại xn – 1:
f ' ' (c ) (2)
f ( xn )  f ( xn 1 )  f ' ( xn 1 )( xn  xn 1 )  ( xn  xn 1 ) 2
2!
trong đó c nằm giữa xn và xn – 1 (nên c  [a,b])
 Ta lại có: f ( xn 1 )
xn  xn 1   f ' ( xn 1 )( xn  xn 1 )   f ( xn 1 )
f ' ( xn 1 ) (3)
 Từ (2), (3) suy ra:
f ' ' (c ) 2 M2 (4)
f ( xn )  ( xn  xn 1 )  ( xn  xn 1 ) 2
2! 2
 Thay (4) vào (1) ta được công thức cần chứng minh.
50
Bài tập
 Viết 2 thuật toán và vẽ sơ đồ khối đối với phương phápTiếp tuyến
 Thuật toán 1
 Dữ liệu vào: Hàm f(x), a, b, với (a,b)−là khoảng phân
ly nghiệm; n − số lần lặp.
 Kết quả ra: Nghiệm gần đúng xn và sai số theo hai
công thức
 Thuật toán 2
 Dữ liệu vào: Hàm f(x), a, b, với (a,b)−là khoảng phân
ly nghiệm; e − sai số.
 Kết quả ra: Nghiệm gần đúng xn có sai số không quá e
và n là số lần lặp cần thiết.

51
2.4. Phương pháp lặp đơn
Nội dung phương pháp

 Đưa phương trình về dạng x = (x),  gọi là hàm lặp.


 Chọn x0  [a, b] làm xấp xỉ đầu
 Tính dãy xn theo công thức:
xn = (xn – 1), n = 1, 2, 3,...
x1 = (x0), x2 = (x1), x3 = (x2), …..

 Nếu dãy xn  , n   thì phương pháp lặp hội tụ và


lấy nghiệm gần đúng x* = xn nào đó.
 Chú ý rằng khi phương pháp lặp không hội tụ, xn có thể
rất xa nghiệm đúng .
52
2.4. Phương pháp lặp
Điều kiện hội tụ
 Định lý: Giả sử (a, b) là khoảng phân ly nghiệm chứa
nghiệm đúng  của phương trình f(x) = 0. Xét phương
pháp lặp với hàm lặp : x = (x),  và ' liên tục trên
[a, b]. Nếu:
1) Mọi x [a, b], (x)  [a, b],…
(hay mọi xn  [a, b])
2) Với mọi x  [a, b]: |'(x)|  q <1, (q = const)
thì phương pháp lặp hội tụ: xn  , n  .

53
2.4. Phương pháp lặp
 Chứng minh |xn – |  0, n  .
 Ta có xn –  = (xn – 1) – (). Áp dụng công thức số gia hữu
hạn (công thức Lagrange):
 xn –  = ’(c).(xn – 1 –  ), với c là điểm nằm giữa  và xn – 1.
 |xn – | = |’(c).(xn – 1 –  )|  q. |xn – 1 –  |.
 Tương tự ta có: |xn – 1 –  |  q. | xn – 2 – |
|xn – 2 – | |  q. |xn – 3 – |
…..
|x1 – |  q. |x0 – |.
 Từ n bất đẳng thức trên, suy ra: | xn – |  qn. | x0 – |.
 Vì 0 < q < 1 nên qn. |x0 – |  0, n  ,
 suy ra: |xn –  |  0, n  . ( )

54
2.4. Phương pháp lặp
 Nhận xét:
 Nếu ’(x) > 0 với mọi x thuộc [a,b],
từ xn –  = ’(c)( xn –1 – )
cho thấy dãy {xn} dần đến  từ một phía. Ngược lại, dãy
xn dần đến  từ hai phía, giao động xung quanh .

55
Ví dụ
 Cho phương trình x3 + x – 1000 = 0 với khoảng phân ly
nghiệm là (9; 10).
 Đưa phương trình về dạng x = (x).
 Phương án 1: x = 1000 – x3

1000
1
 Phương án 2: x  2 
x x

 Phương án 3: x  3 (1000  x )

 Với (x) = 1000 – x3 ’(x) = −3x2


 | ’(x) | ≤ | ’(10) | = 300 = q.
 Do q >1 nên phương pháp lặp không hội tụ
56
 Với  ( x )  3 (1000  x ) và x0 = 10

1
 ' ( x) 
33 (1000  x ) 2
 |’(x)| ≤ |’(10)| = q = 0.0033557
 Do q < 1 nên phương pháp lặp đơn hội tụ.

57
2.4. Phương pháp lặp
 Đánh giá sai số
 Công thức 1: (Công thức đánh giá sai số qua hai xấp xỉ
liên tiếp)
q
  xn  xn  xn 1
1 q
 Công thức 2:
n
q
  xn  x1  x0
1 q
Nhận xét:
Phương pháp lặp hội tụ càng nhanh nếu q càng bé.

58
2.4. Phương pháp lặp
 Chứng minh công thức 1:
 Ta có | – xn| = |() – (xn – 1)| = |’(c).( – xn – 1)|,
với c nằm giữa  và xn – 1 (CT Lagrange).
 | – xn|  q. | – xn – 1| = q.| – xn + xn – xn – 1|
 q.| – xn| + q.|xn – xn – 1|
 Suy ra công thức 1 ( )

59
 Chứng minh công thức 2:
 Ta có: |xn – xn – 1| = |(xn – 1) – (xn – 2)|
= |’(c).(xn – 1 – xn – 2)|,
với c nằm giữa xn – 1 và x n – 2 (Công thức Lagrange).
 Suy ra: |xn – xn – 1|  q.|xn – 1 – xn – 2|
 Tương tự, ta có: |xn – 1 – xn – 2|  q.|xn – 2 – xn – 3|
……
|x2 – x1|  q.|x1 – x0|
 Từ n – 1 bất đẳng thức trên suy ra:
|xn – xn – 1|  qn – 1.|x1 – x0|
 Thay vào công thức 1 ta có công thức 2. ( )

60
 Nhận xét:
 Ưu điểm của phương pháp lặp:
 Xấp xỉ đầu không nhất thiết phải rất gần nghiệm đúng 
(miễn là các điều kiện hội tụ được đảm bảo).
 Phép lặp có khả năng tự sửa sai: nếu xn tính sai thì coi như
chọn lại xấp xỉ đầu mới.
 Thuật toán lặp đi lặp lại theo cùng một kiểu, rất thuận lợi khi
dùng máy tính.
 Nhược điểm: Khi q gần bằng 1, phép lặp hội tụ rất
chậm.
 Lưu ý: Nên chọn xấp xỉ đầu x0 như thế nào?

61
Phương pháp lặp
 Thuật toán: Phương pháp lặp [1]
 Dữ liệu vào: Hàm lặp (x), a, b, với (a,b)−là khoảng
phân ly nghiệm; n − số lần lặp
 Kết quả ra: Nghiệm gần đúng xn và sai số theo hai
công thức
 Thuật toán: Phương pháp lặp [2]
 Dữ liệu vào: Hàm lặp (x), a, b, với (a,b)−là khoảng
phân ly nghiệm; e − sai số.
 Kết quả ra: Nghiệm gần đúng xn có sai số không quá e
và n là số lần lặp cần thiết.

62
 Thuật toán: Phương pháp lặp [1]
 Dữ liệu vào: Hàm lặp (x), a, b, với (a,b)−là khoảng
phân ly nghiệm; n − số lần lặp; xấp xỉ đầu x0;
Tính hoặc Nhập vào q > 0 thỏa mãn:
q = max |’(x)| với x  [a,b] (q <1)
 Kết quả ra: Nghiệm gần đúng xn và sai số

10/12/2021 63
Thuật toán: Phương pháp lặp [1]
Function (x); {Định nghĩa hàm (x)}
Begin
Nhập vào a, b, n, q, x0;
For i from 1 to n do
Begin x1 := (x0) ;
In ra x1;
e := |x1 – x0|;
x0 := x1;
End;
e := q * e /(1-q); In ra e;
End.

10/12/2021 64
Thuật toán: Phương pháp lặp [2]
 Dữ liệu vào: Hàm lặp (x); a, b, với (a,b)−là khoảng
phân ly nghiệm; e − sai số; xấp xỉ đầu x0;
Tính hoặc Nhập vào q > 0 thỏa mãn:
q = max |’(x)| với x  [a,b] (q <1)
 Kết quả ra: Nghiệm gần đúng xn có sai số không quá e
(và n là số lần lặp cần thiết).

10/12/2021 65
Thuật toán: Phương pháp lặp [2]
Function (x); {Định nghĩa hàm (x)}
Begin
Nhập vào a, b, e, x0;
Tính hoặc Nhập vào q > 0 thỏa mãn:
q = max |’(x)| với x  [a,b] (q <1)
repeat
x1 := (x0); err := q*| x1 – x0 |/(1-q);
x0: = x1;
until err < e;
In x1, ;
End.

Bài tập:
1- Viết lại thuật toán 1, sử dụng mảng để lưu các giá trị xn
2- Vẽ sơ đồ khối
3- Với thuật toán 2: chỉnh sửa lại để có thể đưa ra số lần lặp cần thiết

10/12/2021 66
10/12/2021 66
Tổng kết
Phương Chậm
pháp chia Trong mỗi lần lặp, cần tính một giá trị hàm số
đôi Cần biết khoảng phân ly nghiệm (a,b)
Không cần tính đạo hàm

Phương Nhanh (nếu ở gần nghiệm đúng) nhưng có thể không hội tụ
pháp tiếp Trong mỗi lần lặp, cần tính 2 giá trị hàm số
tuyến Cần biết đạo hàm và xấp xỉ đầu x0, f ’ (x0) khác 0

Phương Nói chung, chậm hơn phương pháp tiếp tuyến


pháp dây Có thể không hội tụ
cung Trong mỗi lần lặp, cần tính một giá trị hàm số
Cần 2 giá trị xấp xỉ đầu x0, x1 sao cho
f (x0)- f (x1) khác 0.
Không cần tính đạo hàm
67
Một số hàm trong Maple
 solve(): giải một (hệ) phương trình(/bất phương trình),
cho kết quả dưới dạng kí hiệu.
 fsolve(): giải một (một hệ) phương trình(/bất phương
trình) bằng phương pháp số, cho kết quả dưới dạng số
thực (dấu phẩy động).
 diff()
 evalf()
 abs()
 minimize()
 maximize()
 print() và printf()
68
Một số hàm trong Maple
 Tính toán hàm lượng giác theo đơn vị “độ”
with(Units[Natural])
evalf(sin((Pi/2)*deg));
evalf(sin((Pi/2)*radian));

69

You might also like