Cài đặt chương trình giải hệ phương trình vi phân sau:

Một phần của tài liệu BÀI GIẢNG-PPTTS-2012 (Trang 101 - 103)

II. CHỮA BÀI TẬP

5. Cài đặt chương trình giải hệ phương trình vi phân sau:

3 2 2 3 2 2 5 3 dx t y tyz dt dy txy txz dt dz tx xz dt                 

trong đoạn t[1,10],với điều kiện đầu là: x(1)=-1,10 y(1)=2,33 và z(1)=5,33. Vẽ đồ thị đường cong Contour 3D với 3 trục toạ độ là x, y và z.

102

ĐỀ CƯƠNG BÀI GIẢNG

Học phần: PHƯƠNG PHÁP TÍNH TOÁN SỐ Đơn vị: Bộ môn Toán, Khoa CNTT Thời gian: Tuần 15 Tiết 57-60

GV giảng 2, Thảo luận 1, Kiểm tra: 1, Tự học: 4

Giáo viên: Nguyễn Trọng Toàn Vũ Anh Mỹ

Chương 6 Phương trình vi phân thường

Các mục 6.4 Phương trình vi phân với điều kiện biên  Ôn tập và giải đáp

Mục đích - yêu cầu

- Trình bày phương trình vi phân với điều kiện biên. - Tổng ôn và kiểm tra

NỘI DUNG

I. LÝ THUYẾT

6.5 GIẢI PHƯƠNG TRÌNH VI PHÂN VỚI ĐIỀU KIỆN BIÊN

Mục này sẽ giới thiệu phương pháp bắn (Shooting) để giải một dạng phương trình vi phân với điều kiện biên. Đây là một bài toán rất khó nếu như ta không sử dụng các phương pháp số và chương trình hóa quá trình giải.

Giả sử ta muốn giải bài toán Blasius: Tìm hàm y=f(x) xác định trong khoảng [0,)thỏa mãn phương trình vi phân: ''' 1 . '' 0

2

ff f, với các điều kiện:

 0 ' 0   0, '( ) 1

fff   .

Bài toán này có thể giải được bằng các phương pháp đã giới thiệu ở mục trước nếu ta biết điều kiện đầu đối với đạo hàm bậc hai: f''(0)=?. Thay vào đó ta lại biết điều kiên biên

vô cùng đối với đạo hàm bậc nhất: f '( ) 1.

Để giải bài toán này, người ta thay điều kiện biên vô cùng bằng điều kiện biên tại

x=10 để thành lập phương trình tìm điều kiện ban đầu phù hợp cho đạo hàm bậc hai. Sau đó

giải bài toán Cauchy với điều kiện đầu tìm được. Kỹ thuật này được gọi là phương pháp bắn. Thủ tục giải bài toán này như sau:

- Lập hàm về phải cho phương trình của bài toán Blasius:

% Function for computing solutions to the Blasius equation function fder =Blasius(x,f)

fder(1)= f(2); fder(2)= f(3);

fder(3)= -f(1)*f(3)/2; fder=fder.';

- Lập hàm Shooting để tìm điều kiện đầu phù hợp cho đạo hàm bậc hai:

% Function for computing solutions to the Blasius equation function dev =Shooting(z)

global Xinf; f0=([ 0 0 z]); Xspan = [ 0 Xinf]; [x, f] = ode45('Blasius', Xspan,f0); n =length(x); dev=f(n,2)-1; %% f’(Xinf)-1

103

% MATLAB code computing solutions to the Blasius equation clear;

global Xinf; Xinf=10;

z0=0.5;

z=fzero('Shooting',z0); %% Giải phương trình f’(Xinf)=1 f0=([ 0 0 z]); Xspan = [ 0 Xinf]; [x, f] = ode45('Blasius', Xspan,f0); figure(1); plot(f(:,2),x); axis([ 0 1.1 0 10]); axis('square'); xlabel(' Velocity U/Uinf');

ylabel(' Distance from the wall');

Chú ý chương trình đã sử dụng khai báo biến toàn cục trong MATLAB:

global X Y Z ...: Khai báo các biến X, Y và Z là các biến toàn cục. Giá trị ban đầu của mỗi biến là một ma trận rỗng. Nếu các hàm có sử dụng các biến này thì cũng phải có khai báo GLOBAL.

Một phần của tài liệu BÀI GIẢNG-PPTTS-2012 (Trang 101 - 103)

Tải bản đầy đủ (PDF)

(103 trang)