Sử dụng PDETOOL: PDETOOL giải phương trình vi phân đạo hàm riêng bằng cách dùng phương pháp FEM.. Ta có thể bật/tắt tuỳ chọn Grid bằng cách bấm vào Grid trên menu Option.. Ta cũng có th
Trang 1CHƯƠNG 9: PHƯƠNG TRÌNH VI PHÂN ĐẠO HÀM RIÊNG
§1. KHÁI NIỆM CHUNG
vi phân có số biến độc lập lớn hơn 1. Trong chương này ta sẽ khảo sát các phương trình vi phân đạo hàm riêng cấp 2 với hai biến độc lập x và y, có dạng tổng quát:
Phương trình (1) được gọi là phương trình Poisson nếu g(x, y) = 0 và gọi là phương trình Laplace nếu g(x, y) = 0 và f(x, y) = 0. Để dùng phương pháp sai phân ta chia miền thành Mx đoạn, mỗi đoạn dài ∆x = (xf ‐ xo)/Mx dọc theo trục
x và thành My đoạn, mỗi đoạn dài ∆y = (yf ‐ yo)/My dọc theo trục y và thay đạo hàm bậc 2 bằng xấp xỉ 3 điểm:
Trang 2Bây giờ ta khảo sát tiếp các dạng điều kiên biên. Các bài toán PDE có 2 loại điều kiện biên: điều kiên biên Neumann và điều kiên biên Dirichlet. Điều kiện biên Neumann mô tả bằng:
Trang 6Công thức này có thể gói gọn vào thuật toán sau, gọi là thuật toán Eulẻ tiến tường minh:
Trang 8LL
Trang 9− +
k 1 1
k 1 2
k 1 3
k 1
M 1
k 1 M
k 1 k 2 k 3
k
M 1 k M
Trang 1002r b (k 1) b (k)
Trang 15Chương trình chương trình ctheat2D.m dùng để giải phương trình là:
Trang 18yy
Trang 22T 1,s p (2) p (2)1,s 2 ,s pN ,s(2)
s 1
Trang 25S 4
S 3
S 2
Trang 26theo hai cách. Trước hết ta tạo các hàm cơ sở bằng cách dùng hàm
fembasisftn() và vẽ một hàm trong số đó bằng cách dùng lệnh MATLAB
mesh() như hình a. Thứ hai, không tạo ra hàm cơ sở, ta dùng lệnh MATLAB
trimesh() để vẽ các hàm hình dạng cho các nút n = 2, 3, 4 và 5 như hình b‐e. Hình f là đồ thị của tổ hợp tuyến tính của các hàm cơ sở:
Trang 270 1 0 0.5 1
-1 0
1 -1
0 1 0 0.5 1
-1 0
1 -1
0 1 0 0.5 1
-1 0
1 -1
0 1 0 0.5 1
-1 0
1 -1
0 1 0 0.5 1
-1 0
1 -1
0 1 0 2 4
Trang 29Để giải bài toán này bằng FEM, ta xác định 12 điểm trên biên và 19 điểm bên trong, đánh số chúng và chia miền chữ nhất thành 36 miên con hình tam giác
Trang 30a. Phương trình elliptic: Ta sẽ giải phương trình elliptic
với điều kiện bên:
Trang 32g
2. Sử dụng PDETOOL: PDETOOL giải phương trình vi phân đạo hàm riêng
bằng cách dùng phương pháp FEM. Để giải phương trình ta theo các bước sau:
) Nhập lệnh pdetool vào cửa sổ lệnh MATLAB. Cửa sổ PDE toolbox
xuất hiện. Ta có thể bật/tắt tuỳ chọn Grid bằng cách bấm vào Grid trên menu Option. Ta cũng có thể hiệu chỉnh phạm vi trục x và y bằng cách chọn Axes Limit trong nemu Option
Nếu muốn cho các hình gắn vào lưới, ta chọn Snap trong menu Option. Nếu muốn tỉ lệ xích của trục x và t bằng nhau để hình tròn nhìn không giống hình ellip ta chọn Axes Equal trong menu Option.
) Để vẽ miền Ω ta dùng menu Draw hay các icon trên thanh công cụ ngay phía dưới các menu.
) Để đặt điều kiện biên ta dùng menu Boundary hay icon ∂Ω. Ta bấm
lên từng đoạn biên để đặt điều kiện cho nó.
Trang 33chỉnh lưới ta bấm vào Refine Mesh hay icon
) Tiếp theo ta mô tả dạng phương trình và các thông số của nó bằng
cách dùng menu PDE. Muốn thế, ta mở menu PDE hay chọn icon PDE
và chọn PDE Specification và cho các tham số của phương trình.
) Để giải phương trình ta dùng menu Solve hay chọn icon = . Ta chọn menu con Parameters để nhập điều kiện đầu và khoảng thời gian tìm nghiệm
u(0, y) = ey ‐ cosy u(4, y) = eycos4 ‐ e4cosy (vd1.2)
u(x, 0) = cosx ‐ ex u(x, 4) = e4cosx ‐ excos4 (vd1.3)
¾ Bấm vào icon ∂Ω thì đường biên của đối tượng có màu đỏ. Trên mỗi đoạn biên ta cho điều kiện biên theo (vd1.2) và (vd1.3). Để ghi điều kiện biên cho đoạn nào ta bấm đúp chuột lên đoạn đó. Điều kiện biên đã cho
là điều kiện biên Dirrichlet. Trên biên trái, ta ghi điều kiện biên:
h = 1, r = exp(y) ‐ cos(y) trên biên phải:
h = 1, r = eycos4 ‐ e4cosy trên biên dưới:
h = 1, r = cosx ‐ ex
và trên biên trên:
h = 1, r = e4cosx ‐ excos4
Trang 34h = 1, r = exp(y) ‐ cos(y) trên biên phải:
h = 1, r = eycos4 ‐ e4cosy trên biên dưới:
h = 1, r = cosx ‐ ex
và trên biên trên:
h = 1, r = e4cosx ‐ excos4
¾ Bấm đúp chuột vào icon PDE và chọn phương trình dạng parabolic
và các thông số theo (vd2.1): c = 1e‐4, a = 0, f = 0, d = 1. Trong menu
Solve | Parameters ta ghi Time: 0:100:5000, u(t0) = 0 (điều kiện đầu).
¾ Bấm đúp chuột vào icon để tạo lưới và sau đó tinh chỉnh nó.
¾ Bấm đúp chuột vào icon = để giải phương trình.
Trang 35u(0, y, t) = 0 u(2, y, t) = 0 u(x, 0, t) = 0 u(0, 2, t) = 0 (vd3.2) u(x, y, 0) = 0.1sin(πx)sin(πy/2) ∂u/∂t(x, y, 0) = 0 với t = 0 (vd3.3)
Để giải phương trình ta theo các bước sau:
¾ Mở công cụ PDETOOL. Vào menu Option | Axes Limit để hiệu chỉnh
lại phạm vi giá trị của x và y là [0 2] rồi chọn Apply và Close. Chọn
Option | Axes Equal
¾ Bấm vào icon để vẽ hình vuông. Khi vẽ xong, nếu chưa đúng kích
thước ta bấm đúp vào đối tượng bây giờ có tên là R1 để hiệu chỉnh lại thành Left: 0, Bottom: 0, Height: 2, Width: 2.
¾ Bấm vào icon ∂Ω thì đường biên của đối tượng có màu đỏ. Trên mỗi
đoạn biên ta cho điều kiện biên theo (vd3.2). Để ghi điều kiện biên cho đoạn nào ta bấm đúp chuột lên đoạn đó. Điều kiện biên đã cho là điều kiện biên Dirrichlet. Trên biên trái, ta ghi điều kiện biên:
h = 1, r = 0 trên biên phải:
h = 1, r = 0 trên biên dưới: