TIỂU LUẬN MÔN SYMBOLIC- XÂY DỰNG CHƯƠNG TRÌNH GIẢI PHƯƠNG TRÌNH VI PHÂN

10 711 0
TIỂU LUẬN MÔN SYMBOLIC- XÂY DỰNG CHƯƠNG TRÌNH GIẢI PHƯƠNG TRÌNH VI PHÂN

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

Thông tin tài liệu

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN SYMBOLIC- XÂY DỰNG CHƯƠNG TRÌNH GIẢI PHƯƠNG TRÌNH VI PHÂN Giảng viên hướng dẫn : PGS.TS Đỗ Văn Nhơn Học viên thực hiện : Nguyễn Thị Ngọc Diễm MSHV : CH1101075 Lớp : Cao học khóa 6 Tp Hồ Chí Minh, tháng 02 năm 2013 MỤC LỤC Chương 1 TRI THỨC VỀ PHƯƠNG TRÌNH VI PHÂN 1.1 Phương trình vi phân cấp một 1.1.1 Định nghĩa Phương trình vi phân cấp 1 có dạng: Trong đó: 1.1.2 Phân loại bài tập 1.1.2.1 Dạng 1: Phương trình vi phân toàn phần P(x,y)*dx+Q(x,y)*dy=0 Nếu vế trái là vi phân toàn phần của một hàm số U(x,y), nghĩa là U(x,y)=P(x,y)*dx+Q(x,y)*dy Điều kiện cần và đủ là: Cách giải: 1.1.2.2 Dạng 2: Phương trình vi phân tách biến Là phương trình vi phân có dạng : (1) Cách giải: Lấy tích phân phương trình (1), ta có: 1 Dạng 3: Phương trình vi phân tuyến tính cấp một (1) Với f(x)=0 thì ta có phương trình tuyến tính thuần nhất sau: (2) Phương trình này có nghiệm được tìm như sau: Chú ý là: không cần xét trường hợp |y|, vì ta dùng hằng số C để biểu diễn thay điều đó. Cách giải: 3 - Với phương trình (1), có thể giải bằng phương pháp biến thiên hằng số tức là tìm nghiệm của nó ở dạng (3) nhưng ta coi C là hàm số, dạng: - Lấy đạo hàm (4) và thay vào (1), có: - Từ đó ta có: - Vậy y= 1.1.2.3 Dạng 4: Phương trình vi phân Bernoulli Cách giải: 1.1.2.4 Dạng 5: Phương trình vi phân đẳng cấp cấp một Phương trình vi phân này có dạng: (1) Cách giải: Đặt y=u*x =>y’=u+x*u’. Thế vào (1) ta được: u+x*u’=f(u) Đưa phương trình trên về dạng tách biến: Lưu ý: khi giải phương trình (5) ta nhận được nghiệm tổng quát khi f(u)-u # 0. Nếu f(u)-u=0 tại u=a thì ta có thêm nghiệm y=ax 1.2 Phương trình vi phân cấp hai 1.2.1 Định nghĩa Phương trình vi phân cấp hai có dạng: 1.2.2 Phân loại bài tập 1.2.2.1 Dạng 1: Phương trình vi phân cấp hai giảm cấp được Dễ dạng tìm được nghiệm của phương trình vi phân này sau hai lần lấy tích phân: 4 1.2.2.2 Dạng 2: Phương trình vi phân cấp hai hệ số hằng (a) Phương trình vi phân cấp hai thuần nhất Có dạng: (trong đó p, q là hằng số) (b) Phương trình vi phân cấp hai không thuần nhất vế phải có dạng đặc biệt Có dạng: (trong đó p, q là hằng số) a. Vế phải Trong đó là đa thức bậc n, m tương ứng, là các số thực b. Vế phải Trong đó là đa thức bậc n, m tương ứng, là các số thực 1.2.2.3 Dạng 3: Phương trình vi phân cấp hai khuyết y 1.2.2.4 Dạng 4: Phương trình vi phân cấp hai khuyết x 5 Chương 2 MÔ HÌNH BÀI TOÁN VÀ THUẬT TOÁN 2.1 Mô hình bài toán 2.1.1 Cấu trúc mô hình bài toán có dạng (F,x,y) Trong đó: o F là phương trình vi phân của hàm y theo biến x 2.1.2 Ví dụ Ví dụ 1: Giải phương trình vi phân sau: Bài toán trên được mô hình theo cấu trúc dưới đây: o F:= dy/dx=exp(3*x+2*y) o x:=x o y:=y Nội dung được lưu vào file “de1.txt” như sau: exp(x)*(x'+1)=1,t,x) Ví dụ 2: Giải phương trình vi phân sau: Bài toán trên được mô hình theo cấu trúc dưới đây: o F:= exp(x)*(x'+1)=1 o x:=t o y:=x Nội dung được lưu vào file “de1.txt” như sau: exp(x)*(x'+1)=1,t,x 2.2 Thuật toán Thuật toán để giải các phương trình vi phân là những thủ tục riêng lẽ giải cho từng loại phương trình vi phân một. Nhưng trước khi áp dụng thuật toán vào 6 giải một phương trình vi phân bất kỳ, ta sẽ có thuật toán phân dạng để tìm ra đúng dạng toán của phương trình vi phân đang cần giải (ví dụ dạng tách biến hay dạng toàn phương…). Sau đây sẽ minh họa một thuật toán cho việc giải phương trình vi tách biến sau khi đã được phân loại: (Thuật toán đuọc trình bày bằng ngôn ngữ Maple) > Differential_Equation[ptTachBien]:= proc(pt, x::string, y::string) local f, g, F, G, kq, sol,k,pt_temp; global Sols,canSolve; #B1: Dua ve dang Tach Bien: f(x)*dx+g(y)*dy=0 Sols:=[op(Sols),["string","Đây là phương trình vi phân Tách biến"]]; Sols:=[op(Sols),["string",cat("Đưa về dạng f(",x,")*d",x,"+g(",y,")*d",y,"=0, ta được: ")]]; pt_temp:=dangTachBien(pt,x,y); if pt_temp=0 then canSolve:=0; print("canSOlve",canSolve);return; fi; Sols:=[op(Sols),["formula",convert(pt_temp,string)]]; f := coeff(lhs(pt_temp),parse(cat("d",x))); g := coeff(lhs(pt_temp),parse(cat("d",y))); #B2: Lấy nguyên hàm 2 vế Int(f(x)*dx)+Int(g(y)*dy)=C Sols:=[op(Sols),["string","Lấy nguyên hàm 2 vế của phương trình trên: "]]; Sols:=[op(Sols),["formula",convert(Int(f,parse(x))+Int(g,parse(y))=0,string)]]; F := int(f, parse(x)); G := int(g, parse(y)); kq := simplify(F+G) = chonHeSo(); Sols:=[op(Sols),[["string","Kết quả: "],["formula",convert(kq,string)]]]; return kq; 7 end proc: 8 Chương 3 CÀI ĐẶT - THỬ NGHIỆM 3.1 Xây dựng package “Differential_Equation” Package Differential_Equation được xây dựng trong Maple hỗ trợ giải các bài toán phương trình vi phân. Gồm các hàm chính sau: - Các hàm: o PTVPC1, PTVPC2 thực hiện giải các bài toán lần lượt theo loại một và hai. o Hàm Determinate_Goal thực hiện giải toán một cách tổng quát không cần phân loại bài - Biến Toàn cục (global): Sols, CanSolve o CanSolve: cho biết bài toán giải được hay không, nếu không giải được CanSolve cho kết quả là 0 o Sols: lưu trữ các bước giải cụ thể - Các hàm giải cụ thể các dạng của phương trình vi phân như: "VPToanPhan", "VPTachBien", "VPTuyenTinhCap1", "VPBernoulli", "VPDangCapCap1", "VPCap2GiamCapDuoc", "VPCap2KhuyetX", "VPCap2KhuyetY", "VPCap2HeSoHang", "VPKhongPhanLoai" 3.2 Cách nhập đề 3.2.1.1 Nhập đề trực tiếp Hàm Determinate_Goal có cấu trúc sau: >Determinate_Goal(problem::string) Ví dụ 1: Giải phương trình vi phân sau: > Determinate_Goal(“exp(x)*(x’+1)=1,x,y”) Ví dụ 2: Giải phương trình vi phân sau: >Determinate_Goal(“dy/dx=exp(3*x+2*y),x,y”) 3.2.1.2 Nhập bài toán từ file >Determinate_Goal(fileName::string,1) Ví dụ: Giải phương trình vi phân sau: Nội dung được lưu vào file “De3.txt” như sau: ((dy/dx)-y=x^2+2,x,y) Gọi hàm giải bài toán như sau: > Determinate_Goal(“D:/ptViPhan/De/ De3.txt”,1) 9 3.3 Ví dụ >Determine_Goal("p'-p+sin(x)*cos(x)-exp(x) = 0,x,p"); Hiển thị lời giải: > Determine_Goal("y''-2*y'-3*y=0,x,y"): Hiển thị lời giải: 10 . LỤC Chương 1 TRI THỨC VỀ PHƯƠNG TRÌNH VI PHÂN 1.1 Phương trình vi phân cấp một 1.1.1 Định nghĩa Phương trình vi phân cấp 1 có dạng: Trong đó: 1.1.2 Phân loại bài tập 1.1.2.1 Dạng 1: Phương trình. Phương trình vi phân tách biến Là phương trình vi phân có dạng : (1) Cách giải: Lấy tích phân phương trình (1), ta có: 1 Dạng 3: Phương trình vi phân tuyến tính cấp một (1) Với f(x)=0 thì ta có phương. MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN TIỂU LUẬN MÔN SYMBOLIC- XÂY DỰNG CHƯƠNG TRÌNH GIẢI PHƯƠNG TRÌNH VI PHÂN Giảng vi n hướng dẫn : PGS.TS Đỗ Văn Nhơn Học vi n thực hiện : Nguyễn Thị Ngọc Diễm MSHV

