Phương pháp sai phân giải gần đúng phương trình đạo hàm riêng

92 725 2
Phương pháp sai phân giải gần đúng phương trình đạo hàm riêng

Đ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

1 LI CM N Luận văn đợc hon thnh tại trờng Đại học s phạm H Nội 2 dới sự hớng dẫn của Tiến sĩ Nguyễn Văn Khải. Tác giả xin trân trọng cảm ơn Ban giám hiệu trờng Đại học s phạm H Nội 2, phòng sau đại học, các thầy cô giáo trong nh trờng, các thầy cô giáo dạy cao học chuyên ngnh Toán giải tích đã tạo mọi điều kiện thuận lợi cho tôi kết thúc tốt đẹp chơng trình cao học và hoàn thành luận văn tốt nghiệp. Tác giả xin by tỏ lòng biết ơn tới thầy giáo TS.Nguyễn Văn Khải, ngời đã luôn quan tâm, động viên, tận tình hớng dẫn trong suốt quá trình lm luận văn. Tác giả trân trọng cám ơn Sở Giáo dục và đào tạo Bắc Giang, trờng THPT Lý Thờng Kiệt và THPT Giáp Hải, gia đình, bạn bè cùng học đã tạo mọi điều kiện giúp đỡ tác giả hon thnh tốt luận văn. H Nội, tháng 6 năm 2012 Lơng Quỳnh Trang 2 LI CAM OAN Tôi xin cam đoan bản luận văn ny l công trình nghiên cứu của riêng tôi dới sự hớng dẫn của Tiến sĩ Nguyễn Văn Khải. Trong quá trình nghiên cứu, tôi đã kế thừa thành quả khoa học của các nhà khoa học với sự trân trọng và biết ơn. H Nội, tháng 6 năm 2012 Tác giả Lơng Quỳnh Trang 3 M U 1. Lý do chn ti Phng trình o hm riêng xut hin trong các vn ca vt lý: Lý thuyt n hi, c hc ( c hc l ng t, c hc cht lng, in t tr ng, thu khí ng hc). a s các bi toán dng ny u rt phc tp không th gii đúng c. T nhu cu ca thc tin nh vy, với mong muốn hiểu biết sâu hơn về phơng pháp sai phân và phần mềm Matlab giải gần đúng phơng trình đạo hàm riêng, đợc sự đồng ý hớng dẫn của Tiến sĩ Nguyễn Văn Khải tôi lựa chọn đề tài nghiên cứu: Phơng pháp sai phân giải gần đúng phơng trình đạo hàm riêng. 2. Mc đích nghiên cu Lun vn nghiên cu phng pháp sai phân nhm gii gn úng phng trình o hm riêng ( vn c s lý lun cng nh nhng ví d c th) vi ng dng ca phn mm toán hc Matlab. 3. Nhim v nghiên cu Lun vn nghiên cu nhng bi toán o hm riêng c bn òi hi nghiên cu l c sai phân hóa gii gn úng các bi toán dng phng trình o hm riêng. Lun vn nghiên cu các vn v xp x, n nh v hi t ca l c sai phân i vi bi toán phng trình o hm riêng. Lun vn nghiên cu mt s ví d gii gn úng phng trình o hm riêng nh sai phân với ứng dụng phần mềm Matlab. 4. i t ng v phm vi nghiên cu Một số vấn đề về sai phân v phần mềm Matlab. ng dng của sai phân và phần mềm Matlab để giải gần đúng phơng trình đạo hàm riêng ( cơ sở lý thuyết và một số ứng dụng cụ thể). 5. Phng pháp nghiên cu Lun vn dùng phng pháp sai phân v phng pháp gii tích hm trong quá trình gii gn úng phng trình o hm riêng. 4 Luận văn dïng c¸c phương ph¸p ph©n loại bài to¸n trong khi tiếp cận c¸c bµi to¸n đ ạ o hàm riªng. 6. Dự kiến đãng gãp của luận văn Tr×nh bày một c¸ch hệ thống vấn đ ề giải gần đ óng phương tr×nh đ ạ o hàm riªng nhờ phương ph¸p sai ph©n. Đưa ra lêi giải gần đóng một số phương tr×nh đ ạ o hàm riªng theo phương ph¸p sai ph©n bằ ng phần mềm Matlab. 5 Mục lục LI CM N 1 LI CAM OAN 2 M U 3 Mục lục 5 Chơng 1 6 Một số kiến thức cơ bản về matlab và sai phân. 6 1.1 Một số kiến thức về Matlab 6 1.1.1. Giới thiệu về Matlab. 6 1.1.2. Lập trình 7 1.1.3. Toán học trong Matlab 13 1.1.4. Đồ hoạ 20 1.2. Một số khái niệm cơ bản về sai phần. 25 1.2.1. Sự hội tụ của lợc đồ sai phân. 25 1.2.2. Xấp xỉ bài toán bờ vi phân bằng lợc đồ sai phân. 29 1.2.3. Định nghĩa sự ổn định của lợc đồ sai phân. Sự hội tụ là hệ quả của xấp xỉ và ổn định. 30 Chơng 2 34 giải gần đúng phơng trình đạo hàm riêng bằng phơng pháp sai phân 34 2.1. Phân loại phơng trình tuyến tính cấp hai. 34 2.2. Bài toán bờ của phơng trình Ellip tic và phơng pháp sai phân 35 2.2.1. Phân loại bài toán bờ 35 2.2.2. Sai phân hoá các bài toán bờ của phơng trình Elliptic. 35 2.2.3. Phơng pháp giải hệ phơng trình sai phân của bài toán bờ phơng trình Elliptic 46 2.2.4. Sự hội tụ của bài toán bờ sai phân của phơng trình Elliptic 57 2.3. Phơng pháp sai phân giải bài toán Cauchy cho phơng trình Hyperbolic. 60 2.4. Phơng pháp sai phân giải phơng trình Parabolic. 64 2.4.1. Giải bài toán Cauchy 65 2.4.2. Bài toán biên hỗn hợp. 66 2.5. Một số phơng pháp cơ bản để khảo sát sự ổn định của lợc đồ sai phân. 68 2.5.1. Phân tích phổ bài toán sai phân Cauchy. 68 2.5.2. Nguyên tắc Maximum. 73 Chơng 3 77 Sử dụng phần mềm matlab giải gần đúng phơng trình đạo hàm riêng theo phơng pháp sai phân 77 Sử dụng phần mềm Matlab giải gần đúng bài toán bờ Dirichlet trên miền chữ nhật theo phơng pháp sai phân. 77 Kết luận và kiến nghị 90 Tài liệu tham khảo 91 6 Chơng 1 Một số kiến thức cơ bản về matlab và sai phân. 1.1 Một số kiến thức về Matlab. 1.1.1. Giới thiệu về Matlab. Matlab là ngôn ngữ bậc cao rất có hiệu quả đối với kỹ thuật tính toán. Nó hoà nhập sự tính toán, sự trực quan và lập trình vào một môi trờng dễ sử dụng, ở đó các vấn đề và giải pháp đợc biểu thị bởi các ký hiệu toán học quen thuộc. Matlab là hệ thống tơng tác mà ở đó phần tử dữ liệu cơ sở là mảng, nhng không đòi hỏi kích thớc. Điều đó cho phép bạn giải quyết nhiều vấn đề về kỹ thuật tính toán, đặc biệt là các công thức liên quan đến véctơ và ma trận. Matlab là viết tắt của matrix laboratory. Khởi đầu nó đợc viết dành cho sự truy cập dễ dàng tới phần mềm ma trận đợc phát biểu bởi các đề án Linpack và Eispack. Matlab có chứa một họ các ứng dụng đặc biệt gọi là công cụ (toolboxes). Các công cụ này cho phép bạn học và áp dụng các kỹ thuật đặc biệt bao trùm các lĩnh vực nh xử lý tín hiệu, điều khiển hệ thống, mạng noron, logic mờ, sóng, mô phỏng và rất nhiều lĩnh vực khác. Có thể tạm coi hệ thống của Matlab gồm 5 phần: Môi trờng phát triển: Đó là tập hợp các công cụ và tiện ích giúp bạn sử dụng các hàm và các tệp. Đa số trong chúng thuộc về giao diện ngời dùng, bao gồm nền Matlab ( Matlab desktop ), cửa sổ lệnh (command window), cửa sổ quá trình ( command history), trình soạn thảo ( editor), trình gỡ rối (debugger), trình duyệt ( browser) để xem trợ giúp ( viewing help), duyệt không gian làm việc (workspace ), Th viện các hàm toán học: Đó là tập mênh mông các giải thuật tính toán, từ các hàm cơ bản nh tổng, tích, sin, cosin, các phép toán số học về số thực và số phức đến các hàm phức tạp nh ma trận ngợc, trị riêng của ma trận, các hàm Bessel và các biến đổi Fourier nhanh. 7 Ngôn ngữ Matlab: Đó là ngôn ngữ bạc cao về ma trận và mảng với các câu lệnh điều khiển, các hàm, cấu trúc dữ liệu, nhập/ xuất dữ liệu và các đặc trng của ngôn ngữ lập trình hớng đối tợng (object oriented programming). Nó cho phép xây dựng các chơng trình nhỏ lẫn các chơng trình hoàn thiện. Đồ hoạ: Đồ hoạ trong Matlab quả là tuyệt vời để hiển thị các ma trận, các véctơ, vẽ và in đồ hoạ, chú giải trên đồ thị. Nó bao gồm các hàm ở mức cao để có thể biểu diễn dữ liệu trong không gian 2 chiều và 3 chiều. Tơng tác với bên ngoài: Đó là th viện mà bạn có thể viết chơng trình bằng ngôn ngữ C hoặc Fortran để tơng tác với Matlab. Nó bao gồm các tiện ích để gọi các thủ tục từ Matlab kiểu liên kết động (dynamic linking), gọi Matlab nh là gọi một máy tính toán, cũng nh các tiện ích để đọc và viết các tệp kiểu Mat files. Để khởi động chơng trình trên nền Windows kích đúp vào biểu tợng của Matlab và để kết thúc phiên làm việc, chọn File/ Exit trên menu hoặc gõ lệnh quit tại cửa sổ lệnh. Khi bạn bắt đầu chơng trình Matlab, cửa sổ mệnh lệnh sẽ mở ra với kí hiệu >>. Để đợc thực hiện trong môi trờng Matlab các file chơng trình phải có đuôi ***.m tức là M- file. Nếu muốn tạo một M-file thì kích File/ New/ M- file, mở một file đã tồn tại thì kích File/ Open rồi tìm file đó và lựa chọn. Nếu file bạn muốn chạy không đợc ghi vào danh sách trong phần tìm kiếm thì bạn đa vào danh sách bằng cách kích File/ Set Path/ Add Folder, tìm kiếm và kích vào tệp, cuối cùng kích vào nút Save rồi kích Close. 1.1.2. Lập trình a. Nhập/ xuất dữ liệu Có 3 cách nhập/ xuất dữ liệu trong môi trờng Matlab Nhập/ xuất dữ liệu từ cửa sổ lệnh Matlab không đòi hỏi phải khai báo biến trớc khi dùng. Matlab phân biệt chữ hoa và chữ thờng. Các số liệu đa vào môi trờng làm việc của Matlab đợc lu lại suốt phiên làm việc cho đến khi gặp lệnh Clear all. Matlab cho phép ta nhập số liệu từ dòng lệnh. Khi nhập ma trận từ bàn phím ta phải tuân theo các quy định sau: Ngăn cách các phần tử của ma trận bằng dấu , hay dấu trống. 8 Dùng dấu ; để kết thúc một hàng. Bao các phần tử của ma trận bằng cặp dấu ngoặc vuông [ ]. Khi ta đánh lệnh vào cửa sổ lệnh, nó sẽ đợc thi hành ngay và kết quả hiện lên màn hình. Nếu ta không muốn cho kết quả hiện lên màn hình thì sau lệnh ta đặt thêm dấu ;. Nếu lệnh quá dài, không vừa một dòng có thể đánh lệnh trên nhiều dòng và cuối mỗi dòng đặt thêm dấu rồi xuống dòng. Ví dụ 1.1.2.1. Để nhập vào ma trận: 1 2 3 4 5 6 A , 3 2 1 B , 1 4 3 2C trong cửa sổ lệnh Matlab ta đánh nh sau: >> A= [1 2 3; 4 5 6]; >> B= [3; -2; 1]; % đặt dấu ; cuối câu để không in kết quả ra màn hình >> C= [1 4 -3 2]; Nhập/ xuất dữ liệu thông qua các file. Matlab có thể xử lý hai kiểu file dữ liệu: File nhị phân *.mat và file ASCII *.dat. Để lu các ma trận A, B, C dới dạng file nhị phân ta dùng lệnh save ABC A B C và nạp lại các ma trận A, B bằng lệnh load ABC A B. Nếu muốn lu số liệu của ma trận B dới dạng file ASCII ta dùng lệnh save b.dat B/ ascii. Nhập/ xuất dữ liệu từ bàn phím Lệnh input cho phép ta nhập dữ liệu từ bàn phím. Ví dụ: x = input ( Nhập x: ) Một cách khác để hiển thị giá trị của biến và chuỗi là đánh tên biến vào cửa sổ lệnh Matlab hoặc dùng disp và fprintf để hiển thị các biến. Ví dụ: disp ( Trị số của x= ), disp (x) Trong trờng hợp muốn nhập một chuỗi từ bàn phím, ta cần phải thêm kí tự s vào đối số. Lệnh format cho phép xác định dạng thức của dữ liệu. format rat: Số hữu tỉ format long: Số có 14 chữ số sau dấu phẩy 9 format long e: Số dạng mũ format hex: Số dạng hex format short e: Số dạng mũ ngắn format short: Trở về số dạng ngắn b. Vòng lặp điều khiển Cấu trúc if- else- elseif- end. Cú pháp nh sau: if < biểu thức điều kiện 1> khối các lệnh đợc thực hiện nếu điều kiện 1 đúng elseif < biểu thức điều kiện 2 > khối các lệnh đợc thực hiện nếu điều kiện 2 đúng . . . else khối các lệnh đợc thực hiện nếu không có điều kiện nào đúng end Nói thêm về phép so sánh bằng (= =). Với biểu thức kiểu vô hớng thì không có gì đáng bàn, ta chỉ lu ý khi chúng là ma trận. Khi đó, thay cho phép so sánh = =, ta chỉ nên sử dụng hàm isequal (a,b), hàm này nhận giá trị 1 nếu a đúng bằng b, trái lại hàm bằng 0. Nhng nếu trong dữ liệu có chứa giá trị phi số NaN, hàm isequal không cho kết quả đúng. Cấu trúc switch- case otherwise- end. Cú pháp nh sau: switch < biểu thức > case 1 n : < lệnh 1> case 2 n : < lệnh 2> 10 case n n : < lệnh n> otherwise: <lệnh n+1> end Vòng lặp while: Vòng lặp while dùng khi không biết trớc số lần lặp. Cú pháp nh sau: while < biểu thức> < phát biểu > end Vòng lặp for: Vòng lặp for dùng khi biết trớc số lần lặp. Cú pháp nh sau: for < chỉ số>= <giá trị đầu>: <mức tăng >:< giá trị cuối > Break: Phát biểu break để kết thúc vòng lặp for hay while mà không quan tâm đến điều kiện kết thúc vòng lặp đã thoả mãn hay cha. c. Hàm và thủ tục. c1. Hàm. Hàm trả về một giá trị thuộc một trong các kiểu vô hớng, logic, xâu văn bản, nhng thờng là một véc tơ hay một ma trận. Có 5 loại hàm cơ bản: Hàm ẩn danh (Anonymous Function) đợc cấu thành từ một biểu thức với một vài tham số đầu vào và tham số đầu ra ( output). Bạn có thể định nghĩa loại hàm này ngay tại cửa sổ lệnh, hoặc trong một thủ tục, hoặc trong một hàm khác dạng M- file. Cú pháp có dạng f= @(arglist) expression. ở đây, arglist là danh sách các input, chúng cách nhau bởi dấu phẩy, còn expression là biểu thức xác định giá trị của hàm. Các hàm toán học rất thích hợp với kiểu định nghĩa này. Hàm nguyên thuỷ và hàm con (Primary and Subfunction) là các hàm bắt buộc phải định nghĩa trong M- file. Trong tệp M- file, hàm nguyên thuỷ phải đợc hiển thị tại dòng đầu tiên. Hàm nguyên thuỷ có phạm vi lớn nhất, tức là nó có thể [...]... x, y ) G ( x, y ) u là đạo hàm theo pháp tuyến trong của biên n 3 Bài toán bờ hỗn hợp L(u ) f u 0u 1u n Khi giải bài toán phương trình đạo hàm riêng bằng phương pháp lưới (phương pháp sai phân) người ta thường phải thực hiện các công đoạn sau: a Rời rạc hoá miền G sai phân hoá điều kiện bờ (biên) b Thay toán tử vi phân bằng toán tử sai phân c Giải hệ phương trình ĐSTT thu được d Khảo... [u ] h u h Uh C f h Fh 34 Chương 2 giải gần đúng phương trình đạo hàm riêng bằng phương pháp sai phân 2.1 Phân loại phương trình tuyến tính cấp hai Xét phương trình tuyến tính cấp hai 2u 2u 2u u u Lu A 2 2 B C 2 a b Cu f ( x, y ) x xy y x y (2.1.1) Nếu các hệ số A, B, C không phụ thuộc vào x, y thì ta lập biệt thức D A B B C AC B 2 Ta nói phương trình (2.1.1) có dạng elliptic nếu D >... định của lược đồ sai phân 2.2.2 Sai phân hoá các bài toán bờ của phương trình Elliptic a Những bước đi chính trong việc sai phân hoá bài toán bờ Dirichlet 36 Bài toán bờ Lu ( x, y ) f ( x, y ) u ( x, y ) ( x, y ) (2.2.2.1) x, y / (2.2.2.2) là một bài toán bờ vi phân Để giải bài toán ấy bằng phương pháp sai phân trước hết ta cần phải sai phân hoá nó Nội dung việc sai phân hoá ấy bao gồm... thời Hàm riêng chỉ được triệu gọi từ các hàm nguyên thuytrong thư mục cha của thư mục private và các hàm riêng khác, không thể triệu gọi chúng tại cửa sổ lệnh Các hàm riêng được ưu tiên gọi trước so với các hàm nguyên thuỷ Các hàm lồng nhau (Nested Function): Việc định nghĩa một hàm trong thân của một hàm khác được gọi là hàm lồng nhau Việc lồng nhau có thể nhiều lần Các hàm cùng được lồng trong một hàm. .. của phương trình không thay đổi sau một phép biến đổi không suy biến = (x,y); = (x,y), tức là x x y y 0 ( x, y ) G trong đó G là miền thay đổi của (x, y) trong phương trình (2.1.1) Các dạng phổ biến 1 Phương trình Laplace (Elliptic) 2u 2u u 2 2 0 x y 2 Phương trình truyền nhiệt (Parabolic) u 2u a2 2 t x 3 Phương trình dây rung (Hyperbolic) 2u 2u a2 2 t 2 x 35 2.2 Bài toán bờ của phương. .. lược đồ hội tụ ta có thể chọn h sao cho nghiệm gần đúng un đạt mọi độ chính xác tuỳ ý cho trước 29 1.2.2 Xấp xỉ bài toán bờ vi phân bằng lược đồ sai phân a Độ lệch f h Giả sử bài toán bờ sai phân Lh uh = fh xấp xỉ bài toán bờ vi phân Lu = f khi đó f h = Lh [u]h - fh b Xấp xỉ cấp h Định nghĩa: Ta nói rằng lược đồ sai phân Lh uh = fh xấp xỉ bài toán vi phân Lu = f trên nghiệm u của nó, nếu fh Fh ... nói gì, ta hiểu u(x) là hàm liên tục, [u]h là 0 vết của u(x), tức là hàm lưới trùng với nghiệm đúng u(x) tại các điểm lưới khi cần phục hồi hàm nghiệm u(x) theo [u]h người ta dùng các phương pháp xấp xỉ khác nhau Ta coi như bài toán (1.2.1.1) đã giải xong, nếu tìm được hàm lưới [u]h Tuy nhiên, không tìm được [u]h chính xác mà ta tìm hàm lưới khác uh h [u]h khi 0 b Lược đồ sai phân hội tụ Xét không gian... x 3 Phương trình dây rung (Hyperbolic) 2u 2u a2 2 t 2 x 35 2.2 Bài toán bờ của phương trình Ellip tic và phương pháp sai phân 2.2.1 Phân loại bài toán bờ Xét phương trình: L(u ) a 2u 2u u u b 2 c d gu f 2 x y x y (2.2.1.1) trong đó a, b, c, d, g, f là các hàm của x, y và mọi (x, y) thuộc G Người ta phân biệt loại bài toán bờ 1 Bài toán Dirichlet L(u ) f u ( x, y ) G ( x, y ) ... từ các hàm nguyên thuỷ trong các M- file khác Trong khi đó các hàm con chỉ có thể được triệu gọi từ hàm nguyên thuỷ hoặc từ các hàm con cùng được định nghĩa trong hàm nguyên thuỷ Cấu trúc như sau function frime ( arglist) statements function fsub1 (arglist) statements1; function fsub2 (arglist) statements2; Chú ý rằng không có từ khoá end Hàm riêng (Private Function): Hàm riêng có cấu trúc như hàm nguyên... định của lược đồ sai phân Sự hội tụ là hệ quả của xấp xỉ và ổn định a Định nghĩa ổn định Giả sử để giải gần đúng bài toán bờ vi phân Lu = f (1.2.3.1) Ta lập lược đồ sai phân Lh uh = fh (1.2.3.2) Xấp xỉ (1.2.3.1) trên nghiệm u cấp h điều này có nghĩa là độ lệch f h thoả mãn fh Fh C1.h (1.2.3.3) trong đó C1 là hằng số không phụ thuộc h Khi đó ta có: Định nghĩa 1: Ta nói rằng lược đồ sai phân (1.2.3.2) . về phơng pháp sai phân và phần mềm Matlab giải gần đúng phơng trình đạo hàm riêng, đợc sự đồng ý hớng dẫn của Tiến sĩ Nguyễn Văn Khải tôi lựa chọn đề tài nghiên cứu: Phơng pháp sai phân giải gần đúng. dng của sai phân và phần mềm Matlab để giải gần đúng phơng trình đạo hàm riêng ( cơ sở lý thuyết và một số ứng dụng cụ thể). 5. Phng pháp nghiên cu Lun vn dùng phng pháp sai phân v phng pháp gii. đúng phơng trình đạo hàm riêng bằng phơng pháp sai phân 34 2.1. Phân loại phơng trình tuyến tính cấp hai. 34 2.2. Bài toán bờ của phơng trình Ellip tic và phơng pháp sai phân 35 2.2.1. Phân loại

Ngày đăng: 23/07/2015, 23:59

Từ khóa liên quan

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

Tài liệu liên quan