Tải bản đầy đủ (.pdf) (21 trang)

phương pháp tính nguyễn quốc lân c5 giai phương trình vi phân thuong sinhvienzone com

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (417.2 KB, 21 trang )

BỘ MÔN TOÁN ỨNG DỤNG - ĐHBK

om

-------------------------------------------------------------------------------------

ne

.C

PHƯƠNG PHÁP TÍNH – SV

Zo

CHƯƠNG 5

nh
Vi
en

GIẢI PHƯƠNG TRÌNH VI PHÂN THƯỜNG
TS. NGUYỄN QUỐC LÂN (5/2006)

Si



SinhVienZone.com

/>


NỘI DUNG
--------------------------------------------------------------------------------------------------------------------------

.C

1 – PHƯƠNG PHÁP EULER

om

A- BÀI TOÁN CÔSI (GIÁ TRỊ ĐẦU)

ne

2 – EULER CẢI TIẾN + RUNGE – KUTTA

nh
Vi
en

Zo

3 – HỆ PHƯƠNG TRÌNH VI PHÂN THƯỜNG
4 – PHƯƠNG TRÌNH VI PHÂN CẤP CAO

Si

B- BÀI TOÁN BIÊN

1- PHƯƠNG PHÁP SAI PHÂN HỮU HẠN


SinhVienZone.com

/>

BÀI TOÁN CÔSI
--------------------------------------------------------------------------------------------------------------------------

y'

f ( t , y ),

a

t

b

.C

điều kiện đầu

om

Tìm hàm y = y(t) thoả phương trình vi phân thường &

ne

y (a )

Zo


Giải xấp xỉ: Chia [a, b] thành n đoạn bằng nhau, độ dài h

nh
Vi
en

= (b – a)/n, (n + 1) điểm chia t0 = a < t1 = a + h < … < tn = b
y1 = ?

Si

y0 =

h

a

a = t0

t1

Cần tính gần đúng giá trò wk
SinhVienZone.com

b

t2

b = tn


yk = y(tk), k = 1

/>
n


MINH HOẠ Ý TƯỞNG
---------------------------------------------------------------------------------------------------------------------------------------

5y

y (0 )

5t

2

2t,

0

t

Với bước chia h = 0.5

om

Bài toán Côsi:


y'

1 3

f ( x0

.C

& công thức xấp xỉ đạo hàm 2 điểm:

f '( x0 )

h)

f ( x0 )

ne

h

Zo

hãy tính xấp xỉ nghiệm y tại t = 0.5, t = 1.

nh
Vi
en

Từ đó xây dựng đa thức nội suy Lagrange (spline) ygđ và vẽ


Điểm chia:

Si

đồ thò so sánh với nghiệm chính xác g(t) =

t0

1

e

5t

3

0

t1

Kết quả tìm được:

y 0 .5

0 .5

y 1 .0

1 . 875


SinhVienZone.com

t

2

0 .5

t2

1.

y gđ.Lagrang
y gđ

e

at

6 . 42 t

2

2

/>
bt

c


4 . 87 t

0 . 33


CÁC SƠ ĐỒ GIẢI XẤP XỈ PTRÌNH VPHÂN THƯỜNG
------------------------------------------------------------------------------------------------------------------------------

f ( t , y ), t

wi

a
n

, ti

a

w0

. Giả sử

k1

hf ( t i , w i ), k 2

n

wi


1

wi

Sơ đồ Runge –

k1

hf ( t i , w i ), k 2

Kutta: w0 =

k3

hf ( t i

Giả sử biết wi
SinhVienZone.com

.

wi

hf ( t i , w i )

S/đ Euler cải tiến (i = 0

ih


Si

Tính wi, i = 0

wi

Zo

b

n đoạn

nh
Vi
en

h

1

w i đã biết

ne

y (a )

Chia [a, b]

. Giả sử


w0

a,b

n – 1)

.C

y'

om

Sơ đồ Euler (i = 0

Btoán Côsi: Tìm y(t)

1

wi

h 2 , wi
(k1

2k2

n – 1)

w i đã biết

(k1


hf ( t i

h, wi

k1 )

k2) 2

hf ( t i

h 2 , wi

k 2 2 ), k 4
2k3

k1 2 )

hf ( t i

k4) 6

/>
1

, wi

k3)



VÍ DỤ PHƯƠNG PHÁP EULER
-------------------------------------------------------------------------------------------------------------------------------

y

t

y (0 )

2

0 .5

1,

0

t

1

.C

y'

om

Bằng p/pháp Euler, giải bài toán Côsi với n = 3 đoạn chia:

ne


So sánh nghiệm xấp xỉ với nghiệm g(t) = (t+1)2 – 0.5et.