Ngày đăng: 10/04/2015, 00:50

Từ khóa liên quan

Mục lục

  • Chương 1 TRI THỨC VỀ PHƯƠNG TRÌNH VI PHÂN

    • 1.1 Phương trình vi phân cấp một

      • 1.1.1 Định nghĩa

      • 1.1.2 Phân loại bài tập

        • 1.1.2.1 Dạng 1: Phương trình vi phân toàn phần

        • 1.1.2.2 Dạng 2: Phương trình vi phân tách biến

        • 1 Dạng 3: Phương trình vi phân tuyến tính cấp một

        • 1.1.2.3 Dạng 4: Phương trình vi phân Bernoulli

        • 1.1.2.4 Dạng 5: Phương trình vi phân đẳng cấp cấp một

        • 1.2 Phương trình vi phân cấp hai

          • 1.2.1 Định nghĩa

          • 1.2.2 Phân loại bài tập

            • 1.2.2.1 Dạng 1: Phương trình vi phân cấp hai giảm cấp được

            • 1.2.2.2 Dạng 2: Phương trình vi phân cấp hai hệ số hằng

            • 1.2.2.3 Dạng 3: Phương trình vi phân cấp hai khuyết y

            • 1.2.2.4 Dạng 4: Phương trình vi phân cấp hai khuyết x

            • Chương 2 MÔ HÌNH BÀI TOÁN VÀ THUẬT TOÁN

              • 2.1 Mô hình bài toán

                • 2.1.1 Cấu trúc mô hình bài toán có dạng

                • 2.1.2 Ví dụ

                • 2.2 Thuật toán

                • Chương 3 CÀI ĐẶT - THỬ NGHIỆM

                  • 3.1 Xây dựng package “Differential_Equation”

                  • 3.2 Cách nhập đề

                    • 3.2.1.1 Nhập đề trực tiếp

                    • 3.2.1.2 Nhập bài toán từ file

                    • 3.3 Ví dụ

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

  • Đang cập nhật ...

Tài liệu liên quan