Tải bản đầy đủ (.ppt) (29 trang)

Giải gần đúng phương trình vi phân

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 (85.18 KB, 29 trang )


Chöông 6
GIAÛI GAÀN ÑUÙNG
PHÖÔNG TRÌNH VI PHAÂ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 y
0
y’ = f(x, y), ∀x ∈ [a,b]
y(a) = y
0
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
x
o
= a, x
1
= x
0
+h, ... , x


k
= x
0
+ kh, ... , x
n
= b
Nghiệm gần đúng của bài toán là dãy {y
k
} gồm
các giá trò gần đúng của hàm tại x
k

Ta có y
k
≈ y(x
k
) , k =0, n

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(x
k+1
) = y(x
k
) + (x
k+1
-x
k
) y’(x

k
) + (x
k+1
-x
k
)
2
y’’(ξ
k
)/2
với ξ
k
∈ (x
k
, x
k+1
)
Công thức Euler :
y
k+1
= y
k
+ h f(x
k
, y
k
) , k = 0, n-1
với h = x
k+1
- x

k

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 – x
2
+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.5e
x
giải
ta có h = 0.2
x
0
= 0, x
1
= 0.2, x
2
= 0.4, x
3
= 0.6, x
4
= 0.8, x
5
= 1


Coâng thöùc Euler
y
0
= 0.5
y
k+1
= y
k
+ h f(x
k
, y
k
) = y
k
+ 0.2 (y
k
- x
k
2
+1)

0.18268312.64085912.45817615
0.13874952.12722951.988480.84
0.09854061.64894061.55040.63
0.06208771.21408771.1520.42
0.02929860.82929860.80.21
00.50.500
|y(x
k
) - y

k
|y(x
k
)y
k
x
k
k

A = 0
B = 0.5
B = B + 0.2(B – A
2
+ 1) : A=A+0.2:
(A+1)2-0.5eA:Ans-B
* 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. Coõng thửực Euler caỷi tieỏn :
y
k+1
= y
k
+ (k
1
+k
2
)/2 k = 0,1, ..., n-1
k
1

= hf(x
k
, y
k
),
k
2
= hf(x
k
+h, y
k
+ k
1
)
vụựi h = x
k+1
- x
k

Ví dụ : Dùng công thức Euler cải tiến tìm nghiệm
gần đúng của bài toán Cauchy
y’ = y – x
2
+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.5e

x
giải
ta có h = 0.2
x
0
= 0, x
1
= 0.2, x
2
= 0.4, x
3
= 0.6, x
4
= 0.8, x
5
= 1

Coâng thöùc Euler caûi tieán
y
o
= 0.5
y
k+1
= y
k
+ (k
1
+k
2
) /2

k
1
= 0.2(y
k
- x
k
2
+1)
k
2
= 0.2(y
k
+ k
1
– (x
k
+0.2)
2
+1)
0.02322.64085912.617687615
0.01702.12722952.11023570.84
0.01171.64894061.63724240.63
0.00721.21408771.206920.42
0.00330.82929860.8260.21
00.50.500
|y(x
k
) - y
k
|y(x

k
)y
k
x
k
k

A = 0 (x
k
)
B = 0.5 (y
k
)
C = 0.2(B – A
2
+ 1) :
D = 0.2(B + C - (A+0.2)
2
+ 1):
B=B + (C+D)/2:
A=A+0.2:
(A+1)
2
-0.5e
A
:Ans-B

×