Tải bản đầy đủ (.docx) (27 trang)

Tổng kết phương pháp sai 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 (201.56 KB, 27 trang )


Mục Lục
1
Tổng kết phương pháp sai phân
A. Tổng kết các vấn đề lý thuyết
1. Mục tiêu của phương pháp:
Phương pháp sai phân là 1 trong 3 phương pháp để giải phương trình vi
phân
Bao gồm :
- Giải đúng nhờ phương pháp biến đổi giải tích sử dụng các công cụ vi
tích phân và biến đổi tương ứng.
- Giải gần đúng bằng phương pháp sai phân
- Giải gần đúng bằng phương pháp phần tử hữu hạn
Thực chất của phương phấp sai phân là việc xấp xỉ các giá trị của
hàm tại các điểm đặc biệt ( thường chọn là lưới sai phân đều cho đơn
giản) : Như vậy để xây dựng được 1 nghiệm sai phân đúng theo nghĩa
sai phân cần tính được các giá trị của nghiệm phương trình vi phân tại
các đầu mút quan trọng, có tất cả là m*n ( m là kích thước lưới sai
phân, t là thời gian trong trường hợp 1 chiều) các giá trị này với 1 số
giá trị biên đã biết còn lại ta cần tìm các giá trị còn lại điều đó đưa đến
nhận xét là :
Thực chất của phương pháp sai phân chính là giải hệ phương trình
đại số tuyến tính khi đã biết 1 số giá trị đặc biệt. Chỉ cần lập được hệ
đại số tuyến tính để tính các nghiệm chính là đã giải quyết được 70%
công việc của bài toán. Việc còn lại chỉ là tìm phương pháp giải phù
hợp ( Euler,Luân phương ẩn, Seidel co dãn, truy hồi 3 đường
chéo…..)
Giải thích thêm : Ở đây sở dĩ ta phải giải hệ vì v
ịj
thì các chỉ số i,j
chạy tương ứng vì vậy ta thu được 1 hệ phương trình chứ ko phải là 1


phương trình(biểu thức)
Còn phương pháp phần tử hữu hạn là xấp xỉ các hàm trên các miền
hữu hạn thành các toán tử tuyến tính để xấp xỉ được như vậy thực chất
là giải bài toán xấp xỉ hàm với sai số đã chọn
2
2. Cách làm:
Để xấp xỉ được giá trị của hàm thì ta dung cách thay thế các đạo hàm
bằng các sai phân tương ứng của nó và đưa về giải hệ phương trình. Cụ
thể
u
xi
=u’(x
i
)=u
ẋi
= u
ẋi+1
(Sai phân cấp 1)
x xi
v

=
1 1
2
2
i i i
v v v
h
+ −
− +

(Sai phân cấp 2)
Còn rất nhiều cách thay khác có thể tham khảo trong sách đánh này ko
quen lâu quá .
Từ các công thức đó ta thay vào các đạo hàm tương ứng thì ta có một hệ
phương trình sai phân với các giá trị nút lưới tương ứng. Giải hệ này ta
có đáp số.Cụ thể từng bài toán xem xét dưới đây
B. Các dạng phương trình vi phân thường sử dụng phương
pháp sai phân để giải
I. Bài toán truyền nhiệt
1. Truyền nhiệt dừng 1 chiều ( tức là biểu thức
u
t


=0)
Lu = (k(x)u’)’-q(x)u(x)=-f(x)
Bài toán biên loại 1:
u(a)=A, u(b)=B với a,b là 2 biên
Như đã nói ở trên ta đưa về hệ phương trình tuyến tính:
a
i
y
i-1
-(a
i+1
+a
i
+h
2
q

i
)y
i
+a
i+1
y
i+1
= -h
2
f
i

( Để có được hệ thức này như đã nói ở trên ta thay các đạo hàm bằng sai
phân tương ứng và rút gọn). Ở đây các chỉ số i chạy nên ta thu được hệ
phương trình với mỗi phương trình với 3 ẩn y
i-1,
y
i
, y
i+1
với i thay lần lượt
từ 1 đến N-1
-C
1
y
1
+B
1
y
2