nh
Vi
en

Zo

Từ đó tính xấp xỉ tích phân bằng c/t hình thang:

1

I

y ( t ) dt
0

Giải: f(t,y) = y – t2 + 1

t0

0 .5

t1 , w 1

t3 , w 3

t2 , w 2


Si

h = (b–a)/n = 1/3

0, w0

Sơ đồ Euler:

w0
wi

SinhVienZone.com

0 .5
1

wi

hf ( t i , w i )

wi

0 .2 ( w i
/>
2

ti

1)



KẾT QUẢ PHƯƠNG PHÁP EULER
----------------------------------------------------------------------------------------------------------------------------

0

0

0.5

1

1/3

2

2/3

3

om

wi

gi = g(ti )

| gi - wi |

0.5


0

.C

ti

Zo

ne

i

nh
Vi
en

Bảng kết quả:

1.

1

y ( t ) dt
0

Si

Tính gần đúng tích phân với công thức hình thang
h


2

y t0

2 y t1

2 y t2

y t3

h
2

w0

2 w1

1 . 3528807

SinhVienZone.com

/>
2w2

w3


VÍ DỤ EULER CẢI TIẾN
-------------------------------------------------------------------------------------------------------------------------------


SĐ Euler cải tiến với h = 0.5:
y

t

1, h

0 .5

0,

nh
Vi
en

Zo

t0

k1

hf ( t i , w i ) , k 2

ti

0

hf ( t i

h, wi


0 .5

k1 )

1,

0

0 .5 , w1

wi

k1

0.0

0.5

0.75

1

0.5

1.375

1.0625

2


1.0

2.515625

SinhVienZone.com

2

t

1

0 .5

t1

wi

Si

i

t

.C

2

y


y (0 )

ne

f (t , y )

y'

om

Tính y(1.) của bt Côsi sau bằng

1

?

t2 , w 2

k1

wi

k2
2

k2
1.0
1.21875


/>

VÍ DUÏ RUNGE – KUTTA
-------------------------------------------------------------------------------------------------------------------------------

4:

k3

i

ti

0 0.0

wi+1

wi

wi

1

Si

wi

0.5

1 0.5


1 . 4251302

2 1.0

2 . 6396027
SinhVienZone.com

hf ( t i

ne

Kutta

h 2 , wi

k1

wi

hf ( t i

h
2

, wi

k2 2) , k4

Zo




hf ( t i , w i ) , k 2

nh
Vi
en

Runge

k1

.C

om

Tính y(1.) baèng Runge – Kutta vôùi h = 0.5

2k2

2k3

y'

y

y (0 )
k1


t

2

1

0 .5

)

2
hf ( t i

h, wi

k3)

k4

6

k1

k2

0 . 75

0 . 90625

0 . 9451325


1 . 0976563

1 . 2032064

1 . 2331167

1 . 3286235

1 . 0875651

k3

/>
k4


HỆ PHƯƠNG TRÌNH VI PHÂN THƯỜNG
---------------------------------------------------------------------------------------------------------------------------------

du 1

f 1 ( t , u 1 , u 2 ),

dt

t

b


2

f 2 ( t , u 1 , u 2 ),

t

b

đầu

1

u 2 (a )

2

Zo

dt

a

kiện

.C

& Điều

u1 (a )


ne

du

a

om

Bài toán Côsi : Tìm hai hàm u1 = u1(t), u2 = u2(t) thoả

nh
Vi
en

Chia [a, b] thành đoạn bằng nhau: Phân hoạch & rời rạc hoá
0

0

w1

1

, w2
1

,

2


u 1 t1 , u 2 t1

?

2

2

w1 , w 2

?

Si

1

2

1

w1 , w 2

a

Ký hiệu: w 1i
SinhVienZone.com

t0

t1

i

u 1 ( t i ), w 2

a

u 2 ( t i ), i

h

t2

0

a

Biết

2h
0

w1 , w

0
2

i

tính w 1 , w


/>
i
2

?


MINH HOẠ Ý TƯỞNG
---------------------------------------------------------------------------------------------------------------------------------------

2u 2

u2'

4u1

u2

2t

2

2

t

1 e
2t

2t


, u1 0

1

.C

3u1

4 e

2t

ne

u1 '

om

Xét bài toán Côsi với hệ phương trình vi phân thường:

, u2 0

1

Zo

Với bước chia h = 0.5, tính xấp xỉ nghiệm u1, u2 tại t = 0.5; 1

nh

Vi
en

So sánh giá trò tính được với giá trò nghiệm chính xác:
1

u1 t

3

t0

1

e

t

e

2t

3

Si

Điểm chia:

e


5t

0

t1

1

