MỞ ĐẦU Nhiều bài toán kỹ thuật qui về việc t×m nghiệm của phương trình vi phân thoả mãn điều kiện nào đó điều kiện đầu , điều kiện biên … nói chung giải đúng là khó nên thường giải gầ
Trang 1Chương 6 GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH
VI PHÂN THƯỜNG
6.1 MỞ ĐẦU
Nhiều bài toán kỹ thuật qui về việc t×m nghiệm của phương trình vi phân thoả
mãn điều kiện nào đó (điều kiện đầu , điều kiện biên … ) nói chung giải đúng là khó nên thường giải gần đúng
Có 2 phương pháp giải gần đúng :
phương pháp này thưòng ít dùng hơn
- Phương pháp số : Ta tìm nghiệm tại các điểm xo<x1,…<xn ≤ x tức là đúng
nghiệm ở giá trị trước để tính giá trị sau : yk =φ(yk-1,…yk-v )
Có thể có phương pháp 1 bước và phương pháp đa bước : phương pháp 1 bước tính yk qua yk-1 ;phương pháp đa bước tính thông qua yk-1…yk-v
Trong phạm vi chương này ta xét 2 loại bài toán :
1 – Bài toán giá trị ban đầu còn gọi là bài toán Côsi :
Tìm y(x) thoả mãn 2 điều kiện : +y’=f(x,y) x0 < x <x
+y(x0) = y0
2 – Bài toán biên tuyến tính : +Biên 2 điểm a , b
⎪
⎩
⎪
⎨
⎧
= +
= +
= +
+
2 2
2
1 1
1
) ( ' ) (
) ( ' ) (
) ( ) ( ' ) (
"
γ β
α
γ β
α
b y b
y
a y a
y
x f y x q y x p y
6.2 PHƯƠNG PHÁP GIẢI TÍCH (PHƯƠNG PHÁP CHUỖI NGUYÊN )
Xét bài toán Côsi :
y’ = f(x,y) ; x0 < x < x (7-1 )
y(x0) = y0 (7-2)
Trong đó hàm f(x,y) giải tích trong lân cận (x0,y0) tức là :
f(x,y) =∑∞ a
=0
, j
i
i,j(x-x0)i(y-y0)j
Khi đó nghiệm đúng y+(x)có thể khai triển thành chuổi Taylo
y*(x) = ∑
=
n
) ( )
i
x
y+i o
(x-xo)i
Các đạo hàm y+(i)(xo) có thể tính được dựa vào (7-1) và (7-2)
y(xo) = yo
Trang 2y’(x) = f(x,y) ⇒ y’(xo) =f(xo,yo)
y” =
x
f
∂
∂
+
y
f
∂
∂
.y’
y”(xo) =
x
f
∂
∂
(xo,yo) +
y
f
∂
∂
(xo,yo).f(xo,yo) Và cứ tiếp tục như vậy Khi tính như vậy ta sẽ tìm được chuỗi Taylo và đó chính là nghiệm của phương trình vi phân
Ví dụ :
⎩
⎨
⎧
=
= 1 ) 0 (
'
y
y x y
Ta có : y(0) =1
y’(o) =0 – 1 =-1
y” = 1-y’ ⇒ y”(0) =2
, = - y ⇒ (0) =-2
Từ đây ta suy ra ; y(k)(0) = (-1)k.2 với k≥2 Do đó :
yt(x) = 1-x +2 ∑∞
=2
) 1 (
k
x k
k
=0
) (
k
x k
= 2e-x + x –1
Đây là nghiệm dạng chuỗi đúng
Ví dụ 2 :
⎪⎩
⎪
⎨
⎧
= +
= 2 ) 1 (
'
y
x y
y y
2 1
2 + =
3
2
⎠
⎞
⎜⎜
⎝
⎛
+ y
x
) (
)' ( ' ) (
y x
y x y y y x
+
+
−
) (
'
y x
y xy
+
−
) 2 1 (
2 3
2 1 +
−
=
27 4
−
Tiếp tục ta tính các các đạo hàm bậc cao :
y (1) =''
27
4 … vv
Ta có kết quả :
Trang 3y(x) ≈ 2+
3
-27
2 (x-1)2 +
27
2 (x-1)2+
81
2 (x-3)3 + …
6.3 PHƯƠNG PHÁP SỐ
6.3.1 Phương pháp cấp 1 – Phương pháp Ơle
Ta chia đoạn (x0,x) thành n đoạn nhỏ bằng nhau bởi các điểm chia xi, bước các điểm chia là h, h>0
h=
n
x
x− 0 ;
xi = x0 +i.h ; i= 0,1,…,n
Nếu y(x) là nghiệm đúng của phương trình (7.1),(7.2) ta tìm cách tính gần đúng giá trị y(x) chỉ tại các nút xi mà thôi, rồi từ đó cho phép ta dùng các giá trị gần đúng đó Gọi ui là giá trị gần đúng của y(xi) là gia trị ù cần tìm
Nếu đã biết ui tại xi ta tính ui+1 tại nút xi+1 Ta khai triển Taylo hàm y(x) tại xi :
y (x) =y(xi) + y’(xi).(x-xi) +
! 2
) ( ,
i
c
y (x-xi)2
ci = xi + θ (x-xi) ; 0 < θ <1
Thay: x = xi+1 = xi + h ; y’(xi) = f(xi,y(xi)) theo (7.1)
Ta có:
y (xi +1) = y(xi) + h.f(xi,y(xi)) +
2
2
h y (c,
i) (7.3) Khi h bé thì số hạng cuối bé ta bỏ qua khi đó ta thay giá trị y(xi) ≈ ui đã có thì ta tính được ui+1 ≈ y(xi +1) là:
ui+1 ≈ ui +h.f(xi,ui) (7.4)
Dựa vào điều kiện (7.2) ta chọn u0 = y0 (7.5) với i=0
Ta dùng (7.4) tính được u1 và từ đó ta tính được các giá trị khác Phương pháp tính ui trên gọi là phương pháp Ơle
Tóm lại phương pháp Ơle: ui+1 = ui +h(f(xi,ui))
xn = x0 +n.h Sai số cục bộ của phương pháp:
,
2
) (
h c
y i
Phương pháp này có độ chính xác thấp
Ví dụ: y’ = y -
y
x
2 ; 0 < ≤ 1 y(0) = 1
Trang 4Ta có: f(x,y) = y -
y
x
2 ; x0 = 0 ; x =1 ; y0 =1
Lưới sai phân: xi =i.h ; h =
n
1
Công thức Ơle cho bài toán là:
ui+1 = ui + h.(ui -
i
i
u
x
2 )
u0 = y0 = 1 Nếu ta chia n =10 thì kết quả tính như bảng sau:
(Trong bảng có cho giá trị đúng yi vì y = 2x+1 )
6.4.CÁC PHƯƠNG PHÁP ĐA BƯỚC
Xét bài toán côsi :
y’=f(x,y) xo ≤ x ≤ x
y(xo) = yo (y,f ∈ Rm)
Tích phân 2 vế từ xn đến xn+1 được:
y” =yn + ∫+1 '( )
n
n
x
x
dx x y
Đặt
i
n
l
x
x − =t , có :
yn+1 =yn + h y' (x t.h)dt (*)
1
+
∫
Trang 5Aùp dụng đa thức nội suy Niutơn lùi cho y’n+1 =y’(xn+t.h) ta có:
y’n+t =y’n +
! 1
t ∆y’n-1 +
! 2
) 1 (t+
t ∆2y’n-2 +
!
) 1 ) (
1 (
q
q t t
t + + − ∆qy’n-q Aùp dụng tính chất sai phân và ký hiệu sai phân lùi ta có :
∇y’n =∇y’n-1 = y’1 – y’n-1
y’n+t =y’n +
!
1
t ∇y’n +
! 2
) 1 (t+
!
) 1 ) (
1 (
q
q t t
t + + − ∇qy’n (**)
(∇ky’n =∇ky’n-k)
Xuất phát từ xn+1 (thay n = n+1 và t = t-1 ) ta có :
y’n+t = y’n+1 +
! 1 1
−
t ∇y’n+1 +
! 2
) 1 (t− t ∇2y’n+1 + … +
!
) 2 ) (
1
(
q
q
t
t
t − + − ∇qy’n+1
Thay (**) vào (*) ta có công thức :
=
q
i i
a
0
iy’n (***)
Trong đó ao =1 ; ai = ∫1
) 1 ) (
1 (
i
i t t
Tính các hệ số ta có :
yn+1 =yn + h[1+
2
1 ∇ +
2
5∇2 +
8
3∇3 +
720
!
25 ∇4 +… ] y’n
Nếu q = 0 ta có lại công thức Euler :
yn+1 = yn + h f(xn,yn)
Từ công thức (***) ta tính được các giá trị tiếp theo của y tại nút
Sai số của công thức là :
Rq = liq+2∫1
) ) (
1 ( +
+ +
q
q t t
t y(q+2)(ξ)dt Hay : Rq = hq+2y(q+2)(ξ)
-Phương pháp tiệm cận sai số : Khì (x,y) khả vi , liên tục và y(x) có đạo hàm đến cấp 3 bị chặn thì tồn tại hàm w(x) liên tục không phụ thuộc vào bước h sao cho :
ui – y(xi) = h.w(xi) +o(h2) (*)
Trang 6Giả sử với cùng bài toán ta tính theo ơle 2 lần: Lần 1 với bước h ta được giá trị gần đúng tại xi là u(xi,{
2
h}) , lần 2 với bước
2
h ta được giá trị gần đúng tại xi là u(xi,{
2
h}) theo (*) ta có :
u(xi,{h}) – y(xi) = h w(xi) + o(h2) (**)
u(xi,{
2
h}) – y(xi) =
2
h w(xi) + o(h2) (***)
Ta khử w(xi) khỏi 2 đẳng thức trên ta có :
[2u(xi,
2
h) - u(xi,h)] – y(xi) = o(h2)
Vì o(h2) rất bé , là sai số của phép xác định ta có :
y(xi) = 2u(xi,
2
h) - u(xi,h) (***)
Ta có nghiệm chính xác hơn
Và như vậy có phương pháp 2 bước ( Euler )
Ví dụ : cũng giải bài toán y’ =
y-y
x
2 ; với 0 ≤ x ≤ 1 y(0) =1
Ta có bảng kết quả :
i,
2
y(xi)