1. Trang chủ
  2. » Kỹ Thuật - Công Nghệ

Chương 6: Giải gần đúng phương trình vi phân[Phương pháp tính- BKHCM]

9 746 3

Đang tải... (xem toàn văn)

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 9
Dung lượng 104,42 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Tóm tắt bài giảng phương pháp tính trường ĐHBKTPHCM- HCMUT

Trang 1

Chương 6

GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN

1

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

2

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

Giả sử bài toán có nghiệm duy nhất y(x) có đạo hàm đến cấp 2 liên tục trên [a,b]

Khai triển Taylor ta có

y(xk+1) = y(xk) + (xk+1-xk) y’(xk) + (xk+1-xk)2y’’(ξk)/2 với ξk∈ (xk, xk+1)

Công thức Euler :

yk+1 = yk+ h f(xk, yk) , k = 0, n-1 với h = xk+1 - xk

Trang 2

Ví dụ : Dùng công thức Euler tìm nghiệm gần

đúng của bài toán Cauchy

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

5

Công thức Euler

y0= 0.5

yk+1= yk + 0.2 (yk- xk2 +1)

k xk yk y(xk) |y(xk) - yk|

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

6

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ới h = xk+1 - xk

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

Trang 3

k xk yk y(xk) |y(xk) - yk|

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

9

3 Công thức Runge Kutta bậc 4 :

1

1 2

2 3

6 ( , )

k k

K h

K h

=

10

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

Công thức Runge-Kutta bậc 4

y(1.5) = 15.69260639 ≈ 15.6926

=

1

2

( , )

K h f x y

K h

K h f x y

K h

K h f x y

K h f x h y K

Trang 4

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)

13

Để 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

Công thức Euler :

yi k+1= yi k + h fi(xk, y1 k, … , ym k)

∀i=1 m; k = 0 n-1

14

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

So sánh với nghiệm chính xác

y1(x) = 1/3e5x–1/3e-x+e2x

y2(x) = 1/3e5x+2/3e-x+x2e2x

Trang 5

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 y1(xk) y2k y2(xk)

0.1 1.4 1.4694 1.1 1.1650

0.2 1.9154 2.1250 1.3071 1.5116

0.3 2.5903 3.0691 1.6729 2.1518

0.4 3.4870 4.4651 2.2732 3.2660

0.5 4.6940 6.5769 3.2187 5.1448

17

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

18

Đặt y1= y, y2 = y’, y3= y”, , ym = y(m-1)

Ta chuyển phương trình vi phân bậc m về hệ

m phương trình vi phân cấp 1

với điều kiện ban đầu

y1(a) = α1, y2(a) = α2, , ym(a) = αm,

y’1 = y2

y’2 = y3

y’m-1= ym

y’m = f(x, y1, y2, , ym)

Ví dụ : Sử dụng công thức Euler giải gần đúng

pt vi phân cấp 2 (tính xấp xỉ y và y’)

y “ – 2 y’ + 2y = sinx e2x , 0≤x≤0.5 điều kiện ban đầu

y(0) = -0.4, y’(0) = -0.6 với bước h = 0.1

Trang 6

đặt y1 = y, y2= y’ chuyển pt về hệ

điều kiện y1(0) = -0.4, y2(0) = -0.6

Công thức Euler

y1 0 = -0.4

y1 k+1 = y1 k + 0.1 y2k

y2 0 = -0.6

y2 k+1 = y2 k + 0.1 (sinxke2xk- 2y1k+2y2 k)

21

xk y1 k=y y2 k=y’

0.1 -0.46 -0.64 0.2 -0.524 -0.6638 0.3 -0.5904 -0.6621 0.4 -0.6566 -0.6226 0.5 -0.7189 -0.5292

22

Ví dụ : Xét bài toán Cauchy

x“(t) = (Mt+5) x2(t) – 2Mx’(t)+1.2t + M, 1≤t

điều kiện ban đầu

x(1) = 1.3M, x’(1) = 1.8M

Dùng công thức Euler cải tiến, xấp xỉ giá trị của

hàm x(t) và x’(t) tại điểm t = 1.2 với bước h = 0.2

và M = 2.7

đặt y1 = x, y2= x’ chuyển pt về hệ

điều kiện y1(1) = 1.3M, y2(1) = 1.8M