=-(h
2
f
1
+ A
1
y
0
)=-d
1
A
2
y
1
-C
2
y
2
+B
2
y
3
=-h
2
f
2
=-d
2
……………………….
A

i-1
y
i-1
-C
i
y
i
+B
i
y
i+1
=-h
2
f
i
=-d
i-1
3
A
N-1
y
N-2
-C
N-1
y
N-1
=-(h
2
f
N-1

+B
N-1
y
N
) =-d
N-1
Với :
A
i
=a
i
=k(x
i
-h/2)
B
i
=k(x
i
+h/2)
C
i
= A
i
+ B
i
+ h
2
q
i
Cần chú ý các công thức tính A,B,C để tính cho nhanh 

Đưa về dạng ma trận :
AY=-d như trong vở ( ở đây dài quá nên đưa công thức nghiệm luôn để
thay như sau : )
A
i
=a
i
=k(x
i
-h/2)
B
i
=k(x
i
+h/2)
C
i
= A
i
+ B
i
+ h
2
q
i
α
1
=0 β
1
=A( Điều kiện đầu)

α
2
=
1
1
B
C
β
2
=
1
1
d
C

α
i+1
=
i
i i i
B
C A
α

β
i+1
=
i i i
i i i
A d

C A
β
α
+

y
0,
y
N
đã cho từ điều kiện biên
y
N-1
=
1 1 1
1 1 1
N N N
N N N
A d
C A
β
α
− − −
− − −
+


y
i
= α
i+1

y
i+1
+ β
i+1
4
Chú ý quan trọng :
i. d
i
=h
2
f
i
phải chú ý dấu của f
i
cho trong đề bài ( bài giữa kì cả
lớp sai vì lỗi này nên cần chú ý đặc biệt)
ii. Để đỡ nhầm lẫn nên thay ngay các giá trị trung gian có thể
tính từ ban đầu luôn như A
i
, B
i
,C
i
, d
i
=h
2
f
i
rồi mới đi giải hệ

bằng công thức trên
iii. Với lưới sai phân nhỏ ( từ khoảng 4 đến 5 điểm cần tính) có
thể dung phương pháp khử Gauss-Jordan như vậy sẽ tiết
kiệm khối lượng tính ít nhất 2.5 lần .
Ví dụ :
Lấy lại ví dụ trong vở thầy cho:Dùng công thức trên ta tính được
x
i
0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9
A
i
1.05 1.15 1.25 1.35 1.45 1.55 1.65 1.75 1.85
B
i
1.15 1.25 1.35 1.45 1.55 1.65 1.75 1.85 1.95
h
2
q
i
1.10
-3
2.10
-3
3.10
-3
4.10
-3
5.10
-3
6.10

-3
7.10
-3
8.10
-3
9.10
-3
C
i
2.201 2.402 2.603 2.804 3.005 3.206 3.407 3.608 3.809
d
i
1.004 -
0.0523
-
0.0587
-
0.0651
-
0.0717
-
0.0782
-
0.0848
-
0.0913
7.153
α
i
0 0.522 0.694 0.778 0.827 0.858 0.879 0.894 0.905

β
i
1 0.456 0.262 0.155 0.082 0.026 -0.02 -0.06 -0.096
 y
9
=
9 9 9
9 9 9
A d
C A
β
α
+

=
1.85*( 0.096) 7.153
3.809 1.85*0.905
− +

=3.268
 y
9
=3.268
y
8
=
9 9 9
0.905*3.268+( 0.096)y
α β
+ = −

= 2.862
y
7
= 2.5034
y
6
= 2.1820
5
y
5
= 1.8988
y
4
= 1.6520
y
3
= 1.4401
y
2
= 1.2617
y
1
= 1.1154
2. Truyền nhiệt trong không gian 1 chiều ko dừng
2
2
( , )
u u
f x t
t x

