Professional Documents
Culture Documents
Giai Gan Dung Phuong Trinh
Giai Gan Dung Phuong Trinh
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.
3
Các phương pháp giải phương trình
Phương pháp giải tích
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)
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
11
2.1. 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ụ
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
20
n an bn xn = (an + bn)/2 f(xn) bn – an
0 9 10 9,5 –133,125 1
22
Nghiệm
23
Khoảng phân ly nghiệm khởi đầu là: (0.5,0.9)
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
30
2.2. Phương pháp dây cung
Xây dựng công thứ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
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
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 xn1 ,
m1
0 m1 f ' (x) M1 ,x a, b
35
2.2 Phương pháp dây cung
Đánh giá sai số
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ố
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)
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;
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;
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
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
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ụ
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
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 )
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
69