Chương 6
GIẢI GẦN ĐÚNG PHƯƠNG TRÌNH VI PHÂN
I. Mở đầu. Các bài toán thường gặp có thể 2 loại:
* Bài toán Côsi : là bài toán dạng phương trình vi phân với
điều kiện bổ sung (điều kiện ban đầu) đã cho tại không quá
một điểm.
C - hằng số tích phân, phụ thuộc điều kiện ban đầu
- Mỗi giá trị của C 1 nghiệm xác định.
- Xác định C cần biết thêm 1 điều kiện ban đầu, ví dụ
Ví dụ: Cho phương trình vi phân cấp 1: y’ = 2x + 1; (a)
- Nghiệm tổng quát : y = x
2
+ x + C; (b)
y(x=1) = 2; (c) (b) C = 0;
Nghiệm của (a) là y = x
2
+ x thoả mãn (a) và (c).
Bài toán tìm hàm số y(x) thoả mãn p/t vi phân (a) và điều kiện
ban đầu (c) bài toán Côsi.
Bài toán Côsi đối với phương trình vi phân cấp 1:
- Cho khoảng [x
0
, X]
- Tìm hàm số y = y(x) xác định trên [x
0
, X] thoả mãn:
y’ = f(x,y);
Xxx
≤≤
0
y(x
0
) = η ;
( 1 )
( 2 )
Trong đó f(x, y) – hàm đã biết; η - số thực cho trước
( 2 ) - điều kiện Côsi hay điều kiện ban đầu.
* Bài toán biên.
Bài toán giải phương trình vi phân với điều kiện bổ sung được
cho tại nhiều hơn 1 điểm.
- Cho khoảng [a, b];
- Tìm hàm y = y(x) trên [a, b] thoả mãn:
Trong nhiều trường hợp giải gần đúng .
y’ + p(x)y’ +q(x,y) = f(x);
bxa
≤≤
( 3 )
với điều kiện y(a) = α; y(b) = β
( 4 )
II. Giải bài toán Côsi.
1. Phương pháp chuỗi Taylo.
y’ = f(x, y);
Xxx ≤≤
0
y(x
0
) = η ;
Khai triển nghiệm y(x) tại x = x
0
:
⋅⋅⋅+−+⋅⋅⋅+−+−+=
k
k
xx
k
xy
xx
xy
xx
xy
xyxy )(
!
)(
)(
!2
)("
)(
!1
)('
)()(
0
0
)(
2
0
0
0
0
0
( 5 )
);,())(,()('
0000
η
xfxyxfxy ==
( 6 )
( ) ( ) ( )
);(')(,)(,')(,)''(" xyxyx
y
f
xyx
x
f
xyxfyy ⋅
∂
∂
+
∂
∂
===
Tương tự y’” y
(3)
(x
0
) chuỗi ( 5 ).
Đã CM được rằng:
tổng S
n
(x) của n số hạng đầu của ( 5 ) nghiệm xấp xỉ của
( 1 ) , ( 2 ); n càng lớn độ chính xác càng cao.
0
xx −
đủ bé, chuỗi ( 5 ) nghiệm của ( 1 ), ( 2 )
Với
( ) ( )
);,(,,)("
0000
ηηη
xfx
y
f
x
x
f
xy ⋅
∂
∂
+
∂
∂
=
( 7 )
Ví dụ 1. Tìm nghiệm xấp xỉ của:
;'
yx
y
y
+
=
( a ) với điều kiện ban đầu: y(1) = 2; ( b )
Sử dụng chuỗi Taylo; x
0
= 1; y(x
0
) = η = 2.
;
3
2
21
2
)1(' =
+
=y
;
)()(
)()(
22
yx
yxyx
yx
yxyyyx
yx
y
y
+
−
′
=
+
′
+−
′
+
=
′
+
=
′′
;
27
4
)21(
2
3
2
1
)1(
2
−=
+
−⋅
=
′′
y
;)1(
81
2
)1(
27
2
)1(
3
2
2)(
32
⋅⋅⋅+−+−−−+= xxxxy
Tính y(x) tại x =1,1: 1,1 – 1 =0,1 bỏ qua các số hạng cuối:
;06584,2)1,0(
81
2
)1,0(
27
2
1,0
3
2
2)1,1(
32
≈+−⋅+=y
Ví dụ 2. Tìm nghiệm gần đúng của phương trình vi phân:
- x
0
= 0; y
0
= 1;
y’(0) = 2.0 – 1 + 1
2
= 0.
y’ = 2x – 1 + y
2
; ( a )
với điều kiện ban đầu: y(0) = 1.
( b )
- Đạo hàm ( a ):
;20.1.22)0(
=+=
′′
y
;22 yyy
′
+=
′′
( c )
- Đạo hàm ( c ):
;22
2
yyyy
′′
+
′
=
′′′
;42.1.20.2)0(
=+=
′′′
y
- Tính tiếp:
;84.1.22.0.626
)4(
=+=
′′′
+
′′′
=
yyyyy
-
;
3
1
3
2
1)(
432
⋅⋅⋅++++=
xxxxy
Nhận xét: - Phương pháp Taylo cho nghiệm xấp xỉ dưới dạng
chuỗi.
⋅⋅⋅+−+⋅⋅⋅+−+−+=
k
k
xx
k
xy
xx
xy
xx
xy
xyxy )(
!
)(
)(
!2
)("
)(
!1
)('
)()(
0
0
)(
2
0
0
0
0
0
( 5 )
2. Phương pháp Ơ le.
- Là phương pháp số;
- Xác định từng giá trị của y(x) theo giá trị cụ thể của x
bảng các giá trị x và y(x) tương ứng.
Nội dung: - Chia [x
0
, X] n đoạn bằng các nút x
i
cách đều.
x
i
= x
0
+ ih; i = 0, 1, 2, . . ., n;
;
)(
0
n
xX
h
−
=
x
i
Lưới sai phân trên [x
0
, X]
x
i
– nút của lưới; h - bước của lưới: h = const;
- y(x) nghiệm đúng của (1), (2)
-
Mục đích: tìm giá trị gần đúng của y(x) chỉ tại các nút x
i
,
không phải tại mọi
[ ]
.,
0
Xxx
∈
Thành lập công thức tính:
- y(x
i
) – giá trị đúng của y(x) tại x
i
;
- u
i
– giá trị gần đúng tính được của y(x
i
);
- Giả sử đã biết u
i
, cần tính u
i+1
tại x
i+1
.
y’ = f(x, y);
Xxx ≤≤
0
y(x
0
) = η ;
- Khai triển Taylo tại x
i
; h đủ nhỏ bỏ qua các số hạng cuối.
);)(()()(
11 iiiii
xxxyxyxy −
′
+=
++
;)(
1
hxx
ii
=−
+
( )
;)(,)(
iii
xyxfxy =
′
( )
;)(,.)()(
1 iiii
xyxfhxyxy +=
+
- Điều kiện ban đầu u
0
= η
( )
;,.
0001
uxfhuu +=
( )
;,.
1112
uxfhuu
+=
. . . . . . . . . . . . . . . . .
( )
;,.
1 iiii
uxfhuu +=
+
);)(()()(
iii
xxxyxyxy −
′
+=
( 8 )
biết u
i
-
( )
;,.
1 iiii
uxfhuu +=
+
( 9 )
Nhận xét:
-
Đơn giản, không phải giải p/trình nào, thuận tiện
lập trình giải trên máy tính
- Độ chính xác không cao.
(8 a)
- Đánh giá sai số: Sau khi tính được u tại x
i
với bước h: u(x
i
,h)
tính u(x
i
, h/2) nghiệm sai số :
Các bước tính:
Cho y’ = f(x, y);
;
0
Xxx ≤≤
y(x
0
) = η ;
- Ấn định số khoảng chia n;
- Tính h = (x – x
0
)/n ;
- Tính x
i
= x
0
+ ih;
- Đặt u
0
= η
- Tính u
i+1
= u
i
+ h.f(x
i
,u
i
) với i = 0, 1, 2, . . ., n ;
- Đặt u(x
i
, h) = u
i
; thay h = h/2 tính lại;
- Đặt u(x
i
,h/2) = u
i
; u(x
i
, h/2) ~ y(x
i
)
- Sai số:
;
2
,),()(
2
,
−≈−
h
xuhxuxy
h
xu
iiii
;
2
,),()(
2
,
−≈−
h
xuhxuxy
h
xu
iiii
(10)