∂ ∂
= +
∂ ∂
Với điều kiện ban đầu : u(x,0)=g(x)
Và điều kiện biên :u(a,t)=α(t)
:u(b,t)=β(t)
Thay các đạo hàm bằng sai phân tương ứng ta xây dựng được 3 phương
pháp giải tương ứng là : sai phân hiện, sai phân ẩn và 6 điểm đối xứng
Crank-Nicolson:
a. Phương pháp sai phân hiện.
Thay
1j j
i i
v v
u
t
τ
+


=

2
1 1
2 2
2
j j j
i i i
v v v
u

x h
+ −
− +

=

Chú ý rằng đạo hàm theo x thì chỉ số j ( tức là của t giữ nguyên )
Và đạo hàm theo t thì chỉ số i ( tức là của x giữ nguyên) Cho dễ nhớ
Bài toán đưa về:
1j j
i i
v v
τ
+

=
1 1
2
2
j j j
i i i
v v v
h
+ −
− +
+
j
i
f
Hay :

6
j
i
v
=
2
h
τ
[
1 1 1
1 1
2
j j j
i i i
v v v
− − −
− +
− +
]+
1j j
i i
v f
τ

+
0
( , ) ( )
( , ) ( )
j
j

N
v u a t j
v u b t j
α τ
β τ
= =
= =
Chú ý:
i. Ở đây do đã biết lớp thứ j-1 ( lớp 0 đầu tiên suy ra từ điều kiện
ban đầu u(x,0)=g(x), ngoại trừ u(a,0) và u(b,0 ) xác định theo
điều kiện đầu) nên ta có thể tính được lớp thứ j từ lớp j-1 mà
không cần giải hệ .
ii. Nếu bài toán có nhân them hằng số hoặc 1 hàm số k(x,t) thì
tương tự ta thay các hằng, hoặc hàm số theo sai phân tương ứng
là được.
Ví dụ:
Lấy lại ví dụ trong như trong vở
f(x,t)=2; u(0,t)=e
t
; u(1,t)=e
1+t
+1; u(x,0)= e
x
+x
2
Chọn
τ
=0.005, h=0.01
0
j

v
=e
t
(Điều kiện biên)
j
N
v
=e
1+t
+1(Điều kiện biên)
v
i
0
=e
x
+x
2
(Điều kiện đầu)
Sử dụng lược đồ sai phân ta có công thức tổng quát

j
i
v
=
2
h
τ
[
1 1 1
1 1

2
j j j
i i i
v v v
− − −
− +
− +
]+
1j j
i i
v f
τ

+
Với
7
2
h
τ
=0.5( Ở đây có thể làm tổng quát cho
2
h
τ
bất kì đặt
2
h
τ
=r rồi
thế vào các biểu thức ta có đáp số, tuy nhiên ở đây chọn luôn
cho đơn giản và tiết kiệm công gõ  ).

0
j
v
=e
t
10
j
v
=e
1+t
+1
v
i
0
=e
x
+x
2
• Lớp thứ nhất j=1,t=0.005
1
1
v
=0.5[
0
0
v
-2
0
1
v

+
0
2
v
]+
0
1
v
+0.005.
1
1
f
=0.5[e
0.005
-2(e
x
+x
2
)+ e
x
+x
2
]+ e
x
+x
2
+0.005*2=
=0.5[e
0.005
-2(e

0.1
+0.1
2
)+ e
0.2
+0.2
2
] + e
0.1
+0.1
2
+0.005*2
=0.5(1-2*1.1152+1.261)+1.1152+0.01=1.141
1
2
v
=0.5[
0
1
v
-2
0
2
v
+
0
3
v
]+
0

2
v
+0.005
1
2
f
=0.5[(e
x
+x
2
)-2(e
x
+x
2
)+ (e
x
+x
2
)]+ (e
x
+x
2
)+0.005*2
=0.5[(e
0.1
+0.1
2
)-2(e
0.2
+0.2

2
)+ (e
0.3
+0.3
2
)]+ (e
0.2
+0.2
2
)+0.005*2
=0.5*0+1.271= 1.2875
……………………….
1
9
v
=0.5[
0
8
v
-2
0
9
v
+
0
10
v
]+
0
9

v
+0.005*2
=0.5[(e
x
+x
2
)-2(e
x
+x
2
)+ e
1+t
+1]+ e
x
+x
2
+0.01
=0.5[(e
0.8
+0.8
2
)-2(e
0.9
+0.9
2
)+ e
1+0.005
+1]+ e
0.9
+0.9

2
+0.01
=3.309
Các bước 2,3,4… tương tự nhau chỉ có bước 1, và 9 là cần chú
ý vì điều kiện biên. Ở đây kết quả xấp xỉ “ không được tốt lắm
với nghiệm đúng do ta chọn tỉ số
2
h
τ
tương đối lớn, và các bước
làm tròn nhiều.
Ta có bảng sau:
v
1
1
v
2
1
v
3
1
v
4
1
v
5
1
v
6
1

v
7
1
v
8
1
v
9
1
8

• Lớp thứ 2 j=2,t=0.01
2
1
v
=0.5[
1
0
v
-2
1
1
v
+
1
2
v
]+
1
1

v
+0.005*2
=0.5[e
0.01
-2*1.141+1.2875]+ 1.141+0.01
=0.5*0.0155+1.141+0.01
=1.159
Các nút khác tính tương tự
Ta có bảng sau
v
1
2
v
2
2
v
3
2
v
4
2
v
5
2
v
6
2
v
7
2

v
8
2
v
9
2
Lớp thứ 3 j=3,t=0.015
Tính tương tự như 2 phần trên chỉ thay t=0.015 là được
Ta có bảng sau
v
1
3
v
2
3
v
3
3
v
4
3
v
5
3
v
6
3
v
7
3

v
8
3
v
9
3
b. Phương pháp sai phân ẩn
Tương tự như phương pháp sai phân hiện phương pháp sai phân ẩn
cũng sử dụng việc thay các đạo hàm bằng các sai phân tương ứng
nhưng thay vì sử dụng các sai phân ở lớp dưới (j) ta sử dụng luôn sai
phân ở lớp trên (j+1) để từ 1 phương trình ta thu được 3 giá trị xấp xỉ
ngay lập tức.
Tuy nhiên để từ lớp j+1 xấp xỉ được chính nó ta cần đưa đến việc
giải hệ phương trình với mỗi phương trình trong hệ gồm 3 ẩn ở lớp
j+1 và các hằng số biết trước do đã tính được lớp j
9
Cụ thế như sau:
1 1 1
2
1 1
2 2
1
2
j j j
i i i
j j
i i
v v v
u
x h

v v
u
t
τ
+ + +
+ −
+
− +

=



=

Thay vào phương trình vi phân ban đầu ta được
1j j
i i
v v
τ
+

-
1 1 1
1 1
2
2
j j j
i i i
v v v

h
+ + +
+ −
− +
=
1j
i
f
+
0
( , )
j
v u a t=
( , )
j
N
v u b t
=
0
i
v
=g(x
i
)
Rút gọn phương trình trên ta được hệ phương trình sau :
2
h
τ
1
1

j
i
v
+

-(1+2
2
h
τ
)
1j
i
v
+
+
2
h
τ
1
1
j
i
v
+
+
=-
j
i
v
-

τ
1j
i
f
+
(1)
Như đã nói ở trên biểu thức trên xác định 1 hệ phương trình do các chỉ
số i,j chạy . Mỗi phương trình của hệ chứa 3 ẩn ở lớp trên
1
1
j
i
v
+
+
,
1j
i
v
+
,
1
1
j
i
v
+


và 1 ẩn ở lớp dưới

j
i
v
( ẩn này có thể tính trực tiếp truy hồi thong qua
điều kiện biên và biểu thức trên) nên thực tế mỗi phương trình chỉ có
3 ẩn.
Ví dụ: Lấy lại ví dụ trên
f(x,t)=2; u(0,t)=e
t
; u(1,t)=e
1+t
+1; u(x,0)= e
x
+x
2
Ở đây chọn h=0.2 cho ít phương trình
10

×