YOMEDIA
Bài giảng Phương pháp tính - Chương 6: Giải gần đúng phương trình vi phân
Chia sẻ: Minh Nhật
| Ngày:
| Loại File: PDF
| Số trang:36
87
lượt xem
5
download
Download
Vui lòng tải xuống để xem tài liệu đầy đủ
Bài giảng “Phương pháp tính – Chương 6: Giải gần đúng phương trình vi phân” trang bị cho cho người học các kiến thức: Giải gần đúng phương trình vi phân cấp 1, giải gần đúng hệ phương trình vi phân, giải gần đúng phương trình vi phân cấp cao, giải phương trình vi phân tuyến tính cấp 2 bằng phương pháp sai phân hữu hạn,… Mời các bạn cùng tham khảo.
AMBIENT/
Chủ đề:
Nội dung Text: Bài giảng Phương pháp tính - Chương 6: Giải gần đúng phương trình vi phân
- Chương 6
GIẢI GẦN ĐÚNG
PHƯƠNG TRÌNH VI PHÂN
- I. GIẢI GẦN ĐÚNG PTVP CẤP 1 :
Xét bài toán Cauchy : tìm nghiệm y=y(x) của
phương trình vi phân với giá trị ban đầu y0
y’ = f(x, y), ∀x ∈ [a,b]
y(a) = y0
Các phương pháp giải gần đúng :
➢ Công thức Euler
➢ Công thức Euler cải tiến
➢ Công thức Runge-Kutta
- 1. Công thức Euler :
Để tìm nghiệm gần đúng của bài toán Cauchy ta
chia đoạn [a,b] thành n đoạn nhỏ bằng nhau với
bước h = (b-a)/n
xo= a, x1 = x0 +h, ... , xk = x0 + kh, ... , xn = b
Nghiệm gần đúng của bài toán là dãy {yk} gồm các
giá trị gần đúng của hàm tại xk
Ta có yk ≈ y(xk) , k =0, n
- Công thức Euler :
yk+1 = yk + h f(xk, yk) , k = 0, n-1
- Ví dụ : Dùng công thức Euler tìm nghiệm gần
đúng của bài toán Cauchy
y’ = y – x2 +1, 0≤x≤1
y(0) = 0.5
với n = 5
Tính sai số biết nghiệm chính xác là :
y(x) = (x+1)2 – 0.5ex
giải
ta có h = 0.2
x0 = 0, x1 = 0.2, x2 = 0.4, x3 = 0.6, x4 = 0.8, x5 = 1
- Công thức Euler
y0 = 0.5
yk+1 = yk + 0.2 (yk - xk2 +1)
k xk yk y(xk) |y(xk) - yk |
0 0 0.5 0.5 0
1 0.2 0.8 0.8292986 0.0292986
2 0.4 1.152 1.2140877 0.0620877
3 0.6 1.5504 1.6489406 0.0985406
4 0.8 1.98848 2.1272295 0.1387495
5 1 2.458176 2.6408591 0.1826831
- * Nhận xét : công thức Euler đơn gian, nhưng sai số
còn lớn nên ít được sử dụng
- 2. Công thức Euler cải tiến :
yk+1 = yk + (k1+k2)/2 k = 0,1, ..., n-1
k1 = hf(xk, yk),
k2 = hf(xk+h, yk + k1)
- Ví dụ :
Làm lại ví dụ trước nhưng dùng công thức Euler cải
tiến
giải
ta có h = 0.2
x0 = 0, x1 = 0.2, x2 = 0.4, x3 = 0.6, x4 = 0.8, x5 = 1
Công thức Euler cải tiến
yo = 0.5
yk+1 = yk + (k1 +k2) /2
k1= 0.2(yk - xk2 +1)
k2 = 0.2(yk + k1 – (xk+0.2)2 +1)
- k xk yk y(xk) |y(xk) - yk |
0 0 0.5 0.5 0
1 0.2 0.826 0.8292986 0.0033
2 0.4 1.20692 1.2140877 0.0072
3 0.6 1.6372424 1.6489406 0.0117
4 0.8 2.1102357 2.1272295 0.0170
5 1 2.6176876 2.6408591 0.0232
- 3. Công thức Runge Kutta bậc 4 :
- * Chú ý : Lập công thức Runge-Kutta bằng
máy tính casio không được vì công thức quá
dài, không đủ bộ nhớ, ta phải tính trực tiếp
- Ví dụ : Xét bài toán Cauchy
y’ = 2.7xy + cos (x+2.7y), 1.2≤x
y(1.2) = 5.4
Dùng công thức Runge-Kutta tính gần đúng y(1.5)
với bước h = 0.3
giải
Công thức Runge-Kutta bậc 4
xo = 1.2, yo = 5.4, y1=y(1.5)
y1 = y0 + (K1+ 2K2+ 2K3+ K4) /6
- Bấm máy (lập hàm dùng phím calc) ta được
K1 = 4.949578057 K2 = 8.367054617
K3 = 10.33000627 K4 = 19.41193853
y(1.5) = 15.69260639 ≈ 15.6926
- II. GIẢI GẦN ĐÚNG HỆ PTVP :
Xét hệ phương trình vi phân cấp 1
y’1 = f1(x, y1, y2, ..., ym)
y’2 = f2(x, y1, y2, ..., ym)
...
y’m = fm(x, y1, y2, ..., ym)
với a≤ x ≤ b và thỏa điều kiện ban đầu
y1(a) = α1, y2(a) = α2, .... , ym(a) = αm
Nghiệm y = (y1, y2, …, ym)
- Để tìm nghiệm gần đúng, ta chia đoạn [a,b] thành n
đoạn nhỏ bằng nhau với bước h = (b-a)/n và các
điểm chia
xo= a, x1 = x0 +h, ... , xk = x0 + kh, ... , xn = b
Nghiệm gần đúng là dãy { yk=(y1 k, y2 k, …, ym k)}
với yi k ≈ yi(xk), i=1,m
Công thức Euler :
yi k+1 = yi k + h fi(xk, y1 k, … , ym k)
∀i=1..m; k = 0.. n-1
- Công thức Euler cải tiến :
yi k+1 = yi k + (K1 i + K2 i) / 2
K1 i = h fi(xk, y1 k, … , ym k)
K2 i = h fi(xk+h, y1 k+K1 1, … , ym k+K1 m)
∀i=1,m; k = 0, n-1
Công thức Runge-Kutta bậc 4 :
yi k+1 = yi k + (K1 i+2K2 i+2K3 i+K4 i) / 6
K1 i = h fi(xk, y1 k, … , ym k)
K2 i = h fi(xk+h/2, y1 k+K11/2, … , ym k+K1 m/2)
K3 i = h fi(xk+h/2, y1 k+K21/2, … , ym k+K2 m/2)
K4 i = h fi(xk+h, y1 k+K31, … , ym k+K3 m)
∀i=1,m; k = 0, n-1
- Ví dụ : Sử dụng công thức Euler giải gần đúng hệ
pt vi phân
y’1 = 3y1 + 2y2 – (2x2 +1)e2x
y’2 = 4y1 + y2 + (x2 +2x –4) e2x
với 0 ≤x≤0.5
điều kiện ban đầu y1(0)=y2(0)=1
bước h = 0.1
- Công thức Euler
y1 0 = 1
y1 k+1 = y1 k + h (3y1k + 2y2 k – (2xk2 +1)e2xk)
y2 0 = 1
y2 k+1 = y2 k + h (4y1k + y2 k + (xk2 +2xk –4) e2xk)
xk y1k y2k
0 1 1
0.1 1.4 1.1
0.2 1.9154 1.3071
0.3 2.5903 1.6729
0.4 3.4870 2.2732
0.5 4.6940 3.2187
- III. GIẢI GẦN ĐÚNG PTVP CẤP CAO:
Xét phương trình vi phân cấp m
y(m) = f(x, y, y’, ... , y(m-1)), a≤x≤b
với điều kiện ban đầu
y(a) = α1, y’(a) = α2, .... , y(m-1)(a) = αm
Thêm tài liệu vào bộ sưu tập có sẵn:
Báo xấu
LAVA
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
ERROR:connection to 10.20.1.98:9315 failed (errno=111, msg=Connection refused)
Đang xử lý...