; u2 t

0 .5

e

5t

3
t2

t

e

2

t e

2t

3

1.

u1 0

1

u 1 0 .5

?

u1 1

?

u2 0

1

u 2 0 .5

?

u2 1

?

SinhVienZone.com

2


t

u1

u2

0

1

1

0.5
1.0

/>

SƠ ĐỒ EULER
---------------------------------------------------------------------------------------------------------------------------------

du 1

f 1 ( t , u 1 , u 2 ),

dt

b

kiện


.C

& Điều

f 2 ( t , u 1 , u 2 ),

S/đồ Euler:

a

0

t

nh
Vi
en

0

w1

1, w2

i 1

i

w1


2

2
i

i

2t

i

i

w1 , w 2 i
i 1

w2

i

w2

hf

1

f1 t , u 1 , u 2

u2'


2

2t

4u1
u2
t
2t 4 e , u 2 0

     
f 2 t ,u1 ,u 2

SinhVienZone.com

1

u 2 (a )

Giả sử biết

3u1 2 u 2
2t
1 e , u1 0
      

VD:

đầu

b


hf 1 t i , w 1 , w 2 ,

Si

w1

u1 (a )

ne

2

dt

u1 '

t

Zo

du

a

om

Bài toán Côsi : Tìm hai hàm u1 = u1(t), u2 = u2(t) thoả

1


1

w1

1

1

0

2

n

1

i

i

ti , w1 , w 2

2

0

1

1


w1

2

1

w2

0

0 . 5 f 1 0 ,1 ,1

w2
1 0 . 5 f 2 0 ,1 ,1
/>
1
1


ÁP DỤNG : PHƯƠNG TRÌNH VI PHÂN CẤP 2
---------------------------------------------------------------------------------------------------------------------------------

f t, y, y' ,

y a

1

t


a

.C

y"

om

Bài toán Côsi cấp 2 (Ph/trình vi phân cấp 2 và đkiện đầu):

, y' a

2

f1 t , u 1 , u 2

y''

f t, y, y'

u2

nh
Vi
en

u1 '

Zo


ne

Đưa về bài toán Côsi cấp 1: Đổi biến u1(t)= y(t), u2(t)=y’(t)
u2'

Sơ đồ Euler:

1

w1

1

w2
SinhVienZone.com

0

u1 a

y a

u2 a

y' a

Si

Điều kiện đầu:


0

w1

0

w2

w1

1

0

0

0

2

1

w2

2

2

0


hf 1 t 0 , w 1 , w 2
hf

f 2 t, u1 , u 2

h

1

0

t0 , w1 , w 2

2

hf

2

2

a,

/>
1

,

2



VÍ DỤ
---------------------------------------------------------------------------------------------------------------------------------

Với h = 0.1, tính xấp xỉ giá trò y(0.2), y’(0.2) của nghiệm

om

bài toán sau bằng phương pháp Euler:
2t

.C
e

sin t , t

ne

y" 2 y ' 2 y

0 .4 , y ' ( 0 )

0 .6

Zo

y (0 )

0


u2'
0

w1

0

w2

u2

f1 t , u 1 , u 2
2t

2y

2 y' e

0 .4

Si

u1 '

nh
Vi
en

Đổi biến đưa về bài toán Côsi cấp 1: u1 = y(t), u2 = y’(t)


0 .6

SinhVienZone.com

1

w1

1

w2

&

sin t

0

w1

0

w2

u1 0
2u1

0 .4 , u 2 0
2u 2

0

e
0

hf 1 t 0 , w 1 , w 2
hf

0

2

0

t0 , w1 , w 2

2t

sin t

0 .6
f 2 t, u1 , u 2

0 .4

0 .1 f1 0 , 0 .4 , 0 .6

0 .6

0 .1 f 2 0 , 0 .4 , 0 .6


/>

BÀI TOÁN BIÊN
-------------------------------------------------------------------------------------------------------------------------

om

