Professional Documents
Culture Documents
Chapter 05
Chapter 05
Đạo hàm
Đạo hàm
( vi phân)
dv u
dt y
1
1. Giới thiệu
Phương trình vi phân
Phương trình vi
phân
Phương trình vi phân (ODEs) gồm một hoặc nhiều đạo hàm của
các hàm ẩn với 1 biến độc lập.
Ví dụ:
dv(t) t
v(t) e x(t): Hàm ẩn
dt
2
d x(t) dx(t)
2
5 2x(t) cos(t)
dt dt
t: Biến độc lập
3
1. Giới thiệu
Bậc phương trình vi phân là bậc của đạo hàm cao nhất.
Ví dụ:
dx(t)
x(t) e t Bậc 1 ODE
dt
2
d x(t) dx(t) Bậc 2 ODE
2
5 2x(t) cos(t)
dt dt
2
d x(t) dx(t) 4
2
2x (t) 1 Bậc 2 ODE
dt dt
4
1. Giới thiệu
ODE tuyến tính
Một phương trình vi phân ODE là tuyến tính nếu hàm và
đạo hàm của nó xuất hiện với lũy thừa 1. Không có tích
của hàm và/hoặc đạo hàm của nó.
Ví dụ:
dx(t) ODE tuyến tính
x(t) e t
dt
d 2 x(t) dx(t) 2
2
5 2t x(t) cos(t) ODE phi tuyến
dt dt
2 3
d x(t) dx(t)
2 x(t) 1 ODE phi tuyến
dt dt
5
1. Giới thiệu
ODE phi tuyến
Một phương trình ODE là phi tuyến nếu hàm và đạo
hàm của nó xuất hiện lớn hơn 1. Có tích giữa hàm
và/hoặc đạo hàm của nó.
Ví dụ: dx(t)
cos(x(t)) 1
dt
d 2 x(t) dx(t)
2
5 x(t) 2
dt dt
d 2 x(t) dx(t)
2
x(t) 1
dt dt
6
1. Giới thiệu
x(t) cos(2t) Tất cả các hàm với x(t) = cos(2t) + c
Nghiệm pt vi phân là nghiệm của pt vi phân trên với c
2
d x(t) là hằng số.
2
4x(t) 0
dt
Để có thể giải pt vi phân bậc n chúng ta cần n điều kiện.
2
d x (t ) ODE bậc 2
2
4 x (t ) 0
dt
x ( 0) a 2 điều kiện cần để giải.
x (0) b
7
1. Giới thiệu
Điều kiện phụ (Auxiliary Conditions)
8
1. Giới thiệu
Bài toán giá trị biên và giá trị ban đầu.
Bài toán giá trị ban đầu Bài toán giá trị biên
tiếp hoặc gián tiếp dựa trên khai triển chuỗi Taylor.
10
2. Phân loại pt vi phân ODEs
Phân loại phương pháp số giải ODEs
11
3. Phương trình vi phân bậc 1
Phương pháp chuỗi Taylor
Bài toán để được giải quyết với pt vi phân bậc 1:
dy ( x)
f ( x, y ), y ( x0 ) y0
dx
y2 Cho độ dài bước bằng nhau h = xn – xn-1
x0 h x1 h x2 x 12
3. Phương trình vi phân bậc 1
PP chuỗi Taylor bậc 1 (PP Euler)
dy
y(x 0 h) y(x 0 ) h O(h 2 )
dx x x 0 ,
y y0
13
3. Phương trình vi phân bậc 1
Phương pháp Euler
Bài toán:
Cho trước pt vi phân: y'(x) f (x, y)
Với điều kiện ban đầu: y 0 y(x 0 )
Tính yi y(x 0 ih) cho i 1,2,...
y 0 y(x 0 )
yi1 yi h f (x i , yi ) cho i 1,2,...
14
3. Phương trình vi phân bậc 1
Nội suy pp Euler
y2
y1
y0
x0 x1 x2 x
15
3. Phương trình vi phân bậc 1
Nội suy pp Euler
Độ dốc =f(x0,y0)
y1 y1=y0+hf(x0,y0)
hf(x0,y0)
y0
x0 x1 x2 x
h
16
3. Phương trình vi phân bậc 1
Nội suy pp Euler
y2 y2=y1+hf(x1,y1)
Độ dốc =f(x1,y1)
hf(x1,y1)
Độ dốc=f(x0,y0)
y1 y1=y0+hf(x0,y0)
hf(x0,y0)
y0
x0 h x1 h x2 x
17
3. Phương trình vi phân bậc 1
Phương pháp Euler
Nếu độ dài bước KHÔNG bằng nhau lúc đó thay hi = xi – xi-1
y1 y0 f (x 0 , y0 ) * x1 x 0
y 2 y1 f (x1 , y1 ) * x 2 x1
yi1 yi f (x i , yi ) * x i1 x i
18
3. Phương trình vi phân bậc 1
Ví dụ 1: Dùng pp Euler để giải pt vi phân ODE:
dy 2
1 x , y(1) 4
dx
Tính y(1.01), y(1.02) và y(1.03).
Giải:
2
f ( x, y ) 1 x , x0 1, y0 4 , h 0.01
yi1 yi h f (x i , yi )
B1: y1 y 0 h f (x 0 , y0 ) 4 0.01(1 (1) 2 ) 3.98
2
B2 : y 2 y1 h f (x1 , y1 ) 3.98 0.01 1 1.01 3.9598
2
B3: y3 y 2 h f (x 2 , y 2 ) 3.9598 0.01 1 1.02 3.9394
19
3. Phương trình vi phân bậc 1
2
f ( x, y ) 1 x , x0 1, y0 4 , h 0.01
Bảng tóm tắt kết quả
i xi yi
0 1.00 -4.00
1 1.01 -3.98
2 1.02 -3.9595
3 1.03 -3.9394
Sai số làm tròn: Sai số do số lượng hữu hạn các bit được
sử dụng trong việc đại diện của các con số. 21
3. Phương trình vi phân bậc 1
Ví dụ 2: Dùng pp Euler để giải pt vi phân ODE:
dv
1 2v 2 t. v(0) 1
dt
Cho ti = 0.01i với i = 1,2,3, …100 h = 0.01
22
3. Phương trình vi phân bậc 1
Ví dụ 3:
Cho pt vi phân: y’ = 3 – 2x – 0.5y; y(0) = 1
Dùng pp Euler với h = 0.2 để giải pt vi phân trên ở x = 0.2,
0.4, 0.6, 0.8, và 1.0. Phân tích sai số biết lời giải chính xác:
24
3. Phương trình vi phân bậc 1
Ví dụ 4:
Cho pt vi phân y 4 x 2y, dk y(0) 1
Dùng pp Euler với h = 0.1 để giải xấp xỉ pt vi phân trên ở x = 0.1,
0.2, 0.3, và 0.4. Phân tích sai số biết giải chính xác.
7 1 11 2x
Giải: y x e
4 2 4
y1 y0 f 0 h 1 4 0 (2)(1) (0.1) 1.6
y 2 y1 f1 h 1.6 4 0.1 (2)(1.6) (0.1) 2.31
y3 y 2 f 2 h 2.31 4 0.2 (2)(2.31) (0.1) 3.15
y 4 y3 f 3 h 3.15 4 0.3 (2)(3.15) (0.1) 4.15
25
3. Phương trình vi phân bậc 1
Phân tích sai số: Bài tập về nhà
26
Bài tập pp Euler
1. Cho pt vi phân
w1 w 2 1
w 2 0.5
w 2 0.5
28
3. Phương trình vi phân bậc 1
PP Runge-Kutta (RK) bậc 2
k1 f (x i , yi )
k 2 f (x i h, yi h k1 )
yi1 yi h w1 k1 w 2 k 2
29
3. Phương trình vi phân bậc 1
Chọn các giá trị , , w1 và w2
Chọn α = 1, β =1, w1 = w2 = 0.5. Khi đó pp RK bậc 2 thành
K1 h f (x i , yi )
K 2 h f (x i h, yi K1 ) Pp Heun với Corrector đơn
1 h
yi1 yi K1 K 2 yi f (x i , yi ) f (x i1 , yi1 )
2 2
Chọn α = 0.5, β =0.5, w1 =0, w2 = 1. Khi đó pp RK bậc 2 thành
K1 h f (x i , yi )
h K1
K 2 h f (x i , yi ) Pp điểm giữa
2 2
h K1
yi1 yi K 2 yi h f (x i , yi )
2 2 30
3. Phương trình vi phân bậc 1
Chọn các giá trị , , w1 và w2
Chọn 1 số α khác 0 và tính theo α.
1 1
, w1 1 , w2
2 2
Khi đó pp RK bậc 2 thành
K1 h f (x i , yi )
K 2 h f (x i h, yi K1 )
1 1
yi1 yi 1 K1 K2
2 2
31
3. Phương trình vi phân bậc 1
Ví dụ 1: Dùng pp RK bậc 2 để tìm y(1.02)
2 3
y'(x) 1 y x , y(1) 4, h 0.01, 1
Giải
Bước 1
2 3
K1 h f (x 0 1, y 0 4) 0.01(1 y 0 x 0 ) 0.18
K 2 h f (x 0 h, y 0 K1 )
2 3
0.01(1 (y 0 0.18) (x 0 0.01) ) 0.1662
y(1 0.01) y(1) K1 K 2 / 2
4 (0.18 0.1662) / 2 3.8269
32
3. Phương trình vi phân bậc 1
Bước 2
K1 h f (x1 1.01, y1 3.8269)
0.01(1 y12 x13 ) 0.1668
K 2 h f (x1 h, y1 K1 )
2 3
0.01(1 (y1 0.1668) (x1 0.01) ) 0.1546
33
3. Phương trình vi phân bậc 1
2 3
y'(x) 1 y x , y(1) 4, h 0.01, 1
34
3. Phương trình vi phân bậc 1
PP Runge-Kutta (RK) bậc 3
k1 f (x i , yi )
h 1
k 2 f (x i , yi k1h)
2 2
k 3 f (x i h, yi k1h 2k 2 h)
h
yi1 yi k1 4k 2 k 3
6
Pp RK bậc 3 Sai số cục bộ là O(h4) và sai số toàn cục là O(h3).
35
3. Phương trình vi phân bậc 1
PP Runge-Kutta (RK) bậc 4
k1 f (x i , yi )
h 1
k 2 f (x i , yi k1h)
2 2
h 1
k 3 f (x i , yi k 2 h)
2 2
k 4 f (x i h, yi k 3h)
h
yi1 yi k1 2k 2 2k 3 k 4
6
36
Bài tập pp Runge-Kutta
1. Cho pt vi phân
dy 5x 2 y
xy
dx e
dy
2. Cho pt vi phân (x y)sin xy
dx
Điều kiện ban đầu : y(0) = 5
Dùng pp Runge-Kutta bậc 2, 3, 4 với h = 0.2 để giải pt vi phân
trên ở x = 0,2 0,4.
37
4. Hệ phương trình vi phân bậc 1
Mở rộng các pp Euler và RK2 để giải hệ pt vi phân bậc 1.
f1 (x, y) y1 (x 01 )
f (x, y) y (x )
d Y(X) 2 2 02
Cho F(X,Y) , Y(X 0 )
dX ... ...
f n (x, y) y n (x 0n )
Pp Euler để giải 1 hệ của n pt vi phân bậc 1.
k1 F(X i , X i )
h 1
k 2 F(X i , X i k1h)
2 2
h 1
k 3 F(X i , Yi k 2 h)
2 2
k 3 F(X i h, Yi k 3h)
h
Yi1 Yi k1 2k 2 2k 3 k 4
6
40
4. Hệ phương trình vi phân bậc 1
Ví dụ 2: PP Euler cho giải hệ pt vi phân ODE bậc 1
Giải
B1:
Y1 Y(0 h) Y0 h F(X 0 , Y0 )
y1 (0.1) y1 (0) y 2 (0) 1 0.1*1 0.9
y (0.1) y (0) 0.1 1 y (0) 1 0.1(1 1) 1.2
2 2 1
41
4. Hệ phương trình vi phân bậc 1
B2 :
Y2 Y(0 2h) Y1 h F(X1 ,Y1 )
y1 (0.2) y1 (0.1) y 2 (0.1) 0.9 0.1*1.2 0.78
y (0.2) y (0.1) 0.1 1 y (0.1) 1.2 .1(1 0.9) 1.39
2 2 1
42
4. Hệ phương trình vi phân bậc 1
Ví dụ 3: Pp RK bậc 2 với α = 1, β =1, w1 = w2 = 0.5 cho giải
hệ pt vi phân ODE bậc 1
y'1 (x) y 2 y1 (0) 1
y ' (x) 1 y F(X, Y), Y(0) y (0) 1
2 1 2
Tính Y(0.1) và Y (0.2) với h = 0.1
Giải
y 2 (0) 0.1
B1: K1 h F(0, Y(0)) 0.1
1 y1 (0) 0.2
y 2 (0) 0.2 0.12
K 2 h F(0 1* h, Y(0) K1 ) 0.1
1 (y1 (0) 0.1) 0.19
43
4. Hệ phương trình vi phân bậc 1
Y(0 h) Y(0) 0.5(K1 K 2 )
y1 (0.1) 1 1 0.1 0.12 0.89
y (0.1) 1 2 0.2 0.19 1.195
2
y 2 (0.1) 0.1195
B2 : K1 h F(0.1, Y(0.1)) 0.1
1 y 1 (0.1) 0.1890
x" 3x ' 6x 1
Làm thế nào để giải pt ODE bậc cao ?
Cách tổng quát để giải pt ODE bậc cao
Chuyển
Pt ODE bậc cao Hệ pt ODEs bậc 1 Giải
đổi
z '1 z2
z ' 1 3z 6z ,
x" 3x ' 6x 1 Chuyển 2 2 1
đổi
Giải
x '(0) 1; x(0) 4 4
Z(0)
1
Z là 1 véc tơ (khác z) 45
5. Phương trình vi phân bậc cao
Quá trình chuyển đổi
của nó đến một bậc thấp hơn đạo hàm cao nhất.
46
5. Phương trình vi phân bậc cao
Chú ý trong quá trình chuyển đổi
47
5. Phương trình vi phân bậc cao
Ví dụ 1: Chuyển đổi pt ODE bậc cao tới ODEs bậc 1
z '1 z2 4
z ' 1 3z 6z , Z(0) 1
2 2 1
49
5. Phương trình vi phân bậc cao
Ví dụ 2: Chuyển đổi pt ODE bậc cao tới ODEs bậc 1
x"' 2x" 7x ' 8x 0
x"(0) 9, x '(0) 1; x(0) 4
Giải
x z1 4 z '1 z 2
x' z2 1 z '2 z3
x" z3 9 z '3 2z3 7z 2 8z1 50
5. Phương trình vi phân bậc cao
z '1 z2 4
z ' z3
, Z(0) 1
2
z '3 2z 3 7z 2 8z1 9
51
5. Phương trình vi phân bậc cao
Ví dụ 3: Chuyển đổi pt ODE bậc cao tới ODEs bậc 1
52
5. Phương trình vi phân bậc cao
x"' 5x" 2x ' 8y 0
y" 2xy x ' 2
Giá trị Phương trình
Tên cũ Tên mới
ban đầu
x z1 4 z '1 z 2
x' z2 2 z '2 z 3
x '' z3 9 z '3 5z 3 2z 2 8z 4
y z4 1 z '4 z 5
y' z5 3 z '5 2 z 2 2z1z 4
53
5. Phương trình vi phân bậc cao
Giải pt vi phân bậc 2
54
5. Phương trình vi phân bậc cao
Ví dụ 1: Giải pt dùng pp Euler. Dùng h = 0.1, tính tại 0.1 và 0.2
x" 2x ' 8x 2
x(0) 1; x '(0) 2
Giải
•Chuyển đổi pt ODE bậc cao tới ODEs bậc 1
z1 x,z 2 x '
Pt ODE bậc 2 được biểu diễn
z '1 z2 1
Z F(Z) , Z(0)
z '2 2 2z 2 8z1 2
55
5. Phương trình vi phân bậc cao
Áp dụng các pp Euler giải hệ phương trình vi phân
56
6. Áp dụng giải bài toán dầm chịu lực phân bố
Giải cho Bài toán giá trị (điều kiện) biên. Dùng lại tính sai phân
số chương 3
2
d y yi 1 2 yi yi 1
2
2
dx h 59
Chúng ta viết lại pt:
x1 0
x 2 x1 x 0 25 25
x 3 x 2 x 25 25 50
x 4 x 3 x 50 25 75 60
Ở đây chúng ta không có bảng giá trị cho trước về độ võng.
y 3 2 y 2 y1 6 7
2
2 10 y 2 7.5 10 x 2 (75 x 2 )
(25)
0.0016 y1 0.003202 y 2 0.0016 y 3 7.5 10 7 ( 25)(75 25)
61
Điểm 3: Viết lai pt (*) cho điểm 3
y 4 2 y3 y 2 6 7
2
2 10 y 3 7.5 10 x3 (75 x3 )
(25)
Điểm 4: x4 = 75, y4 = 0 theo điều kiện biên tựa trên con lăn
1 0 0 0 y1 0
0.0016 0.003202 0. 0016 0 y 9.375 10 4
2
0 0.0016 0.003202 0.0016 y 3 9.375 10 4
0 0 0 1 y 4 0
62
1 0 0 0 y1 0
0.0016 0.003202 y 4
0.0016 0 2 9.375 10
0 0.0016 0.003202 0.0016 y 3 9.375 10 4
0 0 0 1 y 4 0
y1 0
y
2 0 . 5852
y 3 0.5852
y 4 0
y(50) y(x 3 ) y3 0.5852"
63