Áp dụng matlab để xây dựng phần mềm trợ giúp việc dạy và học

87 236 0
Áp dụng matlab để xây dựng phần mềm trợ giúp việc dạy và học

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRẦN HOÀI PHÚC ÁP DỤNG MATLAB ĐỂ XÂY DỰNG PHẦN MỀM TRỢ GIÚP VIỆC DẠY VÀ HỌC LUẬN VĂN THẠC SĨ KỸ THUẬT TOÁN TIN Hà Nội – Năm 2014 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRẦN HOÀI PHÚC ÁP DỤNG MATLAB ĐỂ XÂY DỰNG PHẦN MỀM TRỢ GIÚP VIỆC DẠY VÀ HỌC Chuyên ngành: TOÁN TIN Mã đề tài: TOAN-VINH12 LUẬN VĂN THẠC SĨ KỸ THUẬT TOÁN TIN NGƯỜI HƯỚNG DẪN KHOA HỌC GS.TSKH: LÊ HÙNG SƠN Hà Nội – Năm 2014 LỜI CẢM ƠN Đầu tiên em xin gửi lời cảm ơn chân thành đến toàn thể thầy cô giáo Viện Toán ứng dụng Tin học tận tình dạy dỗ chúng em suốt trình học tập Viện Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới Thầy giáo GS.TSKH Lê Hùng Sơn Viện Toán ứng dụng Tin học trường Đại học Bách Khoa Hà Nội quan tâm hướng dẫn đưa gợi ý, góp ý, chỉnh sửa vô quý báu cho em trình làm luận văn tốt nghiệp Cuối xin chân thành cảm ơn gia đình, người bạn giúp đỡ, chia sẻ với em suốt trình học tập làm luận văn LỜI CAM ĐOAN Tôi xin cam đoan kết đạt luận văn sản phẩm cá nhân thực nghiêm túc hướng dẫn Thầy giáo GS.TSKH Lê Hùng Sơn Trong toàn nội dung luận văn, điều trình bày cá nhân tổng hợp từ nhiều nguồn tài liệu Tất tài liệu tham khảo có xuất xứ rõ ràng trích dẫn hợp pháp Tôi xin hoàn toàn chịu trách nhiệm chịu hình thức kỷ luật theo qui định cho lời cam đoan Hà Nội, ngày 12 tháng năm 2014 Trần Hoài Phúc MỤC LỤC MỞ ĐẦU CHƯƠNG MATLAB VÀ CÁC TÍNH NĂNG CƠ BẢN CỦA MATLAB 1.1 Tổng quan Matlab 1.1.1 Khả ứng dụng Matlab 1.1.2 Đặc điểm Matlab 1.1.3 Cửa sổ làm việc Matlab 1.2 Các khái niệm 1.2.1 Hằng: 1.2.2 Biến 10 1.2.3 Kiểu liệu: 10 1.2.4 Các phép toán 11 1.2.5 Biểu thức 12 1.2.6 Số Phức 13 1.2.7 Các lệnh Matlab 14 1.2.8 Các phép toán mảng thao tác với mảng 20 1.3 Các hàm số học: 34 1.3.1 Hàm gdc: 34 1.3.2 Hàm lem 34 1.3.3 Hàm ceil 34 1.3.4 Hàm rem 34 1.3.5 Hàm round 34 1.3.6 Hàm floor 35 1.3.7 Hàm fix 35 1.3.8 Hàm sign 35 1.4 Các hàm giải tích 35 1.4.1 Một số hàm bản: 35 1.4.2 Tính đạo hàm 35 1.4.3 Tìm giới hạn: 38 1.4.4 Tính tích phân 39 1.5 Các hàm đại số 41 1.5.1 Hàm abs 41 1.5.2 Hàm sqrt 41 1.5.3 Hàm conv 41 1.5.4 Hàm deconv 42 1.5.5 Lệnh roots 42 1.5.6 Hàm poly2sym 43 1.6 Đồ họa matlab 43 1.6.1 Đồ họa hệ tọa độ phẳng 43 CHƯƠNG LẬP TRÌNH TRONG MATLAB 48 2.1 Cách tổ chức chương trình Matlab 48 2.1.1 Chương trình: 48 2.1.2 Dòng lệnh 48 2.1.3 Câu giải thích (chú thích) 49 2.2 Câu lệnh gán 49 2.3 Các lệnh vào/ra liệu 49 2.3.1 Lệnh đưa liệu vào 49 2.3.2 Lệnh đưa liệu hình 50 2.4 Các cấu trúc điều khiển 50 2.4.1 Lệnh if … else 50 2.4.2 Câu lệnh swich- case 51 2.4.3 Câu lệnh for 52 2.4.4 Lệnh While 53 2.4.5 Lệnh function 54 2.4.6 Các lệnh break, return, error pause 55 CHƯƠNG 3: ÁP DỤNG GIẢI MỘT SỐ BÀI TOÁN 57 3.1 Bài toán khảo sát hàm số: hàm đa thức phân thức 57 3.1.1 Các bước để khảo sát hàm số y=f(x) 57 3.1.2 Khảo sát vẽ đồ thị hàm số đa thức y=f(x) 57 3.1.3 Chương trình Matlab hàm đa thức 58 3.1.4 Chương trình Matlab khảo sát hàm phân thức 61 3.2 Bài toán tìm cực trị hàm số khoảng (a,b) 70 3.2.1 Thuật toán: 70 3.2.2 Chương trình Matlab 71 3.3 Bài toán xác định tiệm cận hàm y=f(x) 74 3.3.1 Bài toán 74 3.3.2 Thuật toán: 74 3.3.3 Chương trình Matlab 75 KẾT LUẬN 82 TÀI LIỆU THAM KHẢO 83 MỞ ĐẦU Lý chọn đề tài: Cùng với phát triển công nghệ thông tin môn Giải tích số phát triển mạnh nhờ ứng dụng công nghệ thông tin vào môn học Thực tế nay, có nhiều tài liệu viết giải tích song tài liệu giới thiệu phần mềm tính toán (Matlab, Maple) chương trình máy tính giải toán số Trong Matlab phần mềm tiếng công ty MathWorks, ngôn ngữ phù hợp cho tính toán kỹ thuật Matlab tích hợp tính toán, hiển thị lập trình môi trường dễ sử dụng Các ứng dụng tiêu biểu Matlab gồm: Hỗ trợ toán học tính toán; phát triển thuật toán, mô hình mô phỏng; phân tích, khảo sát hiển thị số liệu; đồ họa khoa học kỹ thuật; phát triển ứng dụng với giao diện đồ họa, Ngoài Matlab có trang bị thêm ToolBox- gói chương trình (thư viện) cho ứng dụng đa dạng xử lý tín hiệu, nhận dạng hệ thống , xử lý ảnh Đây tập mã nguồn viết Matlab dựa theo thuật toán mới, hữu hiệu mà người dùng bổ sung, chỉnh sửa thêm hàm Matlab thiết kế để giải toán số không nhằm mục đích tính toán ký hiệu Maple hay Mathematica Tuy nhiên Matlab tính toán ký hiệu nhờ hàm Synbolic Math TooBox Hiện có nhiều trường đại học nước, đặc biệt trường đại học kỹ thuật đưa Matlab vào giảng dạy nghiên cứu Với ưu điểm mạnh tính toán Matlab thích hợp cho việc giảng dạy môn học thuộc lĩnh vực giải tích số Việc sử dụng Matlab để lập trình thuật toán môn học thuận lợi, dễ dàng vẽ đồ thị để thị kết kiểm tra kết quả, thư viện phong phú hàm toán học cài đặt sẵn Dùng Matlab để thiết kế phần mềm trợ giúp môn Toán, đặc biệt phần giải tích số có ý nghĩa thiết thực nhằm nâng cao chất lượng dạy học Mục tiêu nghiên cứu Sử dụng ngôn ngữ lập trình Matlab đế xây dựng chương trình trợ giúp giải toán giải tích số nhằm nâng cao hiệu giảng dạy học tập môn học Nhiệm vụ phạm vi nghiên cứu - Tìm hiểu phần mềm toán học Matlab - Nghiên cứu nội dung môn giải tích số, theo chương trình giảng dạy trường Đại học Bách Khoa Hà Nội - Sử dụng phần mềm Matlab xây dựng chương trình giải toán (khảo sát hàm số) Phương pháp nghiên cứu - Nghiên cứu tài liệu hướng dẫn sử dụng lập trình phần mềm Matlab - Thiết kế thuật toán để giải số toán Khảo sát hàm số - Cài đặt thuật toán chạy phần mềm Matlab nhằm giải toán Cấu trúc luận văn: - Phần mở đầu - Chương Matlab tính Matlab - Chương Lập trình Matlab - Chương Vận dụng Matlab giải số toán khảo sát vẽ đồ thị hàm số CHƯƠNG MATLAB VÀ CÁC TÍNH NĂNG CƠ BẢN CỦA MATLAB 1.1 Tổng quan Matlab 1.1.1 Khả ứng dụng Matlab - Một tính tuyệt vời Matlab thư viên dựng sẵn phong phú chương trình tính toán công cụ hiển thị đồ họa - Matlab cho phép người dùng tiến hành nhiều nhiệm vụ thông thường liên quan đến việc xử lý tính toán số với tốc độ nhanh, xác - Người sử dụng xây dựng riêng hàm toán học cho ứng dụng đặc biệt - Giao diện đồ họa Matlab đẹp, sinh động, hình Matlab chèn vào phần mềm soạn thảo Word 1.1.2 Đặc điểm Matlab Chương trình Matlab xây dựng tương tự ngôn ngữ lập trình có cấu trúc thông thường Đặc điểm chương trình Matlab đơn giản, ngắn gọn nhờ việc sử dụng thư viện đầy đủ hàm lập sẵn mô tả cấu trúc toán học thể tính toán cách tự nhiên Ví dụ: So sánh hai phép cộng vécto ngôn ngữ Pascal Matlab: Trong Pascal: {Khai báo :} Var A: array[1 5] of integer=(5, 3, 4, 6, 0); B: array[1 5] of integer=(-1, 4, 9, 5, 4); C: array[1 5] of integer; I: Integer; {main} Begin For i:=1 to x + x2 - 20 15 10 -5 -10 -15 -20 -20 -15 -10 -5 x 10 Hình 3.1 Đồ thị hàm số y=2x2 + 3x -1 Ví dụ 2: Để khảo sát hàm phân thức : f(x)= x  3x x 1 Chạy chương trình summ.m >> summ Kết quả: nhap f(x):(x^2-3*x)/(x+1) tap xac dinh: R\{-1} Su bien thien: ham so dong bien tren khoang: (-inf,-3) U (1,+inf) ham so nghich bien tren khoang: U (-3,1) cac diem cuc dai: -3 cac diem cuc tieu: ,1 thi ko co tiem can ngang x-> inf thi ko co tiem can ngang x-> -inf thi co tiem can xien la y= x - x-> -inf thi co tiem can xien la y= x - x-> inf thi co tiem can dung la x= -1 69 15 20 Đồ thị hàm f(x) x + 1+0 y = 20 15 10 y -5 -10 -15 -20 -20 -15 -10 Hình 3.2 Đồ thị hàm số -5 x 10 15 x  3x x 1 3.2 Bài toán tìm cực trị hàm số khoảng (a,b) Input: Nhập hàm f(x), nhập a, nhập b từ bàn phím Output: Cực trị giá trị cực trị Vẽ đồ thị, đánh dấu cực trị đồ thị Giới hạn : - Chỉ làm có hữu hạn cực trị - Không xét hàm ghép 3.2.1 Thuật toán: B1: Tìm điểm dừng: giải phương trình y’= B2: Tìm điểm đạo hàm không xác định: giải phương trình 1/y’= 70 20 B3: Xây dựng mảng nghiệm (Nghiệm y’=0 1/y’=0) B4: Sắp xếp mảng nghiệm từ bé đến lớn B5: Loại điểm khoảng (a,b) B6: Xét cực trị: xét xét dấu bảng biến thiên Nếu qua điểm ngờ x(i) đạo hàm đổi dấu từ âm sang dương m số thực hữu hạn hàm số đạt cực đại tiểu x(i) giá trị cực tiểu m Ngược lại, qua x(i) đạo hàm đổi dấu từ dương sang âm m số thực hữu hạn hàm số đạt cực đại x(i) giá trị cực đại m B7: Vẽ đồ thị - Vẽ f (x) khoảng (a, b) - Đánh dấu điểm cực trị 3.2.2 Chương trình Matlab function cuctri syms x f=input('nhap ham so f= '); disp('nhap khoang (a,b)') a=input('a= '); b=input('b= '); while a>b disp('nhap sai a,b') a=input('a= '); b=input('b= '); end ezplot(char(f)) warning ('off') [~,mau]=numden(diff(f)); m=[solve(diff(f));solve(mau)]; m=double(m);m=unique(m); i=1; while i0.00000001 || m(i)=b m(i)=[]; 71 i=i-1; else m(i)=m(i)-imag(m(i))*1i; end i=i+1; end k=0; for i=1:length(m) if double(subs(diff(f,2),x,m(i)))0 && ~isinf(subs(diff(f,2),x,m(i))) disp(['diem (' num2str(m(i)) ',' num2str(subs(f,x,m(i))) ') la diem Cuc Tieu']) text(m(i),subs(f,x,m(i)),['(' num2str(m(i)) ',' num2str(subs(f,x,m(i))) ')']) %danh dau cuc tieu else k=k+1; end end if k==length(m) disp('ham so khong co cuc tri khoang (a,b)') end end Ví dụ 1: Tìm cực trị hàm : x2  x  khoảng (-3,3) nhap ham so f= x^2-2*x+3 nhap khoang (a,b) a= -3 b= diem (1,2) la diem Cuc Tieu 72 Đồ thị: x2 - x + 50 40 30 20 10 (1,2) -6 -4 -2 x Hình 3.3 Đồ thị hàm số x2  x  Ví dụ 2: Tìm cực trị hàm y= x^3-6*x^2+4 khoảng (-5,5) Chạy chương trình cuctri.m nhap ham so f= x^3-6*x^2+4 nhap khoang (a,b) a= -5 b= diem (0,4) la diem Cuc Dai diem (4,-28) la diem Cuc Tieu Đồ thị: 73 x3 - x2 + (0,4) (4,-28) -50 -100 -150 -200 -250 -300 -350 -400 -450 -6 -4 -2 x Hình 3.4 Đồ thị hàm f= x3-6*x2+4 3.3 Bài toán xác định tiệm cận hàm y=f(x) 3.3.1 Bài toán Input - Nhập hàm y = f (x) Output - Các tiệm cận - Vẽ đồ thị tiệm cận hệ trục tọa độ Giới hạn Hàm f (x) có hữu hạn tiệm cận Không xét hàm lượng giác hàm log 3.3.2 Thuật toán: 1) Tiệm cận ngang tiệm cận xiên: Bước 1: Tính giới hạn: a = limit(f ,±inf ): Nếu a số hữu hạn kết luận tiệm cận ngang y = a Nếu a vô hạn qua bước (kiểm tra a hữu hạn, ta dùng : if a > a − end) 74 Bước 2: Tính giới hạn: b = limit(f − ax,±inf ): Nếu b hữu hạn tiệm cận xiên y = ax + b Nếu không hàm số tiệm cận xiên trường hợp 2) Tiệm cận đứng: Bước 1: Tách tử mẫu lệnh [tu mau] = numden(f ), giải phương trình mẫu = để tìm điểm ngờ lệnh diemngo = solve(mau) Kiểm tra điều kiện tiệm cận đứng: limit(f , diemngo(i)) ±inf kết luận x = diemngo(i) tiệm cận đứng 3) Vẽ đồ thị f tiệm cận hệ trục tọa độ 3.3.3 Chương trình Matlab function hamso %HAM Y=F(X) XAC DINH CAC TIEM CAN, VE DO THI VÀ TIEM CAN syms x warning off y=input('nhap ham so y= '); set(ezplot(char(y),[-20,20,-20,20]),'Color','green','LineWidth',2) hold on %tim tiem can xien va ngang a=limit(y,x,inf); b=limit(y,x,-inf); if (a==b && isreal(a)) tb=['do thi co tiem can ngang la y= ' char(a)]; disp(tb) disp('do thi khong co tiem can xien') ezplot(char(a),[-20,20,-20,20]) else if isreal(a) tb=['do thi co tiem can ngang la y= ' char(a) 'khi x-> inf']; disp(tb) disp('do thi khong co tiem can xien x-> inf') 75 ezplot(char(a),[-20,20,-20,20]) else tb=('do thi ko co tiem can ngang x-> inf'); disp(tb) end if isreal(b) tb=['do thi co tiem can ngang la y= ' char(b) 'khi x-> -inf']; disp(tb) disp('do thi khong co tiem can xien x-> inf') ezplot(char(b),[-20,20,-20,20]) else tb=('do thi ko co tiem can ngang x-> -inf'); disp(tb) end end %tim tiem can xien neu o tren khong co tiem can ngang b=double(b); if isinf(b) a1=limit(y/x,x,-inf); if isreal(a1) b1=limit(y-a1*x,x,-inf); if isreal(b1) tb=['do thi co tiem can xien la y= ' char(a1*x+b1) ' disp(tb) ezplot(char(a1*x+b1),[-20,20,-20,20]) else tb=('do thi ko co tiem can xien x-> -inf'); disp(tb) end 76 x-> -inf']; else tb=('do thi ko co tiem can xien x-> -inf'); disp(tb) end end a=double(a); if isinf(a) a1=limit(y/x,x,inf); if isreal(a1) b1=limit(y-a1*x,x,inf); if isreal(b1) tb=['do thi co tiem can xien la y= ' char(a1*x+b1) ' disp(tb) ezplot(char(a1*x+b1),[-20,20,-20,20]) else tb=('do thi ko co tiem can xien x-> inf'); disp(tb) end else tb=('do thi ko co tiem can xien x-> inf'); disp(tb) end end %tim tiem can dung [~,m]=numden(y); k=0; m=solve(m); %tim nhung phan tu x lam cho y bat dinh m=double(m); c=solve(exp(y));c=double(c); 77 x-> inf']; d=solve(1/log(y));d=double(d); e=solve(1/exp(y));e=double(e); m=[0;c;e;d;m];m=unique(m); i=1; while i inf thi ko co tiem can ngang x-> -inf thi co tiem can xien la y= x x-> -inf thi co tiem can xien la y= x x-> inf thi co tiem can dung la x= 80 10 15 20 Đồ thị x - 1+0 y = 20 15 10 y -5 -10 -15 -20 -20 -15 -10 -5 x Hình 3.6 Đồ thị hàm số y  10 15 20 x3  x  x2 1 Nhận xét: Chúng ta thấy cở sở Toán học cách khảo sát hàm số giải toán Matlab có ưu điểm : - Thực việc tính toán như: Tính đạo hàm hàm số, tìm giới hạn của, tìm nghiệm phương trình, thông qua lệnh Matlab thực cách dễ dàng, xác - Với khả đồ họa mạnh việc vẽ đồ thị hàm số tiệm cận hàm số trở nên dễ dàng trực quan sinh động 81 KẾT LUẬN Trong luận văn này, trình bày vấn đề phần mềm Matlab vấn đề dùng phần mềm Matlab để giải số toán khảo sát hàm số Trong chương, mục trình bày chương trình MATLAB để giải toán Các chương trình MATLAB viết dạng mở, có nghĩa nhập hàm cần tính toán theo dạng để tính cho phù hợp với yêu cầu thực tế Như với luận văn này, kết hợp để đưa vào giảng dạy môn học Giải tích số trường THPT, Đại học giúp cho môn học trở nên sinh động hiệu nhiều so với cách giảng dạy truyền thống Bởi lẽ đây, người học thực hành để kiểm tra cụ thể vấn đề vừa học cách trực tiếp MATLAB dựa sở chương trình MATLAB trình bày luận văn Ngoài ra, từ chương trình MATLAB chúng tôi, nói người học chọn lựa nhập hàm theo dạng để tính cho phù hợp với yêu cầu cụ thể toán, dựa vào để lập chương trình MATLAB tương tự để giải toán theo ý riêng Điều giúp nâng cao hiệu giảng dạy cho môn học, phát huy tính tự học, tính ứng dụng phát triển tư học sinh, sinh viên; Qua luận văn này, thực bắt đầu làm quen với công việc đọc tài liệu khoa học cách nghiêm túc có hệ thống từ dẫn tận tình Thầy giáo GS.TSKH LÊ HÙNG SƠN Tôi hệ thống lại vấn đề Giải tích số, tiếp cận kiến thức MATLAB lập trình MATLAB, tự điều chỉnh, bổ sung để chương trình MATLAB phù hợp với cấu trúc mục tiêu luận văn này; thấy tác dụng tích cực việc ứng dụng công nghệ thông tin vào học tập giảng dạy 82 TÀI LIỆU THAM KHẢO 1] Tạ Văn Đĩnh (1998), Phương pháp tính, NXB GD [2] Đặng Minh Hoàng (2000), Đồ họa với Matlab 5.3, NXB thống kê [3] Hồ Văn Sung (2008), Học giải toán máy tính, NXB KH KT [4] Trần Minh Toàn (2012), Lập trình Matlab, Viện Toán ứng dụng Tin học, ĐHBK Hà Nội [5] Lê Trọng Vinh (2001), Giải tích số, NXB GD 83 ...BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI TRẦN HOÀI PHÚC ÁP DỤNG MATLAB ĐỂ XÂY DỰNG PHẦN MỀM TRỢ GIÚP VIỆC DẠY VÀ HỌC Chuyên ngành: TOÁN TIN Mã đề tài:... mảng để biểu diễn ma trận tự xây dựng chương trình tính toán ma trận 1.1.3 Cửa sổ làm việc Matlab Hình 1.1 Cửa sổ làm việc Matlab - Không gian làm việc Matlab gồm phần sau: + Cửa sổ trợ giúp. .. sử dụng Matlab để lập trình thuật toán môn học thuận lợi, dễ dàng vẽ đồ thị để thị kết kiểm tra kết quả, thư viện phong phú hàm toán học cài đặt sẵn Dùng Matlab để thiết kế phần mềm trợ giúp môn

Ngày đăng: 15/07/2017, 23:15

Từ khóa liên quan

Mục lục

  • bia

  • bia lot

  • loi cam on

  • loi cam doan

  • muc luc

  • mo dau

  • chuong 1

  • chuong 2

  • chuong 3

  • ket luan

  • tai lieu tham khao

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

Tài liệu liên quan