Bài toán biên cấp 2: Tìm hàm y = y(x) thoả phương trình
f ( x , y , y ' ),

a

x

b

r ( x ),

a

.C

y''

, y b

ne

y (a )


nh
Vi
en

Zo

Hay gặp: Bài toán biên tuyến tính cấp 2
y"

, y b

Si

y a

p(x) y' q(x) y

SinhVienZone.com

/>
x

b


MINH HOẠ
---------------------------------------------------------------------------------------------------------------------------------

x


y 0

1 y' 2 y
1, y 1

1

0

x

2

e

x

,0

x

1

.C

y''

om


Tính giá trò nghiệm y của bài toán biên tuyến tính cấp 2

ne

tại các điểm chia cách đều của [0, 1] với bước chia h =

nh
Vi
en

Zo

1/3 và xấp xỉ đạo hàm y’, y’’ bằng công thức hướng tâm

Điểm chia:

y 0

0

Si

x0

y0

SinhVienZone.com

1


x1

y

1
3

1 3

y1

x2

?

y

2
3

x3

2 3

y2

?

/>
y 1


1

y3

0


PHƯƠNG PHÁP SAI PHÂN HỮU HẠN
--------------------------------------------------------------------------------------------------------------------------------------

p(x) y' q(x) y
, y b

x

b *

.C

y a

r ( x ), a

om

BT biên tuyến tính

y"


ne

Chia [a, b] thành các đoạn nhỏ bằng nhau. Thay x = xk vào

y x2

y ' x1

y " ( x1 )

y x0

2h

Si

h

a= x0

nh
Vi
en

Zo

(*). Xấp xỉ y’(xk) , y’’(xk): công thức đạo hàm hướng tâm

y x2
SinhVienZone.com


x1

2 y x1
h

2

y ' x2

x2
y x0

y" ( x2 )

y x3

y x1
2h

x3
y x3

b= xn+1
2 y x2

h
/>
2


y x1


CÔNG THỨC LẮP GHÉP
------------------------------------------------------------------------------------------------------------------------------------

(a, b) – ứng n giá trò yk chưa biết

1

2
A

0


p2

2
2




p1



0


2

h q2

1

h

nh
Vi
en

h

1

2





0

1

0


SinhVienZone.com


0

1

2

pn 2

h r1

h

1

2

p1

h r2



2

0
h
2

h


2

2

p2 





y= [y1, … yn]T: Ay = b

ne

h q1

Si

2

h

n

Zo

2

k


.C

Ký hiệu pk = p(xk) … yk = y(xk), 1

Ma trận cấp n

om

n mốc xk

h r3

b



pn
2

h qn

2

1

h rn
2

h rn

/>
1

1

h
2

pn


LẬP BẢNG LẮP GHÉP
------------------------------------------------------------------------------------------------------------------------------------

p(x) y' q(x) y

y a

, y b

r ( x ), a

x

b *

om

BT biên tuyến tính


y"

ne

.C

 Chia [a, b] thành các đoạn nhỏ độ dài h. n điểm chia xk
pk = p(xk), qk = q(xk), rk = r(xk)

nh
Vi
en

 Lập bảng cột xk

n ẩn số yk

Zo

(không kể 2 đầu) – ứng với yk chưa biết

(đ/chéo chính), ak,k+1 (chéo trên), ak-1,k (dưới), bk

i

xk

pk

Si


 Đ/chéo akk: k = 1
qk

n; ak,k+1: k = 1
rk

akk

ak,k+1

Nghiệm yk

(n – 1), ak-1,k: k = 2
ak-1,k

bk

1
2
3

SinhVienZone.com

akk

/>
n
yk



VÍ DỤ
------------------------------------------------------------------------------------------------------------------------------------

hữu hạn với bước chia h = 0.2

.C

y"

om

Giải bài toán biên cấp 2 sau bằng phương pháp sai phân

6 điểm chia

Zo

n=5

nh
Vi
en

h = 0.2

2x

2 , y (1 )


3

1

ne

y (0 )

3 y' 2 y

Hệ phương trình 4 ẩn

ri

aii

Si

Ma trận cấp 4: Chéo chính akk – 4 phần tử; Chéo trên ak, k+1: 3
i

xi

pi

1

0 .2

3


2

0 .4

3
4

2

3 .4

2 . 08

1 .3

3

2

3 .8

2 . 08

1 .3

0 .7

0 . 152


0 .6

3

2

4 .2

2 . 08

1 .3

0 .7

0 . 168

0 .8

3

2

4 .6

2 . 08

0 .7

1 . 116


SinhVienZone.com

qi

ai,i+1

ai-1,i

bi
1 . 264

/>

KẾT QUẢ
------------------------------------------------------------------------------------------------------------------------------------

2 . 08

0

2 . 08

1 .3

Ab
0

SinhVienZone.com

0


0

1 . 642

0 .7
0

2 . 08

Zo

0 .7

0 . 625

Si

0

0

nh
Vi
en

0

ne


Ab

1

0

.C

0 .7

1 .3

om

Giải hệ bằng phép khử Gauss (làm tròn 3 chữ số lẻ):

0 .7

1 . 264

0

0 . 152

1 .3

0 . 168

2 . 08


1 . 116

0

0

0 . 608

1 . 006

1 .3

0

0 . 273

0 . 636

2 . 08

0 .7

y
1 .3
2 . 08

0 . 168
1 . 116

/>

0 . 593
0 . 736



×