Tuần 5
PHƢƠNG PHÁP SỐ TRONG CÔNG NGHỆ HÓA HỌC
Mã học phần: CH3454
TS. Nguyễn Đặng Bình Thành BM:Máy & TBCN Hóa chất
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Numerical Methods in Chemical Engineering
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Nghiệm thực của phương trình – Ý nghĩa hình học.
f(x)
f(x) = 0; ( 1 ) y
f – hàm cho trước của đối số x
M
α - nghiệm thực của ( 1 )
α
O
( 2 ) x
g(x)
M
f(α) = 0; - Vẽ đồ thị y = f(x) y
h(x)
- hoặc (1) ~ g(x) = h(x) đồ thị y1 = g(x) và y2 = h(x)
O
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Hoành độ điểm M nghiệm α. α x
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
B
y
Sự tồn tại của nghiệm thực Định lý. Nếu có hai số thực a, b (a < b) sao cho f(a) và f(b) trái dấu, tức là
f(a).f(b) < 0 a O
x b
A
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
( 3 ) đồng thời f(x) liên tục trên [a, b] thì trong khoảng [a, b] ít nhất có một nghiệm thực của phương trình f(x) = 0.
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
y
phi tuyến
a
O
B
Khoảng phân ly nghiệm (tách nghiệm) Định nghĩa: Khoảng [a, b] nào đó 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 đó. x b
- hàm f(x) đơn điệu A trong [a, b] :
f’(x) không đổi dấu
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Định lý: Nếu hàm số f(x) liên tục và đơn điệu trên khoảng [a, b], đồng thời f(a) và f(b) trái dấu thì [a, b] là khoảng phân ly nghiệm của phương trình f(x) = 0.
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Các phương pháp xác định gần đúng nghiệm thực của phương trình phi tuyến
1. Phương pháp đồ thị. 2. Phương pháp thử. 3. Phương pháp chia đôi. 4. Phương pháp lặp. 5. Phương pháp tiếp tuyến
(phương pháp Newton-Raphson).
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
6. Phương pháp dây cung.
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến)
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Cơ sở : khai triển Taylor: - Hàm F(x) xác định và có đạo hàm đến cấp n+1 tại xo và lân cận xo. - Khai triển Taylor bậc n của F(x) tại xo:
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) - Giả sử f(x) =0 : - Có nghiệm thực α phân ly trong [a, b];
- Có đạo hàm f’(x) ≠ 0 tại x [a, b]; - Có đạo hàm cấp hai f’’(x) tại x [a, b];
- Chọn xo [a,b] khai triển Taylo bậc nhất của f(x) tại xo:
. . .
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Bỏ qua số hạng cuối
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến)
Ý nghĩa hình học: thay đường cong y = f(x) bằng tiếp tuyến kẻ từ A(a,f(a)) hay B(b,f(b)), hoành độ giao điểm của tiếp tuyến với trục hoành là nghiệm gần đúng của phương trình.
Đặt:
- xo = a, nếu tiếp tuyến kẻ từ A; - xo = b, nếu tiếp tuyến kẻ từ B; Phương trình tiếp tuyến của y = f(x) tại [xo, f(xo)] :
( a )
Giao điểm với trục hoành (x1, y1 = 0)
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
( b )
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến)
y
. . .
A Tiếp tục vẽ tiếp tuyến với điểm [ (x1, f(x1) ]
b O α
xo=a x1x2
x
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
B
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến)
y
. . .
Tiếp tục vẽ tiếp tuyến với điểm [ (x1, f(x1) ]
x2 x1 O
A a xo=b x α
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
B
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) * Định lý về sự hội tụ. Giả sử:
- [a, b] là khoảng phân ly nghiệm của f(x) = 0; - f có đạo hàm f’, f” với f’ và f” : + liên tục trên [a, b];
+ không đổi dấu trên [a, b];
- xấp xỉ xo chọn f(xo).f”(xo) > 0; - xn * Sai số.
α khi
nghiệm gần đúng sai số: Lấy xn
với
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
(sai số cho phép) Trong thực tế, thường dừng quá trình tính khi: xn – xn-1 < ε
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến)
1/ Cho phương trình f(x) = 0; 2/ Ấn định sai số cho phép ε; 3/ Tìm khoảng phân ly nghiệm;
4/ Chọn giá trị đầu xo:
f(xo).f”(xo) > 0;
5/ Tính toán sai số
Sơ đồ tóm tắt các bước giải:
e < ε xo = x1
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
x = α
Ví dụ. Tìm nghiệm gần đúng của phương trình
f(x) = x3 – x – 1 = 0;
Với sai số cho phép ε =10-3 1. Điều kiện phương trình có nghiệm thực và tìm khoảng
x
-Hàm số xác định và liên tục tại mọi x
phân ly nghiệm.
_ f’(x) + 0 + 0
- f’(x) = 3x2 – 1 = 0 tại
M f(x) m
- Bảng biến thiên hàm số:
- Chọn khoảng chứa nghiệm [1, 2] f(1) = 1 – 1 – 1 = - 1 <0 f(2) = 8 – 2 – 1 = 5 >0
đồ thị hàm số chỉ cắt trục hoành tại một điểm, phương trình có một nghiệm thực trong khoảng
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
f(1).f(2) < 0 khoảng [1, 2] chứa nghiệm.
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến)
Phương trình:
f’(x) = 3x2 – 1 > 0 trong khoảng [1, 2]
f(1) = -1; f(2) = 5;
f”(x) = 6x > 6 trong khoảng [1, 2]
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chọn đầu tính x = 2. f(2).f”(2) > 0
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Lập bảng tính:
x f(x)=x3-x-1 f (x)=3x2-1
11,0
5,0 1,145755 6,165288 1,5454545 1,3596148 2,0 1,5454545
1,3258015 1,3247190 1,3247182 4,545657 4,273245 4,264641
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
0,153704 0,004625 0,0000034 0,0000010 1,3596148 1,3258015 1,3247190 1,3247182
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Chƣơng trình:
Function F(x:real):real;
Begin
f’(x) = 3x2 – 1 = 0
F:=x*sqr(x)-x-1;
End;
Function dF(x:real):real;
Begin
dF:=3*sqr(x)-1;
End;
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
f(x) = x3 – x – 1 = 0
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Ví dụ:
Program PT1; Uses crt; Var
n,i,j,k:integer; x,x0,eps,ss:real;
Function F(x:real):real;
Begin
F:=x*sqr(x)-x-1;
End;
…
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Ví dụ:
Program PT1;
… Function dF(x:real):real;
Begin
dF:=3*sqr(x)-1;
End;
{Chương trình chính} BEGIN
clrscr; …
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Ví dụ:
Program PT1;
… {Chương trình chính} BEGIN
clrscr; write (‘Nhập x0 = ’);readln(x0); write (‘Nhập eps = ’);readln(eps); x:=x0;k:=0; Repeat …
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Ví dụ:
Program PT1;
… BEGIN … x:=x0;k:=0; Repeat
x:=x-F(x)/dF(x); ss:=abs(x-x0); x0:=x;k:=k+1;
Until ss<=eps;
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Phương pháp Newton-Raphson (phương pháp tiếp tuyến) Ví dụ:
Program PT1;
… BEGIN
Repeat …
Until ss<=eps; {In kết quả} write (‘Nghiệm x = ’,x:8:4); readln;
END.
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến Phương pháp lặp
Cho phương trình f(x) = 0 có nghiệm thực trong khoảng [a,b]; - Viết lại x + f(x) – x = 0; Đặt φ(x) = x + f(x);
(*) x = φ(x); - Chọn sơ bộ giá trị gần đúng đầu tiên của nghiệm: x1 = φ(xo); x2 = φ(x1); . . . . . . . . . xn = φ(xn-1); n = 1, 2, . . .
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
- Hàm φ(x) gọi là hàm lặp.
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến Phương pháp lặp
nghiệm α của phương trình Sự hội tụ của quá trình tính toán - Giả sử khi n ; xn
phương pháp lặp hội tụ, có thể coi xn là nghiệm gần đúng .
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
-Quá trình tính cũng có thể phân kỳ, xn ngày càng đi xa khỏi nghiệm.
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến Phương pháp lặp
x = φ(x);
Ý nghĩa hình học f(x) = 0; x + f(x) – x = 0; Đặt φ(x) = x + f(x);
y x1 = φ(xo); x2 = φ(x1); . . . . . . . . . xn = φ(xn-1); n = 1, 2, . . . y
y=φ(x)
O O
x3α
x1
x2
x3
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
x x x2 x1 xo x0α
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến Phương pháp lặp
Định lý về sự hội tụ. Giả sử: - [a, b] là khoảng phân ly nghiệm α của phương trình f(x) = 0; - Mọi xn tính theo (*) đều - Hàm φ(x) có đạo hàm hạng nhất thoả mãn điều kiện:
q - hằng số;
-
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Phương pháp lặp hội tụ với mọi x α khi n xn
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến Phương pháp lặp Sai số của phép tính:
Ước lượng sai số:
Chú ý: - Nếu φ’(x) > 0; Có thể chọn xo bất kỳ
- Nếu φ’(x) < 0:
khi
xét dấu
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
khi
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến Phương pháp lặp
x=xo
y = φ(x)
s x = y y – x < ε
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
α = y
Ví dụ. Tìm nghiệm gần đúng của phương trình
f(x) = x3 – x – 1 = 0;
Với sai số cho phép ε =10-3 1. Điều kiện phương trình có nghiệm thực và tìm khoảng
x
-Hàm số xác định và liên tục tại mọi x
phân ly nghiệm.
_ f’(x) + 0 + 0
- f’(x) = 3x2 – 1 = 0 tại
M f(x) m
- Bảng biến thiên hàm số:
- Chọn khoảng chứa nghiệm [1, 2] f(1) = 1 – 1 – 1 = - 1 <0 f(2) = 8 – 2 – 1 = 5 >0
đồ thị hàm số chỉ cắt trục hoành tại một điểm, phương trình có một nghiệm thực trong khoảng
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
f(1).f(2) < 0 khoảng [1, 2] chứa nghiệm.
f(x) = x3 – x – 1 = 0;
- Đặt x = φ(x) = x3 – 1 ;
φ’(x) = 3x2 ≥ 3 tại mọi x trong khoảng [1, 2] không
đảm bảo điều kiện hội tụ.
- Đặt x = φ(x) = x – λf(x) với
f’(x) = 3x2 -1 f’(2) = 11;
x = 1 φ’(x) = 1-(2/11) <1; x = 2 φ’(x) = 0 <1
tại mọi
đảm bảo điều kiện hội tụ.
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
- Hoặc đặt x3 = x + 1;
Lập bảng tính:
No x φ(x) xi+1 – xi
1,0 1,259921 -0,259921
1,259921 1,3122938 -0,052373
1,3122938 1,3223538 -0,010060
1,3223538 1,3242687
-0,001915
1,3242687 1,3242826
-0,00185
1,3242826 1,3246326
-0,000364
Lấy α = 1,3246326 sai số sẽ < ε = 10-3.
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
1,3246326 xo x1 x2 x3 x4 x5 x6
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
Function Fi(x:real):real;
phi tuyến Phương pháp lặp Chƣơng trình:
Begin
x = φ(x) = x3 – 1
Fi:=exp(1/3*ln(x+1));
End;
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
f(x) = x3 – x – 1 = 0
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
Program PT2; Uses crt; Var
n,i,j,k:integer; x,x0,eps,ss:real;
Function Fi(x:real):real;
Begin
Fi:=exp(1/3*ln(x+1));
End;
…
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
phi tuyến Phương pháp lặp Ví dụ:
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
Program PT2;
… {Chương trình chính} BEGIN
clrscr; …
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
phi tuyến Phương pháp lặp Ví dụ:
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
Program PT2;
… {Chương trình chính} BEGIN
clrscr; write (‘Nhập x0 = ’);readln(x0); write (‘Nhập eps = ’);readln(eps); x:=x0;k:=0; Repeat …
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
phi tuyến Phương pháp lặp Ví dụ:
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
Program PT2;
… BEGIN … x:=x0;k:=0; Repeat
x:=Fi(x); ss:=abs(x-x0); x0:=x;k:=k+1;
Until ss<=eps;
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
phi tuyến Phương pháp lặp Ví dụ:
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
Program PT2;
… BEGIN
Repeat …
Until ss<=eps; {In kết quả} write (‘Nghiệm x = ’,x:8:4); readln;
END.
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
phi tuyến Phương pháp lặp Ví dụ:
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Chƣơng 1. Các phƣơng pháp giải phƣơng trình và hệ phƣơng trình
1.2 Phƣơng pháp giải phƣơng trình và hệ phƣơng trình
phi tuyến
Bài tập về nhà
CuuDuongThanCong.com
https://fb.com/tailieudientucntt
Viết chương trình Pascal giải phương trình phi tuyến F(x) = 10x-ex = 0, trong khoảng [0,2].