Bài giảng Phương pháp số - Bài 6: Nghiệm của các phương trình vi phân
BÀI 6
NGHIỆM CỦA CÁC
PHƢƠNG TRÌNH VI PHÂN
MỘT SỐ KHÁI NIỆM CƠ SỞ (1)
1. PHƢƠNG TRÌNH VI PHÂN (PTVP) CẤP n
y(n)(x) = f(x, y(x), y´(x) , …, y(n–1)(x))
2. NGHIỆM CỦA PTVP CẤP n:
Nghiệm của PTVP cấp n là một hàm Φ(x) khả vi liên tục đến
cấp n trên khoảng đang xét và
Φ(n)(x) = f(x, Φ(x), Φ’(x), Φ’’(x), …, Φ(n-1)(x))
Nghiệm tổng quát của PTVP cấp n thƣờng chứa n hằng số
tùy ý, và do vậy tồn tại một họ n tham số của các nghiệm
Nghiệm của bài toán giá trị đầu: Tìm nghiệm riêng suy từ
nghiệm tổng quát của PTVP sao cho nó thỏa mãn n giá trị
đầu đã biết
y(x0), y’(x0), …, y(n–1)(x0)
PHƢƠNG PHÁP SỐ-Bài 6
2
MỘT SỐ KHÁI NIỆM CƠ SỞ (2)
3. NGHIỆM CỦA PTVP TUYẾN TÍNH CẤP n:
• PTVP là tuyến tính cấp n
y(n)(x) + p1(x)y(n–1)(x) +… + pn-1(x)y´(x) + pn(x)y(x) = q(x)
• PTVP tuyến tính thuần nhất cấp n (khi vế phải q(x) = 0)
i> Nếu y1(x), y2(x), . . . , ym(x) là các nghiệm bất kì của PTVP
tuyến tính thuần nhất thì tổ hợp tuyến tính của chúng
C1y1(x) + C2y2(x) + · · · + Cmym(x) cũng là một nghiệm
Ii> Các nghiệm y1(x), y2(x), . . . , ym(x) này đƣợc gọi là độc
lập tuyến tính nếu định thức hàm
y1 y1' ... y1(m1)
y2 y'2 ... y(2m1)
0
... ... ... ...
ym y'm ... y(mm1)
PHƢƠNG PHÁP SỐ-Bài 6
3
MỘT SỐ KHÁI NIỆM CƠ SỞ (3)
3. NGHIỆM CỦA PTVP TUYẾN TÍNH CẤP n:
• PTVP tuyến tính thuần nhất cấp n (tiếp)
iii> Nếu y1(x), y2(x), . . . , yn(x) là n nghiệm độc lập tuyến tính
của PTVP thuần nhất cấp n, thì tổ hợp tuyến tính của chúng
Y(x) = C1y1(x) + C2y2(x) + · · · + Cnyn(x)
đƣợc gọi là nghiệm tổng quát.
• PTVP tuyến tính thuần nhất cấp n với các hệ số hằng
y(n) + an–1y(n–1) + · · · + a0y = 0
có nghiệm dạng eβx với β thỏa mãn PT đặc tính
βn + an–1βn–1 + · · · + a0 = 0
(**)
(*)
PHƢƠNG PHÁP SỐ-Bài 6
4
MỘT SỐ KHÁI NIỆM CƠ SỞ (4)
3. NGHIỆM CỦA PTVP TUYẾN TÍNH CẤP n:
• PTVP tuyến tính thuần nhất cấp n với các hệ số hằng:
- Nếu phƣơng trình (**) có n nghiệm thực phân biệt βi thì
β x
β x
β x
1
2
n
Y(x) C1e C2e ... Cne
là nghiệm tổng quát của của PTVP thuần nhất cấp n (*)
- Nếu β1 = α + iβ là một nghiệm phức của (**),
thì β2 = α – iβ cũng là một nghiệm của PT đặc tính (**)
- Nếu β là một nghiệm kép của PT đặc tính (**), thì
y1 eβx và y2 xeβx
cũng là các nghiệm độc lập tuyến tính của PT thuần nhất (*)
PHƢƠNG PHÁP SỐ-Bài 6
5
MỘT SỐ KHÁI NIỆM CƠ SỞ (5)
3. NGHIỆM CỦA PTVP TUYẾN TÍNH CẤP n:
• PTVP tuyến tính không thuần nhất cấp n hệ số hằng:
y(n) + an–1y(n–1) + · · · + a0y = q(x)
(***)
Nếu PTVP (***) có một nghiệm riêng ζ(x), thì nghiệm tổng
quát của PTVP tuyến tính không thuần nhất là
y(x) ζ(x) Y(x)
β x
β x
β x
1
2
n
ζ(x) C1e C2e ... Cne
với giả thiết rằng βi là các nghiệm thực phân biệt của PTVP
đặc tính (**) tƣơng ứng
PHƢƠNG PHÁP SỐ-Bài 6
6
MỘT SỐ KHÁI NIỆM CƠ SỞ (6)
3. NGHIỆM CỦA PTVP TUYẾN TÍNH CẤP n:
• PTVP tuyến tính không thuần nhất cấp n hệ số hằng:
Ví dụ: Tìm nghiệm tổng quát của phƣơng trình sau
y´´ – 4y´ + 3y = x
Giải: Từ PT đặc tính β2 - 4β + 3 = 0 β1 = 1, β2 = 3
nghiệm tổng quát của PT thuần nhất là
Y(x) C1ex C2e3x
Ta tìm một nghiệm riêng y1(x) = ax + b của PT ban đầu
a = 1/3, b = 4/9
Vậy nghiệm tổng quát của PT không thuần nhất là
1 4
y(x) y1(x) Y(x) x C1ex C2e3x
3 9
PHƢƠNG PHÁP SỐ-Bài 6
7
MỘT SỐ KHÁI NIỆM CƠ SỞ (7)
4. BÀI TOÁN CÔ SI CỦA PTVP CẤP n
Tìm nghiệm riêng của PTVP (phi tuyến) cấp n
y(n) = f(x, y, y’, …, y(n-1))
thỏa mãn các giá trị đầu
y(x0 ) y0, y'(x0 ) y'0 , , y(n1)(x0 ) y(0n1)
Ví dụ 1: Tìm nghiệm riêng của PTVP y’ = xy thỏa mãn
đ/k giá trị đầu
y(0) = 1
Giải:
.
dy
dy
xy x dx
tích phân 2 vế ta có nghiệm TQ
dx
y
2
x2
x
dy
x dx ln | y | C y Ae 2
2
y
2
x
2
Từ đ/k y(0) = 1 ta tìm đƣợc nghiệm riêng
y e
PHƢƠNG PHÁP SỐ-Bài 6
8
MỘT SỐ KHÁI NIỆM CƠ SỞ (8)
5. THUẬT TOÁN TAYLOR
Giải BT Côsi: Tìm nghiệm của PTVP cấp một
y´ = f(x,y) biết giá trị đầu y(x0) = y0 (****)
• Giả sử f là đủ khả vi theo cả x và y, (****) có nghiệm duy
nhất nếu ∂f/∂y liên tục trên miền đang xét. Khai triển
nghiệm y(x) thành chuỗi Taylor xung quanh điểm x0:
(x x0 )2
y(x) y0 (x x0 )y'(x0 )
y''(x0 )
2!
• Tính các đạo hàm bằng cách lấy đạo hàm toàn phần của
(****) theo x: y´ = f(x,y)
y´´ = f´ = fx + fyy´ = fx + fyf
2
y´´´ = f´´ = fxx + fxyf + fyxf + fyyf2 + fyfx + fy f
2
= fxx + 2fxyf + fyyf2 + fxfy + fy f
PHƢƠNG PHÁP SỐ-Bài 6
9
MỘT SỐ KHÁI NIỆM CƠ SỞ (9)
5. THUẬT TOÁN TAYLOR (tiếp)
Thuật toán Taylor bậc k tìm một nghiệm xấp xỉ của BT Côsi
y´ = f(x,y) thỏa mãn đ/k đầu y(a) = y0 trên [a, b]
1. Chọn bƣớc h = (b – a) / N, đặt xn = a + nh, n = 0, 1, . . . , N
2. Tạo ra các xấp xỉ yn cho y(xn) từ phép đệ quy
yn+1 = yn + hTk(xn,yn )
n = 0, l, . . . , N – 1
trong đó Tk(x, y) đƣợc định nghĩa bởi
h
hk1
Tk (x, y) f(x, y) f'(x, y)
2!
f (k1)(x, y), k 1,2,...
k!
Sai số địa phƣơng của thuật toán Taylor bậc k là
hk1f (k) (, y()) hk1
E
y(k1) (), xn xn h
(k 1)!
(k 1)!
PHƢƠNG PHÁP SỐ-Bài 6
10
MỘT SỐ KHÁI NIỆM CƠ SỞ (10)
5. THUẬT TOÁN TAYLOR (tiếp)
Ví dụ: tìm một nghiệm xấp xỉ của BT Côsi
1 y
y' y2 tháa mãn đ / k y(1) 1
x2
x
trên [1, 2] bằng thuật toán Taylor bậc 2 với h = 0.1
Đặt xi = a + ih, i = 0, 1, . . . , 10
1 y
2 y' y
f(x, y) y2 , f'(x, y) 2yy'
x2
x3
x2
x
h
x
do đó
T2 (x, y) f f'
2
h
và
yi1 yi h f(xi , yi ) f'(xi , yi )
2
thuật toán Taylor bậc cao hơn khó đƣợc chấp nhận
PHƢƠNG PHÁP SỐ-Bài 6
11
MỘT SỐ KHÁI NIỆM CƠ SỞ (11)
5. THUẬT TOÁN TAYLOR (tiếp)
Ví dụ: (tiếp)
i xi
yi
y'=f(xi,yi) hf(xi,yi)
0.1
f'(xi,yi) h^2*f'(x,y)/2
-2 -0.010000
0 1
-1
1
1 1.1 -0.910000 0.825619 0.082562 -1.502632 -0.007513
2 1.2 -0.834951 0.693094 0.069309 -1.157414 -0.005787
3 1.3 -0.771429 0.590020 0.059002 -0.910343 -0.004552
4 1.4 -0.716979 0.508273 0.050827 -0.728879 -0.003644
5 1.5 -0.669796 0.442349 0.044235 -0.592612 -0.002963
6 1.6 -0.628524 0.388410 0.038841 -0.488305 -0.002442
7 1.7 -0.592124 0.343718 0.034372 -0.407110 -0.002036
8 1.8 -0.559788 0.306273 0.030627 -0.342966 -0.001715
9 1.9 -0.530876 0.274588 0.027459 -0.291621 -0.001458
10 2 -0.504875 0.247539 0.024754 -0.250036 -0.001250
PHƢƠNG PHÁP SỐ-Bài 6
12
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (1)
1. PHƢƠNG PHÁP EULER GIẢI BT CÔSI CẤP 1
• Áp dụng thuật toán Taylor với k = 1 trên [a, b]
yi1 yi hf(xi , yi )
h2
E y''()
có sai số địa phƣơng
2
sai số toàn cục trên [a, b] cùng bậc với h cần h rất nhỏ
• Ví dụ, giải BT Côsi y´ = y biết giá trị đầu y(0) = 1, h = 0.01
i
xi
yi
f(x,y)
hf(x,y)
0
1
2
3
4
5
0
1
1.000000 0.010000
0.01
0.02
0.03
0.04
0.05
1.010000 1.010000 0.010100
1.020100 1.020100 0.010201
1.030301 1.030301 0.010303
1.040604 1.040604 0.010406
1.051010 1.051010 0.010510
PHƢƠNG PHÁP SỐ-Bài 6
13
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (2)
void Euler (double a, double b, double h, double y0) {
int n = ceil((b-a)/h); vector<double> x(n+1,0), y(n+1,0);
x[0] = a; y[0] = y0;
for (int i = 1; i <= n; i++) {
x[i] = x[i-1] + h;
y[i] = y[i-1] + h * f(x[i-1], y[i-1]);
}
cout << "Nghiem gan dung tren doan [" << x[0]
<< "," << x[n] << "]" << endl;
cout << "\t i \t x \t y \t f(x,y) \t hf(x,y)" << endl;
for (int i = 0; i <= n; i++) {
cout << "\t "<< i << "\t " << x[i] << "\t " << y[i] << "\t "
<< f(x[i], y[i]) << "\t " << h*f(x[i], y[i]) << endl;
}
}
PHƢƠNG PHÁP SỐ-Bài 6
14
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (3)
2. PHƢƠNG PHÁP RUNGE-KUTTA BẬC 2
• Đặt vấn đề: Đối với nghiệm của BT Côsi của PTVP cấp 1
Sử dụng CT
Euler, tính độ
nghiêng ở xi+1
y’ = f(x, y), y(x0) = y0
Ƣớc lƣợng hàm f(x, y) tại các điểm
đƣợc lựa chọn trên mỗi khoảng con.
yi+l = yi + ak1(h) + bk2(h)
trong đó
a = b = 1/2
k1 = hf(xi, yi)
k2 = hf(xi + h, yi + k1)
yi+l = yi + 1/2(k1 + k2)
• Sai số địa phƣơng
h3
y(xi1) yi1 (fxx 2ff xy fyy f 2 2fxfy fy2f ) O(h4 )
PHƢƠNG PHÁP SỐ-Bài 6
15
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (4)
2. PHƢƠNG PHÁP RUNGE-KUTTA BẬC 2
• Ví dụ: giải PTVP y'=1-y/x biết y(2) = 2, h=0.01trên [2; 2.1]
i xi
yi
f(xi,yi) hf(xi,yi)
zi
f(xi+1,zi) hf(xi+1,zi)
0 2.00 2.000000 0.000000 0.000000 2.000000 0.004975 4.9751E-05
1 2.01 2.000025 0.004963 0.000050 2.000075 0.009864 9.8641E-05
2 2.02 2.000099 0.009852 0.000099 2.000198 0.014681 0.00014681
3 2.03 2.000222 0.014669 0.000147 2.000368 0.019427 0.00019427
4 2.04 2.000392 0.019416 0.000194 2.000586 0.024104 0.00024104
5 2.05 2.000610 0.024093 0.000241 2.000851 0.028713 0.00028713
6 2.06 2.000874 0.028702 0.000287 2.001161 0.033256 0.00033256
7 2.07 2.001184 0.033245 0.000332 2.001516 0.037733 0.00037733
8 2.08 2.001538 0.037722 0.000377 2.001916 0.042146 0.00042146
9 2.09 2.001938 0.042135 0.000421 2.002359 0.046496 0.00046496
10 2.10 2.002381 0.046485 0.000465 2.002846
PHƢƠNG PHÁP SỐ-Bài 6
16
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (5)
void Runge_Kutta2 (double h, double x, double y, unsigned n) {
double xs, z;
cout << "Nghiem cua phuong trinh " << endl;
cout << "i x y f(x,y) f(x,z)";
for (unsigned i = 0; i <= n; i++) {
z = y + h * f(x, y);
xs = x + h;
cout << "\n“ << i << "\t “ << xs << "\t “ << y
<< "\t “ << f(x, y) << "\t “ << f(xs, z) << endl;
y = y + h * (f(x, y) + f(xs, z)) / 2;
x = xs;
}
}
PHƢƠNG PHÁP SỐ-Bài 6
17
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (6)
3. PHƢƠNG PHÁP RUNGE-KUTTA BẬC 4
Đối với PTVP y’ = f(x, y), y(x0) = y0, tạo xấp xỉ cho y(x0+h)
y(x0+h) = y(x0) + r1k1(h) + r2k2(h) + r3k3(h) + r4k4(h) + φ4(h)
hay y(x0+h) = y0 + ∆y0 + φ4(h)
trong đó
∆y0 = r1k1(h) + r2k2(h) + r3k3(h) + r4k4(h)
ki(h) = hf(ξi, ૪i);
ξi = x0 + ai h, a1 = 0
૪i = y0 + bi1k1(h) + … + bi, i-1 ki-1(h), i = 1, 2, 3, 4
φ4(h) = y(x0+h) - y0 - ∆y0 là sai số (địa phƣơng )
Các hệ số ai, bij, ri đƣợc chọn sao cho các đạo hàm cấp i của
φ4(h) thoả mãn điều kiện
(4i)(0) 0 (i 0,4) và(4i1)(0) 0i 4
PHƢƠNG PHÁP SỐ-Bài 6
18
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (7)
3. PHƢƠNG PHÁP RUNGE-KUTTA BẬC 4
hệ 11 phƣơng trình, 13 ẩn
a2, a3, a4, b21, b31, b32, b41, b42, b43, r1, r2, r3, r4.
• Công thức Runge – Kutta bậc 4 :
1
yi1 yi k1 2k22k3 k4
6
k1 hf(xi, yi)
trong đó
1
1
k hf x h, y k
2
i
i
1
2
1
2
1
k hf x h, y k
3
i
i
2
2
2
k4 hf(xi h, yi k3)
PHƢƠNG PHÁP SỐ-Bài 6
19
CÁC PHƢƠNG PHÁP SỐ GIẢI BT CÔSI (8)
3. PHƢƠNG PHÁP RUNGE-KUTTA BẬC 4
• Sai số địa phƣơng của công thức là O(h4)
• Ƣu điểm: Tự bắt đầu (chỉ đòi hỏi giá trị y(x0) = y0)
• Nhƣợc điểm: Mỗi bƣớc đòi hỏi 4 ƣớc lƣợng hàm
y
k2
yi+1
k3
k1
yi
k4
ktổ hợp
xi
xi+1
x
xi+1/2
PHƢƠNG PHÁP SỐ-Bài 6
20
Tải về để xem bản đầy đủ
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng Phương pháp số - Bài 6: Nghiệm của các phương trình vi phân", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phuong_phap_so_bai_6_nghiem_cua_cac_phuong_trinh_v.pdf