giải

Công thức Euler cải tiến

y1 0 = 1.3M

y1 1 = y1 0+ (K11+K21)/2

y2 0 = 1.8M

y2 1 = y2 0 + (K12+K22)/2

K11= 0.2*y2 0

K21= 0.2*(y2 0+K12)

K12= 0.2( (Mt0+5)y102 -2My20+ 1.2t0+M)

K22= 0.2( (M(t0+h)+5)(y10 +K11)2 -2M(y20+K12)

+ 1.2(t0+h)+M)

Trang 7

K11= 0.972 K12=14.504154

x(1.2) = y1 1= 5.9324154

x’(1.2) = y2 1= 18.622212816

25

IV GIẢI PTVP TUYẾN TÍNH CẤP 2 BẰNG PP SAI PHÂN HỮU HẠN :

Xét phương trình vi phân tuyến tính cấp 2 với điều kiện biên

p(x)y” + q(x)y’ + r(x)y = f(x), a≤x≤b y(a) = α, y(b) = β

 PP sai phân hữu hạn :

 Chia đoạn [a,b] thành n đoạn bằng nhau với bước h=(b-a)/n và các điểm nút

x0 = a, x1 = x0 +h, , xk = x0+ kh, , xn = b

26

 sử dụng các công thức sai phân hướng tâm ta

xấp xỉ

y’(xk) ≈ (yk+1– yk-1) /2h

y”( xk) ≈ (yk+1 – 2yk + yk-1)/h2

với yklà giá trị xấp xỉ của hàm tại điểm xk

 thay xk vào phương trình ta được

pk(yk+1–2yk + yk-1)/h2+ qk (yk+1–yk-1)/(2h) +rkyk= fk

với pk = p(xk), qk= q(xk), rk = r(xk), fk= f(xk),

 biến đổi phương trình trên ta thu được hệ phương trình sau :

0

,

2

1 1

n

k n

∀ = −

Đây chính là hệ phương trình tuyến tính

Ay = b

Trang 8

Với A là ma trận 3 đường chéo

1 1 1

2

2

1

2 2

2

2

2

n

n

r

h

r

A

r

r h

1

2 2

2 1

2

2

n n

n

f

h h y

f y

f y

f

h h

α

β

29

Trường hợp đặc biệt p(x) = 1

1

1 2 2

2

2

1 1

2

2

n n n

q r

h

r

A

r

q r h

1

1

2 2

2 1

1

1

2

1

2

n n

n n

q f

h h y

f y

f y

q f

h h

α

β

− −

 

 

 

 

 

− +

30

Ví dụ : Giải gần đúng pt vi phân cấp 2

y“ - y’ – (x+1)y = x-1, 0≤x≤1

y(0) = 1, y(1) = 0

với bước h = 0.25

giải

n = 4

1 2 3

0.809273318 0.582738415 0.318201229

y

y

Vậy nghiệm gần đúng

y(0) =1, y(0.25) = 0.8093, y(0.5) = 0.5827, y(0.75)=0.3182, y(1)=0

giải hệ phương trình tuyến tính: Ay = b

33.25 14 0 18.75

18 33.5 14 0.5

0 18 33.75 0.25

= −  = − 

3

2

2 2

2

p p q

f h

h h

h h

p q

h

α

β

− −

Trang 9

Ví dụ : Giải gần đúng pt vi phân cấp 2

Mx2y”+xy’-8My = -3M2x2, 1.4≤x≤1.8

y(1.4) = 0.5M, y(1.8) = 1.5M

với bước h = 0.1, M= 2.7

giải

n = 4

rk -21.6 -21.6 -21.6

fk -49.2075 -55.9872 -63.2043

33

giải hệ phương trình tuyến tính : Ay = b

3

2

0

2

2 2

2

p p q

f h

h h

h h

p q

h

α

β

− −

Vậy nghiệm gần đúng

y(1.4) =1.35, y(1.5) = 2.0499, y(1.6) = 2.7247, y(1.7)=3.3882, y(1.8)=4.05

1 2 3

2.049897539 2.724708612 3.388177479

y

y y y

1236.6 615 0 859.2075 683.2 1404 699.2 55.9872

0 771.8 1582.2 3257.8443

34

Ngày đăng: 02/01/2017, 10:36

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm