Tổng kết phương pháp sai phân

27 2.3K 3
Tổng kết phương pháp sai phân

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Phương pháp sai phân là 1 trong 3 phương pháp để giải phương trình vi phân

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 [...]... phức tạp, do đó chỉ có thể chọn phương pháp giải gần đúng ( Đây là lí do vì sao ở phương pháp này ta ko dung 3 đường chéo, hay Gauss để giải) Có rất nhiều phương pháp giải gần đúng hệ này xong ở đây ta quan tâm đến phương pháp giải bằng lặp Seidel đã học trong giải tích số (0) vij Chọn xấp xỉ đầu bất kì ( thường chọn là bằng 0) Sử dụng phương pháp lặp Seidel ta có công thức tổng quát ( vijm ) = 1 [γ v... + τ fijn + 1 h k h k Việc tính toán lặp và giải hệ đại số này là tương đối phức tạp nên thường phương pháp này ít dùng Và ta nghiên cứu một số phương pháp cải tiến như: luân phương ẩn, một chiều địa phương, nhảy ô c Lược đồ luân phương ẩn Để đi tới lược đồ luân phương ẩn ta thay các đạo hảm bằng các sai phân tương ứng ở lớp n+1/2 thay vì lớp n+1 và lớp n( n là lớp theo τ thời gian, tức là nếu từ t=0... nhanh hơn Ở bài toán trên ta có nghiệm là (1.2661 1.6574 2.1857 2.7835) 12 Lớp thứ 2,3 4… tính tương tự c Phương pháp Crank-Nicolson Lý luận tương tự như phương pháp sai phân ẩn cho cách tìm ra nghiệm Ở đây để tiết kiệm thời gian ta đi luôn và hệ tổng quát tức là sau quá trình biến đổi và thay thế sai phân 0.5 τ j +1 τ τ τ τ v − (1 + 2 )vij +1 + 0.5 2 vij++1 = −[0.5 2 (vij−1 + vij+1 ) + (1 − 2 )vij + τ... τ fij0 h2 k h k 3 2 vij vij Và từ đó ta tính được , …… Theo công thức (*) Và các giá trị sai phân xấp sỉ trên biên được tính theo n v0 j =ga(yj,tn) v n Nj =gb(yj,tn) vin0 n iM =gc(xi,tn) v =gd(xi,tn) Ví Dụ b Lược đồ sai phân ẩn 18 Cách làm tương tự như trên nhưng ở đây ta thay các xấp sỉ sai phân bằng các sai phân của lớp trên n+1 chứ ko phải lớp dưới n-1 nữa và từ đó ta có : n n vij +1 − vij τ =... )vij + 2 vi,j+1 = −[ 2 vi-1,j + (1 − 2 )vij 2 + 2 vi+1,j + τ fij 2 ] 2 i,j-1 2k k 2k 2h h 2h 2 1 vin + = g c ( xi , tn +1 ) 0 n+ viM 1 = g d ( xi , tn +1 ) d Phương pháp một chiều địa phương Đúng như tên gọi của phương pháp, phương pháp 1 chiều địa phương dựa trên ý tưởng là tách bài toán truyền nhiệt ko dừng 2 chiều về thành 2 bài toán truyền nhiệt không dừng 1 chiều như sau: ∂u ∂ 2u ∂ 2u = + + f ( x,... thức truy đuổi 3 đường chéo hoặc khủ Gauss ta có kết quả cần tìm e Phương pháp nhảy ô Phương pháp này trong chương trình thầy ko dậy chắc ko phải thi II Phương trình truyền sóng ( dây rung) Ở đây chỉ xét bài toán dây rung 1 chiều ∂ 2 u ∂ 2u = 2 + f ( x, t ) 2 ∂t ∂x u ( a, t ) = g a (t ) u ( x, 0) = g ( x) ∂u ( x, 0) = ψ ( x) ∂t (1) (2) (3) (4) Bài toán sai phân: vij −1 − 2vij + vij +1 vij−1 − 2vij + vij+1... (3) = g(xi,yj) t>0 ta thiết lập được các phương trình, và mỗi phương trình gồm 5 ẩn n vij +1 vin−+1 j vin++1,1 j vin, +11 vin, +11 j− 1, j+ , (1 + 2 , τ h 2 , +2 , τ k 2 n )vij +1 − τ h 2 +1 +1 (vin−1, j + vin+1, j ) − τ k 2 n (vin, +11 + vin, +11 ) = vij +τ f ijn +1 j− j+ (5) Như phân tích với bài toán truyền nhiệt dừng trong không gian 2 chiều ở trên,hệ này mỗi phương trình có tới 5 ẩn, vì vậy để giải... tích với bài toán truyền nhiệt dừng trong không gian 2 chiều ở trên,hệ này mỗi phương trình có tới 5 ẩn, vì vậy để giải hệ một cách có hiệu quả thì ta 19 dung một phương pháp giải gần đúng nghiệm mà thôi Cũng như trên ở đây ta chọn phương pháp lặp Seidel Công thức lặp cụ thể như sau: n n (vij +1 ) 0 vij Chọn xấp xỉ đầu = Với n=0 thì đã biết và tính được từ các điều kiện ban n vij đầu Với n=1,2… thì... -1.05 -2.868 Để giải hệ này về mặt tổng quát thì dung truy đuổi 3 đường chéo 11 Ai= Bi= τ h2 τ h2 Ci= (1+2 vi j di= + 0 1 τ fi v d1= + α1= B1 C1 αi+1= τ h2 1 1 τ f ) j +1 (i>1) + β1= τ 1 h 2 v0 d1 C1 Bi Ci − α i Ai βi+1= Ai βi + di Ci − α i Ai y0,yN đã cho từ điều kiện biên AN β N + d N CN − α N AN yN-1= yi= αi+1yi+1+ βi+1 Nếu hệ ít phương trình có thể dùng phương pháp khử Gauss-Jordan thì nhanh hơn... x, y , t ) ∂t ∂x 2 ∂y 2 ≤ ∈ (1) (x,y) D, 0 . 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 để. 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ày đăng: 10/04/2013, 11:52

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan