Mục tiêu của bài báo này là viết chương trình toán học bằng phần mềm MAPLE để phân tích quá trình áp dụng phương trình vi phân tuyến tính cấp 1. Điều quan trọng hơn hết là phải biết vận dụng các kiến thức đó để giải quyết các bài toán, các tình huống cụ thể. Từ đó áp dụng giải một số bài toán phương trình vi phân dạng nâng cao hơn. Như vậy mới gọi là nắm vững và hiểu thấu đáo môn học, đồng thời đưa những thành tựu nổi bật của công nghệ thông tin để hỗ trợ việc đổi mới phương pháp dạy và học theo chủ trương của Bộ Giáo dục và Đào tạo. Từ khóa - Phần mềm toán học Maple, phương trình vi phân, điều kiện ban đầu.
Trang 1DẠY VÀ HỌC PHƯƠNG TRÌNH VI PHÂN TUYẾN TÍNH CẤP 1 HỆ SỐ HẰNG VỚI SỰ TRỢ
GIÚP PHẦN MỀM TOÁN HỌC MAPLE
ThS Trần Ngọc Việt
Khoa Cơ bản - Trường CĐ - GTVT II
TÓM TẮT
Mục tiêu của bài báo này là viết chương trình toán học bằng phần mềm MAPLE để phân tích quá trình áp dụng phương trình vi phân tuyến tính cấp 1 Điều quan trọng hơn hết là phải biết vận dụng các kiến thức đó để giải quyết các bài toán, các tình huống cụ thể Từ đó áp dụng giải một số bài toán phương trình vi phân dạng nâng cao hơn Như vậy mới gọi là nắm vững và hiểu thấu đáo môn học, đồng thời đưa những thành tựu nổi bật của công nghệ thông tin để hỗ trợ việc đổi mới phương pháp dạy và học theo chủ trương của
Bộ Giáo dục và Đào tạo
Từ khóa - Phần mềm toán học Maple, phương trình vi phân, điều kiện ban đầu.
ABSTRACT
This paper presents a new approach to linear differential equations
of the first order constant factor with the help of a program written in the Maple math software It is important that we should know how to apply such knowledge to solving mathematical problems and dealing with practical situations Accordingly, this can be applied to the solution to solve differential equations In this way, the subjects are thoroughly mastered so that great IT achievements in support of the teaching and learning innovation issued by the Ministry of Education and Training can be recorded.
Key word - Maple math software, differential equations, initial conditions.
1 Đặt vấn đề
Phương trình vi phân xuất hiện trên cơ sở phát triển của khoa học, kĩ thuật và những yêu cầu đòi hỏi thực tế Đã có những tài liệu, giáo trình đề cập đến những bài toán cơ học, vật lý dẫn đến sự nghiên cứu các phương trình vi phân tương ứng [4]
Trang 2Cùng với những thành tựu tuyệt vời trong lĩnh vực công nghệ thông tin, người ta đã xây dựng được những phần mềm có tính ưu việt mà nhờ nó việc giải toán được thực hiện
dễ dàng bằng những câu lệnh thật đơn giản, chứ không phải lập trình phức tạp như trước Nhiều phần mềm hỗ trợ tính toán như: Maple, Mathematica, Matlab,… Sử dụng phần mềm toán học trong dạy và học phương trình vi phân được hình thành với mục đích tìm hiểu về phương pháp, phân tích quá trình giải bài toán phương trình vi phân bằng chương trình toán học Bước đầu tìm hiểu một số phần mềm toán học có khả năng hỗ trợ giảng dạy và giải toán Bài viết đi sâu tìm hiểu về phần mềm Maple và sử dụng nó trong việc dạy và học phương trình vi phân ở bậc đại học - cao đẳng
2 Phương trình vi phân tuyến tính cấp 1
2.1 Định nghĩa
Phương trình vi phân cấp 1 có dạng:
y'+ p(x).y = q(x) (2.1) Với p(x), q(x) là các hàm liên tục, được gọi là phương trình vi phân tuyến tính cấp 1
Nếu q(x) 0≠ thì (2.1) gọi là phương trình vi phân tuyến tính cấp 1 không thuần nhất
2.2 Nghiệm tổng quát, nghiệm riêng
hằng số C tùy ý và thỏa mãn các điều kiện:
- Thỏa mãn phương trình vi phân với mỗi giá trị cụ thể của C
- Nếu có điều kiện đầu
0 0 x=x
thỏa mãn điều kiện đầu
nhất nghiệm
Trong quá trình tìm nghiệm tổng quát thường hay gặp biểu thức dạng:
Φ(x,y,C) = 0 (2.2) Nếu giải được y từ phương trình (2.2), ta nhận được nghiệm tổng quát Nếu có trường hợp nghiệm tổng quát ở dạng ẩn, biểu thức đó được gọi là tích phân tổng quát của phương trình vi phân
Trang 3Nghiệm riêng của phương trình vi phân cấp 1 là bất kỳ hàm φ (x, C )0 nhận được
2.3 Định lý [4]
nghiệm riêng của phương trình không thuần nhất thì nghiệm tổng quát của phương trình
2.4 Định lý [3]
Cho phương trình vi phân cấp 1
y' = f(x, y)
∂f (x,y)
x=x
Bài toán tìm nghiệm của phương trình trên thỏa mãn điều kiện ban đầu đó được gọi
là bài toán Cauchy của phương trình
2.5 Cách giải
Giải phương trình (2.1) bằng cách thực hiện các bước như sau:
Bước 1: Tìm nghiệm y tổng quát của phương trình thuần nhất tương ứng
Bước 2: Tìm nghiệm riêng Y nào đó của phương trình không thuần nhất bằng cách
lấy nghiệm riêng Y của phương trình không thuần nhất dưới dạng Y = C(x).u(x) với C(x) là hàm theo x chưa biết Để tìm C(x) ta tìm Y', rồi thay Y, Y' vào phương trình
Bước 3: Lập nghiệm tổng quát của phương trình đã cho là y = y + Y
3 Chương trình toán học - phương trình vi phân tuyến tính cấp 1 điều kiện đầu
3.1 Lệnh nhập xuất dữ liệu và vẽ đồ thị
Hàm readstat("<prompt>"): Hiện dấu nhắc <prompt> trả về dữ liệu nhập từ bàn phím
Trang 4Hàm print(data1, data2,… ): Hiển thị dữ liệu ra màn hình Lưu ý: Xâu ký tự đặt trong dấu ` `
Hàm plot(f,x=a b, y=c d): Vẽ đồ thị trong không gian 2 chiều của hàm số 1 biến
y = f(x)
Hàm plot3d(expr,x=a b, y=c d): Vẽ đồ thị trong không gian 3 chiều của các mặt
2 chiều
Hàm DEplot của thư viện plots cho phép vẽ họ đường cong tích phân, vẽ đồ thị nghiệm của phương trình vi phân
3.2 Xây dựng thủ tục trong Maple
Maple là một ngôn ngữ lập trình hướng thủ tục (procedure) Chế độ thủ tục được thực hiện bằng cách đóng gói một dãy các lệnh xử lí cùng một công việc vào một thủ tục duy nhất, sau đó chỉ cần gọi thủ tục này và Maple tự động thực hiện các lệnh trong thủ tục đó và trả lại kết quả cuối cùng
Khai báo thủ tục như sau:
Procedure_name:=proc(parameter_sequence)
[local local_sequence]
[global global_sequence]
[options options_sequence]
statements_sequence
end;
restrart
proc_eqttcap1:=proc()#Thu tuc giai pt tuyen tinh cap 1 co DK
localp,q,init_con,pt,ptthuannhat,ptthuannhat1,thuannhat,ketqua
nktt:
globalglobal_pt;
p:=readstat("p(x)=");
q:=readstat("q(x)=");
init_con:=readstar("DK_dau=");
global_pt:=pt;
Trang 5print( -Bài giải -);
pt:=diff(y(x),x)+p*y(x)=q:pt;
print( phương trình vi phân tuyến tính cấp 1 có dạng: );
print( pt );
ptthuannhat:=diff(y(x),x)+p*y(x)=0:pttrinhthuannhat;
print( phương trình thuần nhất là: );
print( ptthuannhat );
ptthuannhat1:=(dy/y)+p*dx=0:pttrinhthuannhat1;
print( 'suy ra:' );
print( ptthuannhat1 );
thuannhat:=dsolve(ptthuannhat): thuannhat:
print( Nghiệm tổng quát của phương trình thuần nhất là: );
print( thuannhat);
nktt := dsolve(pt): nktt;
print( Nghiệm tổng quát của phương trình không thuần nhất là: );
print( nktt);
print( Điều kiện ban đầu là: );
print( init_con );
ketqua := dsolve({pt, init_con}, {y(x)}): ketqua:
print( Vậy nghiệm của phương trình đã cho là: );
print( ketqua);
with(DEtools) ;
DEplot(pt,y(x),x=-2 15,{[init_con]},scene = [x,y],stepsize=0.1,arrows = None, y=-2 6, linecolor = blue, title = VẼ ĐỒ THỊ NGHIỆM CỦA PHƯƠNG TRÌNH
VI PHÂN);
end;
#ket thuc chương trinh
Trang 63.3 Lưu và nạp chương trình
Maple cho phép lưu chương trình để sử dụng một cách thuận tiện như sau:
>save proc_eqttcap1 "\\ptvpcap1.m":
Trong file có sử dụng chương trình thực hiện lệnh read fileproc, trong đó fileproc
là tên file (có cả đường dẫn) chứa chương trình biên dịch, được tạo bởi lệnh save:
>restart;
>read "\\ptvpcap1.m";
>proc_eqttcap1(1, cos(x), y(0)=2);
3.4 Sử dụng chương trình
Giải và vẽ đồ thị nghiệm của phương trình vi phân tuyến tính cấp 1 dạng:
y'+ p(x).y = q(x), điều kiện đầu y(x0) = y0
Ví dụ: Giải phương trình vi phân y'+y = cos(x), điều kiện đầu y(0) = 2
Nhập các tham số cho chương trình phương trình vi phân tuyến tính cấp 1 như sau:
>proc_eqttcap1(); #khai bao chu trinh PTVP Tuyen Tinh Cap 1 dieu kien ban dau p(x)=1; #khai bao ham p(x)
q(x)=cos(x); #khai bao ham q(x)
DK_dau=y(0)=2; #khai bao Dieu Kien Dau
Bài giải chi tiết như sau:
-Bài giải -Phương trình vi phân tuyến tính cấp 1 có dạng:
d y(x) + y(x) = cos(x) dx
Phương trình thuần nhất là:
d y(x) + y(x) = 0 dx
Suy ra:
dy + dx = 0 y
Trang 7Nghiệm tổng quát của phương trình thuần nhất là:
x
− y(x) = _Cle Nghiệm tổng quát của phương trình không thuần nhất là:
1cos(x) 1sin( ) _
x
−
Điều kiện ban đầu là:
y(0) = 2
Vậy nghiệm của phương trình đã cho là:
x
−
4 Kết luận
Bài viết đã trình bày các bước cơ bản giải bài toán phương trình vi phân tuyến tính cấp 1 điều kiện ban đầu và đặc biệt chương trình dễ dàng biểu diễn vẽ đồ thị nghiệm của phương trình vi phân so với phương pháp giải tự luận thường gặp bằng một thủ tục của Maple 12 Kinh nghiệm cho thấy là nếu viết một chương trình phức tạp thì trước hết
ta viết và chạy từng lệnh một để xem kết quả thế nào, khi thấy kết quả tốt ta nhóm các lệnh trên thành một chương trình hoàn chỉnh Hy vọng qua chương trình toán học trên
sẽ giúp cho người học có thêm phương pháp và tư duy mới về các dạng phương trình vi phân cấp 1 và 2
Trang 8TÀI LIỆU THAM KHẢO
[1] Trần Quốc Chiến (2008), Giáo trình Phần mềm toán học, Đại học Đà Nẵng.
[2] Phạm Huy Điển, Đinh Thế Lục, Tạ Duy Phượng (1998), Hướng dẫn thực hành tính toán trên chương trình MAPLE V, NXB Giáo dục, Hà Nội.
[3] Nguyễn Đình Trí, Tạ Văn Đĩnh, Nguyễn Hồ Quỳnh (2001), Toán cao cấp, NXB Giáo dục, Hà Nội.
[4] Trần Bình (2005), Giải tích II+III, NXB Khoa học và Kỹ thuật, Hà Nội.
[5] K.Von Bulow supervised by E.S Cheb-Terrab (2000), "Equivalence Methods for Second Order Linear Differential Equations" Master's thesis, Faculty of Mathematics,
University of Waterloo
[6] E.S Cheb-Terrab and T Kolokolnikov (2003), "First-order ordinary differential equations, symmetries and linear transformations", European Journal of Applied
Mathematics , 14:231-246
[7] J.A Weil, "Recent Algorithms for Solving Second-Order Differential Equations" (2002), available at http://pauillac.inria.fr/algo/seminars/sem01-02/weil.pdf