Professional Documents
Culture Documents
Phuong-Phap-Tinh - Dau-The-Phiet - Phuong-Trinh-Vi-Phan - (Cuuduongthancong - Com)
Phuong-Phap-Tinh - Dau-The-Phiet - Phuong-Trinh-Vi-Phan - (Cuuduongthancong - Com)
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 1 / 54
The motion of a swinging pendulum under certain simplifying assumptions is described by
the second-order differential equation
d2θ g
+ sin θ = 0,
Ta xét bài toán cơ bản về dao động
dt của con lắc đơn
L 2
where L is the length of the pendulum, g ≈ 32.17 ft/s2 is the gravitational constant of the
earth, and θ is the angle the pendulum makes with the vertical. If, in addition, we specify
xác định bởi phương trình
the position vi phân
of the pendulum when thebậc haiθ(t ) = θ , and its velocity at that
motion begins, 0 0
point, θ ′ (t0 ) = θ0′ , we have what is called an initial-value problem.
For small values of θ, the approximation θ ≈ sin θ can be used to simplify this problem
to the linear initial-value problem
d 2θ g
d2θ g+ θ(t sin
+ θ = 0,
θ=0 ′ ′
dt 2
dt 2 L L ) = θ , θ (t ) = θ . 0 0 0 0
This problem can be solved by a standard differential-equation technique. For larger values
of θ, the assumption that θ = sin θ is not reasonable so approximation methods must be
used. A problem of this type is considered in Exercise 8 of Section 5.9.
với L là chiều dài con lắc, g là hằng số hấp dẫn của trái đất, θ là góc tạo
Any textbook on ordinary differential equations details a number of methods for ex-
plicitly finding solutions to first-order initial-value problems. In practice, however, few of
bởi con lắc và trục thẳng đứng. the problems originating from the study of physical phenomena can be solved exactly.
259
Ta xét vị trí ban đầu của con lắc khi bắt đầu dao động là θ(t0 ) = θ0 và
vận tốc ban đầu tại điểm này là θ0 (t0 ) = θ00 , ta có bài toán giá trị đầu.
Copyright 2010 Cengage Learning. All Rights Reserved. May not be copied, scanned, or duplicated, in whole or in part. Due to electronic rights, some third party content may be suppressed from the eBook and/or eChapter(s).
Editorial review has deemed that any suppressed content does not materially affect the overall learning experience. Cengage Learning reserves the right to remove additional content at any time if subsequent rights restrictions require it.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 2 / 54
Với giá trị θ nhỏ, ta xấp xỉ θ ≈ sin θ, khi đó bài toán trở thành tuyến tính
d 2θ g
+ θ = 0, θ(t0 ) = θ0 , θ0 (t0 ) = θ00
dt 2 L
Bài toán này có thể giải bằng các phương pháp quen thuộc. Tuy nhiên với
giá trị θ lớn, ta không thể giả thiết θ = sin θ. Để tìm nghiệm cho bài toán
này, ta cần sử dụng các phương pháp xấp xỉ nghiệm.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 3 / 54
Bài toán Cauchy Đặt vấn đề
Ta xét bài toán giá trị đầu bậc nhất, bài toán Cauchy,
0
y (t) = f (t, y (t)), a 6 t 6 b,
(1)
y (a) = α
với y = y (t) là hàm cần tìm, khả vi trên đoạn [a, b], y0 là giá trị ban đầu
cho trước của y (t) tại t = a.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 4 / 54
Bài toán Cauchy Đặt vấn đề
Đối với bài toán Cauchy (1) ta chỉ có thể tìm được nghiệm đúng của một
số phương trình đơn giản, còn đối với trường hợp f (x, y ) có dạng bất kỳ
thì nói chung không có phương pháp giải.
Ngoài ra, trong những trường hợp có thể tìm ra nghiệm đúng của bài toán
Cauchy (1) quá phức tạp thì người ta cũng ít dùng.
Vì vậy, việc tìm những phương pháp giải gần đúng bài toán Cauchy có vai
trò rất quan trọng trong thực tế.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 5 / 54
Bài toán Cauchy Công thức Euler
Để tìm nghiệm gần đúng của bài toán (1) ta chia đoạn [a, b] thành n đoạn
nhỏ bằng nhau với
b−a
h= .
n
Khi đó các điểm nút là t0 = a, tk = t0 + kh, k = 0, 1, 2, . . . , n, tn = b.
Giả sử y (t) là nghiệm duy nhất của bài toán (1), có đạo hàm đến cấp 2
liên tục trên đoạn [a, b].
Khi đó với mỗi k = 0, 1, 2, . . . , n − 1 theo công thức khai triển Taylor trên
đoạn [tk , tk+1 ], ta có
(tk+1 − tk )2
y (tk+1 ) = y (tk ) + y 0 (tk )(tk+1 − tk ) + y 00 (ξk ) ,
2
với ξk ∈ (tk , tk+1 ).
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 6 / 54
Bài toán Cauchy Công thức Euler
h2 00
y (tk+1 ) = y (tk ) + h.f (tk , yk ) + y (ξk )
2
y0 = α
yk+1 ≈ yk + hf (tk , yk ),
với k = 0, 1, 2, . . . , n − 1.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 7 / 54
2 y(t 2)
Bài toán Cauchy Công thức Euler
y(t 1) y(t 1)
y(t 0) ! α y(t 0) ! α
Ý nghĩa hình học của phương
t ! a t t pháp t a! bEuler
. . t. ! t tt . . . 0 1 2 0 N 1 2 tN ! b t
Từ (t0 , y0 ) = (a, α) thuộc đường cong y = y (t), kẻ tiếp tuyến với đường
Example 1 Euler’s method1 wasEuler’s
Example used 0inmethod
the first illustration with h = 0.5 to approximate
with h = 0.5 the solution
cong (cóto hệ số góc
the initial-value (a) =wasfproblem
làtheyinitial-value
problem
to
used in the
(a, α)). first illustration
Đường tiếp tuyến tosẽapproximate
cắt t =thetsolution
1 tại
y1 chính là giá trị gần đúng của y (t 1 ).
y′ = y − t 2 + 1, 0′ ≤ t ≤ 2,2 y(0) 1, = 0.5.
Tại (t1 , y1 ), ta kẻ đường thẳng vớiy =hệy −sốt +góc 0≤
f (tt 1≤, 2,y1 )y(0)
cắt= 0.5.
t = t2 tại y2 là
giá trị gần đúng của
Use Algorithm 5.1 UseyAlgorithm
with (t
N 2=).
10 to5.1
determine
with N = approximations,
10 to determine and compare these and
approximations, withcompare
the these with the
exact values given exact = (t +
by y(t)values 1)2 −
given by0.5e
t
y(t) .= (t + 1)2 − 0.5et .
ng.com https://fb.com/tailieudientucntt
Solution With N =Solution
10 we have ==
Withh N 0.2, = have
10tiwe h 0==0.2,
0.2i, w 0.5,ti and
= 0.2i, w0 = 0.5, and
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 8 / 54
Bài toán Cauchy Công thức Euler
Ví dụ
Sử dụng phương pháp Euler để xấp xỉ nghiệm của bài toán Cauchy
0
y (x) = y − t 2 + 1, 0 6 t 6 2,
y (0) = 0.5
với n = 10. Tại những điểm nút chia so sánh giá trị gần đúng với giá trị
chính xác, biết nghiệm chính xác của bài toán là y (t) = (t + 1)2 − 0.5e t .
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 9 / 54
Bài toán Cauchy Công thức Euler
Giải.
2−0
Với n = 10 thì h = = 0.2, tk = 0.2k, y0 = 0.5.
10
Công thức tính nghiệm gần đúng là
với k = 0, 1, . . . , 9.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 10 / 54
Bài toán Cauchy Công thức Euler
Giải.
2−0
Với n = 10 thì h = = 0.2, tk = 0.2k, y0 = 0.5.
10
Công thức tính nghiệm gần đúng là
với k = 0, 1, . . . , 9.
Bấm máy. Y = Y + 0.2(Y − X 2 + 1) : X = X + 0.2
1 CALC Y = 0.5 =, X = 0 =
2 Y =, X = 0.2 =
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 10 / 54
Bài toán Cauchy Công thức Euler
k tk yk y (tk ) |y (tk ) − yk |
0 0.0 0.5000000 0.5000000 0.0000000
1 0.2 0.8000000 0.8292986 0.0292986
2 0.4 1.1520000 1.2140877 0.0620877
3 0.6 1.5504000 1.6489406 0.0985406
4 0.8 1.9884800 2.1272295 0.1387495
5 1.0 2.4581760 2.6408591 0.1826831
6 1.2 2.9498112 3.1799415 0.2301303
7 1.4 3.4517734 3.7324000 0.2806266
8 1.6 3.9501281 4.2834838 0.3333557
9 1.8 4.4281538 4.8151763 0.3870225
10 2.0 4.8657845 5.3054720 0.4396874
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 11 / 54
Bài toán Cauchy Công thức Euler
Khi đó với y (t) là nghiệm chính xác của bài toán giá trị đầu
y 0 (t) = f (t, y ), a ≤ t ≤ b, y (a) = α và y0 , y1 , . . . , yn là nghiệm
xấp xỉ của bài toán cho bởi công thức Euler, khi đó với mỗi k = 0, 1, . . . , n
hM L(tk −a)
|y (tk ) − yk | ≤ [e − 1]
2L
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 12 / 54
Bài toán Cauchy Công thức Euler cải tiến
yk + hf (tk , yk ).
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 13 / 54
Bài toán Cauchy Công thức Euler cải tiến
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 14 / 54
Bài toán Cauchy Công thức Euler cải tiến
Ví dụ
Sử dụng phương pháp Euler cải tiến để xấp xỉ nghiệm của bài toán Cauchy
0
y (t) = y − t 2 + 1, 0 6 t 6 2,
y (0) = 0.5
với n = 10. Tại những điểm nút chia so sánh giá trị gần đúng với giá trị
chính xác, biết nghiệm chính xác của bài toán là y (t) = (t + 1)2 − 0.5e t .
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 15 / 54
Bài toán Cauchy Công thức Euler cải tiến
2−0
Với n = 10 thì h = = 0.2, y0 = 0.5. Công thức tính nghiệm gần
10
đúng là
f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))
yk+1 = yk + h
2
với k = 0, 1, . . . , 9.
Bấm máy.
Y = Y + 0.1 × (Y − X 2 + 1 + Y + 0.2(Y − X 2 + 1) − (X + 0.2)2 + 1) :
X = X + 0.2
1 CALC Y = 0.5 = X = 0 =
2 Y =, X = 0.2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 16 / 54
Bài toán Cauchy Công thức Euler cải tiến
k tk yk y (tk ) |y (tk ) − yk |
0 0.0 0.5 0.5000000 0.0000000
1 0.2 0.826 0.8292986 0.0032986
2 0.4 1.20692 1.2140877 0.0071677
3 0.6 1.6372424 1.6489406 0.0116982
4 0.8 2.110235728 2.1272295 0.0169938
5 1.0 2.617687588 2.6408591 0.0231715
6 1.2 3.149578858 3.1799415 0.0303627
7 1.4 3.693686206 3.7324000 0.0387138
8 1.6 4.235097172 4.2834838 0.0483866
9 1.8 4.755618549 4.8151763 0.0595577
10 2.0 5.23305463 5.3054720 0.0724173
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 17 / 54
Bài toán Cauchy Công thức Euler cải tiến
Bài tập
Sử dụng công thức Euler và công thức Euler cải tiến để xấp xỉ nghiệm của
các bài toán sau
1 y 0 = te 3t − 2y , 0 ≤ t ≤ 1, y (0) = 0 với h = 0.5.
2 y 0 = cos 2t + sin 3t, 0 ≤ t ≤ 1, y (0) = 1 với h = 0.25
3 y 0 = 1 + y /t, 1 ≤ t ≤ 2, y (1) = 2 với h = 0.25.
1+t
4 y0 = , 1 ≤ t ≤ 2, y (1) = 2, với h = 0.25
1+y
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 18 / 54
Bài toán Cauchy Công thức Runge-Kutta
h2 00 h3
y (tk+1 ) = y (tk ) + hy 0 (tk ) + y (tk ) + y 000 (ξ)
2 3!
h2 0 h3
= y (tk ) + hf (tk , y (tk )) + f (tk , y (tk )) + y 000 (ξ)
2 3!
Ta lại có
∂f ∂f
f 0 (tk , y (tk ) = (tk , y (tk ) + (tk , y (tk )).y 0 (tk )
∂t ∂y
h2 00 h3
y (tk+1 ) = y (tk ) + hy 0 (tk ) + y (tk ) + y 000 (ξ)
2 3!
h2 0 h3
= y (tk ) + hf (tk , y (tk )) + f (tk , y (tk )) + y 000 (ξ)
2 3!
Ta lại có
∂f ∂f
f 0 (tk , y (tk ) = (tk , y (tk ) + (tk , y (tk )).y 0 (tk )
∂t ∂y
Chọn a1 , α, β thỏa
h h
1 = a1 , = a1 α, f (tk , y (tk )) = a1 β
2 2
ta được
h h
a1 = 1, α= , β= f (tk , y (tk ))
2 2
Vậy
h h
y (tk+1 ) ≈ y (tk ) + hf tk + , y (tk ) + f (tk , y (tk )
2 2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 20 / 54
Bài toán Cauchy Công thức Runge-Kutta
y0 = α
h h
yk+1 = yk + h f tk + , yk + f (tk , yk )
2 2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 21 / 54
Bài toán Cauchy Công thức Runge-Kutta
Nếu ta sử dụng
a1 f (t, y ) + a2 f (t + α, y + βf (t, y ))
1
và đồng nhất các hệ số, ta có a1 = a2 = và α = β = h. Ta có công
2
thức Euler cải tiến
Công thức Euler cải tiến
y0 = α
h
yk+1 = yk + [f (tk , yk ) + f (tk+1 , yk + hf (tk , yk ))]
2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 22 / 54
Bài toán Cauchy Công thức Runge-Kutta
Công thức Runge-Kutta có độ chính xác cao hơn công thức Euler, vì dùng
khai triển Taylor nghiệm y = y (x) của bài toán (1) với nhiều số hạng hơn.
Sử dụng quá trình xây dựng trên đối với công thức Taylor bâc cao hơn, ta
có thể xây dựng Phương pháp Runge - Kutta với các bậc cao, và phổ biến
nhất là bậc 4
1
yk+1 = y (tk + h) ≈ yk + (K1k + 2K2k + 2K3k + K4k )
6
K1k = hf (t
k , yk )
K1k
h
K2k = hf tk + , yk +
2 2
K2k
h
K3k
= hf tk + , yk +
2 2
Kk
k
= hf (tk + h, yk + K3 )
4
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 23 / 54
Bài toán Cauchy Công thức Runge-Kutta
Ví dụ
Sử dụng phương pháp Runge-Kutta bậc 4 để xấp xỉ nghiệm của bài toán
Cauchy 0
y (x) = y − t 2 + 1, 0 6 t 6 2,
y (0) = 0.5
với n = 10. Tại những điểm nút chia so sánh giá trị gần đúng với giá trị
chính xác, biết nghiệm chính xác của bài toán là y (t) = (t + 1)2 − 0.5e t .
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 24 / 54
Bài toán Cauchy Công thức Runge-Kutta
Giải.
2−0
Với n = 10 thì h = = 0.2, tk = 0.2k, y0 = 0.5. Ta có
10
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 26 / 54
Bài toán Cauchy Công thức Runge-Kutta
1
y (0.2) ≈ y1 = y0 + (K10 + 2K20 + 2K30 + K40 ) =
6
1
= 0.5 + (A + 2B + 2C + D) ≈ 0.8292933
6
Shift - STO - F
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 27 / 54
Bài toán Cauchy Công thức Runge-Kutta
k tk yk y (tk ) |y (tk ) − yk |
0 0.0 0.5000000 0.5000000 0.0000000
1 0.2 0.8292933 0.8292986 0.0000053
2 0.4 1.2140762 1.2140877 0.0000114
3 0.6 1.6489220 1.6489406 0.0000186
4 0.8 2.1272027 2.1272295 0.0000269
5 1.0 2.6408227 2.6408591 0.0000364
6 1.2 3.1798942 3.1799415 0.0000474
7 1.4 3.7323401 3.7324000 0.0000599
8 1.6 4.2834095 4.2834838 0.0000743
9 1.8 44.8150857 4.8151763 0.0000906
10 2.0 5.3053630 5.3054720 0.0001089
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 28 / 54
Bài toán Cauchy Công thức Runge-Kutta
Bài tập
Sử dụng công thức Runge - Kutta bậc 4 để xấp xỉ nghiệm cho các phương
trình sau
y y 2
1 y0 = − với 1 ≤ t ≤ 2, y (1) = 1 và h = 0.1, nghiệm chính
t t
xác y (t) = t/(t + ln t).
y y 2
2 y0 = 1 + + với 1 ≤ t ≤ 3, y (1) = 0 và h = 0.2, nghiệm chính
t t
xác y (t) = t tan(ln t).
3 y 0 = −5y + 5t 2 + 2t với 0 ≤ t ≤ 1, y (1) = 1/3 và h = 0.1, nghiệm
1
chính xác y (t) = t 2 + e −5t .
3
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 29 / 54
Hệ phương trình vi phân
H
Chia đoạn [t0 , t0 + H] thành n đoạn nhỏ bằng nhau có độ dài h = . Các
n
điểm chia là tk = t0 + kh, k = 0, 1, . . . , n. Giá trị gần đúng tại điểm tk của
x(t) là xk = x(tk ), của y (t) là yk = y (tk )
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 30 / 54
Hệ phương trình vi phân Công thức Euler
x(tk ) ≈ xk = xk−1 + hf (tk−1 , xk−1 , yk−1 )
y (tk ) ≈ yk = yk−1 + hg (tk−1 , xk−1 , yk−1 )
k = 1, 2, . . . , n
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 31 / 54
Hệ phương trình vi phân Công thức Euler cải tiến
K1x = hf (tk−1 , xk−1 , yk−1 )
K1y = hg (tk−1 , xk−1 , yk−1 )
K2x = hf (tk−1 + h, xk−1 + K1x , yk−1 + K1y )
K2y = hg (tk−1 + h, xk−1 + K1x , yk−1 + K1y )
1
x(tk ) ≈ xk = xk−1 + (K1x + K2x )
2
1
y (tk ) ≈ yk = yk−1 + (K1y + K2y )
2
k = 1, 2, . . . , n
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 32 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
Ví dụ
Cho hệ 0
x (t) = tx − 2y + 1
0
y (t) = 2x + ty + sin t
, t>1
x(1) = 0.25
y (1) = 0.75
Sử dụng công thức Euler cải tiến để xấp xỉ giá trị của x(t) và y (t) tại
t = 1.2 với bước h = 0.2.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 34 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
1
x(1.2) ≈ x1 = x0 + (K1x + K2x ) = 0.1154
2
1
y (1.2) ≈ y1 = y0 + (K1y + K2y ) = 1.2326
2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 35 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
được chuyển về hệ phương trình vi phân cấp 1 bằng cách đặt y (t) = x 0 (t)
0
x (t) = f (t, x(t), y (t)) = y
0
y (t) = g (t, x(t), y (t)) = F (t, x, y )
x(t0 ) = α
y (t0 ) = β
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 36 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
Ví dụ
Cho phương trình vi phân cấp 2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 37 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
Đặt y (t) = x 0 (t). Phương trình đã cho được biến đổi thành hệ
0
x (t) = f (t, x(t), y (t)) = y
0
y (t) = g (t, x(t), y (t)) = −2x + 2y + e 2t sin t
x(0) = −0.4
y (0) = −0.6
Với h = 0.1 ta có
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 38 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
K1x = h.yk−1
K1y = h(−2x 2tk−1 . sin t
k−1 + 2yk−1
+e k−1 )
K1y
K2x = h yk−1 +
2
h K1x K1y
K2y = hg tk−1 + , xk−1 + , yk−1 +
2 2 2
h K2x K2y
K3x = hf tk−1 + , xk−1 + , yk−1 +
2 2 2
h K2x K2y
K3y = hg tk−1 + , xk−1 + , yk−1 +
2 2 2
K4x = hf (tk−1 + h, xk−1 + K3x yk−1 + K3y ),
K4y = hg (tk−1 + h, xk−1 + K3x , yk−1 + K3y )
1
x(tk ) ≈ xk = xk−1 + (K1x + 2K2x + 2K3x + K4x )
6
1
y (tk ) ≈ yk = yk−1 + (K1y + 2K2y + 2K3y + K4y )
6
với k = 1, 2, . . . , n.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 39 / 54
Hệ phương trình vi phân Công thức Runge-Kutta bậc bốn
tk x(tk ) xk x 0 (tk ) yk
0.0 −0.4000 −0.4000 −0.60000 −0.6000
0.1 −0.4617 −0.4617 −0.6316 −0.6316
0.2 −0.5256 −0.5256 −0.6401 −0.6401
0.3 −0.5886 −0.5886 −0.6136 −0.6136
0.4 −0.6466 −0.6466 −0.5366 −0.5366
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 40 / 54
Bài toán biên tuyến tính cấp 2 Đặt vấn đề
Các phương pháp tìm nghiệm gần đúng của phương trình vi phân
thường đòi hỏi các điều kiện được cho tại một thời điểm ban đầu nào
đó.
Đối với phương trình vi phân bậc hai, ta cần 2 giá trị y (x0 ) và y 0 (x0 ).
Tuy nhiên, nhiều bài toán trong thực tế cho thấy điều kiện của hàm
cần tìm được cho tại nhiều thời điểm khác nhau. Vấn đề này dẫn tới
việc tìm nghiệm gần đúng của 1 dạng bài toán thứ hai được gọi là bài
toán biên.
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 41 / 54
Bài toán biên tuyến tính cấp 2 Đặt vấn đề
Introduction
A common problem in civil engineering concerns the deflection of a beam of rectangular
cross section subject to uniform loading while the ends of the beam are supported so that
they
Xétundergo no deflection.
bài toán
S S
0 l x
w(x)
Suppose that l, q, E, S, and I represent, respectively, the length of the beam, the intensity
of the uniform load, the modulus of elasticity, the stress at the endpoints, and the central
moment of inertia. The differential equation approximating the physical situation is of the
form
d2w S qx
(x) = w(x) + (x − l),
dx 2 EI 2EI
ng.com https://fb.com/tailieudientucntt
where w(x) is the deflection a distance x from
PHƯƠNG theVI left
TRÌNH PHÂNend of the beam.
Ngày 6 thángSince
12 năm no
2016deflection
42 / 54
Bài toán biên tuyến tính cấp 2 Đặt vấn đề
Trong phần này chúng ta chỉ xét bài toán biên của phương trình vi
phân thường tuyến tính cấp hai với điều kiện biên được cho ở 2 điểm
có dạng
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 43 / 54
Bài toán biên tuyến tính cấp 2 Phương pháp sai phân hữu hạn
Chọn số tự nhiên bất kỳ n > 0. Chia đều đoạn [a, b] thành n đoạn bởi
các điểm chia x0 = a, xk = x0 + kh, k = 1, 2, . . . , n − 1, xn = b với
b−a
h= .
n
Tại các nút xk , k = 1, 2, . . . , n − 1 bên trong đoạn [a, b] sử dụng công
thức sai phân hướng tâm, ta có
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 44 / 54
Bài toán biên tuyến tính cấp 2 Phương pháp sai phân hữu hạn
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 45 / 54
Bài toán biên tuyến tính cấp 2 Phương pháp sai phân hữu hạn
∀k = 1, 2, . . . , n − 1.
Đây chính là hệ phương trình đại số tuyến tính cấp
n − 1 : AY = B với A là ma trận
2p1 p1 q1
r 1 − 2 2
+ 0 ... 0
p2 hq2 h 2p 2h
2 p2 q2
− r2 − 2 + ... 0
A= h 2 2h h h 2 2h
... ... ... ... ...
2pn−1
0 0 0 . . . rn−1 −
h2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 46 / 54
Bài toán biên tuyến tính cấp 2 Phương pháp sai phân hữu hạn
Y = [y1 , y2 , . . . , yn−1 ]T
và p
1 q1
f1 − − α
h2 2h
f2
B=
...
p fn−2 q
n−1 n−1
fn−1 − + β
h2 2h
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 47 / 54
Bài toán biên tuyến tính cấp 2 Ma trận 3 đường chéo
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 48 / 54
Bài toán biên tuyến tính cấp 2 Ma trận 3 đường chéo
Ví dụ
Xét bài toán biên
y 00 − y 0 − 2y = cos x, π
0<x <
π 2
y (0) = −0.3, y ( ) = −0.1
2
có nghiệm chính xác
Sử dụng phương pháp sai phân hữu hạn xấp xỉ nghiệm gần đúng và so
π
sánh với nghiệm chính xác trong trường hợp h = .
8
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 50 / 54
Bài toán biên tuyến tính cấp 2 Ví dụ
Ta có hệ phương trình
y0 = −0.3, y4 =−0.1
1 −1 2
1 −1
− yk−1 + −2 − 2 yk + + yk+1 = cos(xk )
h2 2h h h2 2h
∀k = 1, 2, 3.
y0 = −0.3, y4 = −0.1
1 2
( h2 + 2h )y0 + (−2 − h2 )y1 + ( h12 − 2h
1 1
)y2 = cos( π8 )
⇔
( 12 + 2h
1
)y1 + (−2 − h22 )y2 + ( h12 − 2h
1
)y3 = cos( π4 )
1h
1
)y2 + (−2 − h22 )y3 + ( h12 − 2h
1
)y4 = cos( 3π
( h2 + 2h 8
)
(−2 − h22 )y1 +( h12 − 2h
1
cos( π8 ) − ( h12 + 2h
1
)y2 +0y3 = )y0
⇔ ( 1 + 2h
1
)y1 +(−2 − h22 )y2 +( h12 − 2h
1
)y3 = cos( π4 )
h2
0y1 +( h12 + 2h
1
)y2 +(−2 − h22 )y3 = cos( 3π
8
) − ( h12 − 2h1
)y4
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 51 / 54
Bài toán biên tuyến tính cấp 2 Ví dụ
Bấm máy.
π
−Shift+STO+M
8
Mode - eqn - anx+bny+cnz=dn
k xk yk y (xk ) |y (xk ) − yk |
0 0 −0.30000 −0.30000 0.00000
π
1 −0.31569 −0.31543 0.00025
8
π
2 −0.28291 −0.28284 0.00007
4
3π
3 −0.20700 −0.20719 0.00019
8
π
4 −0.10000 −0.10000 0.00000
2
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 52 / 54
Bài toán biên tuyến tính cấp 2 Ví dụ
Bài tập
1 Sử dụng phương pháp sai phân hữu hạn giải bài toán
y 00 = 2y 0 − 2y + xe X − x 0 ≤ x ≤ 2, y (0) = 0, y (2) = −4
1 1
với h = và h = và so sánh sai số với nghiệm là
2 4
y (x) = e 2 (e 4 − 1)−1 (e 2x − e −2x ) + x,
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 53 / 54
The end
ng.com https://fb.com/tailieudientucntt
PHƯƠNG TRÌNH VI PHÂN Ngày 6 tháng 12 năm 2016 54 / 54