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
MỞ ĐẦU
................................................................................... 4
CHƯƠNG 1. MATLAB VÀ CÁC TÍNH NĂNG CƠ BẢN CỦA MATLAB ......... 6
1.1. Tổng quan về Matlab ........................................................................................ 6
1.1.1. Khả năng và ứng dụng của Matlab ............................................................ 6
1.1.2. Đặc điểm của Matlab. ................................................................................ 6
1.1.3. Cửa sổ làm việc của Matlab ....................................................................... 7
1.2. Các khái niệm cơ bản ........................................................................................ 9
1.2.1. Hằng: .......................................................................................................... 9
1.2.2. Biến .......................................................................................................... 10
1.2.3. Kiểu dữ 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 cơ bản của Matlab ..................................................................... 14
1.2.8. Các phép toán đối với mảng và các 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
1.3.7. Hàm fix .................................................................................................... 35
2.3.2 Lệnh đưa dữ liệu ra màn 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 và 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 hoặ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à 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ị của hàm số trên 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
thực nhằm nâng cao chất lượng dạy và học.
4
2. Mục tiêu nghiên cứu
Sử dụng ngôn ngữ lập trình trong Matlab đế xây dựng các chương trình trợ
giúp giải quyết các bài toán giải tích số nhằm nâng cao hiệu quả giảng dạy và học
tập trong môn học này.
3. Nhiệm vụ và phạm vi nghiên cứu
- Tìm hiểu về 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 của trường Đại
học Bách Khoa Hà Nội
- Sử dụng phần mềm Matlab xây dựng các chương trình giải các bài toán (khảo sát
hàm số)
4. Phương pháp nghiên cứu
- Nghiên cứu tài liệu hướng dẫn sử dụng và lập trình trong phần mềm Matlab
- Thiết kế các thuật toán để giải một số bài toán Khảo sát hàm số
- Cài đặt thuật toán chạy trên phần mềm Matlab nhằm giải quyết các bài toán.
5. Cấu trúc luận văn:
- Phần mở đầu
- Chương 1. Matlab và các tính năng cơ bản của Matlab
- Chương 2. Lập trình trong Matlab
- Chương 3. Vận dụng Matlab giải một số bài toán khảo sát vẽ đồ thị hàm số.
5
CHƯƠNG 1. MATLAB VÀ CÁC TÍNH NĂNG CƠ BẢN CỦA
MATLAB
6
C[i]:=A[i] + B[i];
For i:=1 to 5 do
Write(C[i],’ ‘ );
End;
Trong Matlab:
A=[5, 3, 4, 6, 0]
B=[-1, 4, 9, 5, 4]
C:=A+B
- Các biến trong Pascal muốn sử dụng phải khai báo. Trong Matlab các biến
sẽ được tự động hình thành trong mỗi câu lệnh gán
- Matlab cộng được hai ma trận nhờ đã có sẵn các khái niệm ma trận, Pascal
không làm được như vậy mà cần dùng kiểu mảng để biểu diễn ma trận và tự xây
dựng chương trình tính toán trên ma trận.
1.1.3. Cửa sổ làm việc của Matlab
Hình 1.1. Cửa sổ làm việc của Matlab
- Không gian làm việc của Matlab cơ bản gồm những phần sau:
7
+ Cửa sổ trợ giúp (Help window)
+ Nút Start
+ Cửa sổ nhập lệnh (Command window)
+ Cửa sổ quá trình nhập lệnh ( Command History)
+ Cửa sổ không gian làm việc (Workspace)
+ Cửa sổ địa chỉ thư mục hiện thời (Current Directory)
chuột kép vào lệnh đó, có thể cắt, sao hoặc xóa các nhóm lệnh hoặc lệnh riêng lẻ.
1.1.3.3. Cửa sổ không gian làm việc
Các biến, dữ liệu nhập vào hoặc tính toán ra sẽ được lưu trong cửa sổ “không
gian làm việc”. Tất cả các biến ngoại trừ những biến cục bộ thuộc về một M-file, sẽ
được hiển thị trong không gian làm việc.
+ Lệnh who hay whos liệt kê các biến trong không gian làm việc.
+ Để biết giá trị hiện thời của một biến, ta gõ tên biến vào cửa sổ lệnh và gõ
enter
+ >>clear tên biến % xóa biến khỏi không gian làm việc.
1.1.3.4. Cửa sổ biên tập mảng
Khi đã có một mảng, ta có thể chỉnh sửa, biên tập nó lại bằng Array Editor.
Ví dụ: Cho ma trận A, sau khi thay đổi ma trận A. Quay lại cửa sổ và gõ ‘A’
và xem ma trận sau khi thay đổi.
Hoặc thay đổi ma trận bằng lệnh
>>openvar(‘A’)
1.1.3.5. Cửa sổ địa chỉ thư mục hiện thời
Thư mục hiện thời là nơi chương trình Matlab sẽ tìm các M-file và các file
không gian làm việc mà ta đã Load và Save
1.2. Các khái niệm cơ bản
1.2.1. Hằng:
- Hằng là đại lượng không đổi trong quá trình hoạt động
- Hằng:
+ Hằng số học
+ Hằng xâu: Dãy ký tự đặt trong dấu ‘ ’
+ Hằng logic: Đúng (1), Sai (0)
- Một số hằng trong Matlab:
9
- Logic: boolean
- Kiểu dãy (sequence) dạng:
Dau: buoc: cuoi
Bao gồm một vecto gồm các phần tử bắt đầu bằng “đầu” tăng dần
theo “bước” cho đến
Nhỏ hơn hoặc bằng
Lớn hơn hoặc bằng
Bằng
Không bằng
Ký hiệu
=
==
~=
1.2.4.3. Các phép toán quan hệ
- Phép và :
&
- Phép hoặc:
|
- Phép phủ định
~
11
Ví dụ
40.833
50.8333333333333
A +2 > = 4+B
- Sự thực hiện của biểu thức quan hệ:
+ Tính giá trị của biểu thức 1, biểu thức 2
12
+ Thực hiện phép toán quan hệ
- Kết quả của biểu thức quan hệ là Đúng (1) hoặc Sai (0)
1.2.5.3. Biểu thức logic
Biểu thức logic đơn giản là 1 biến logic
Biểu thức logic là các biểu thức lôgic đơn giản, biểu thức quan hệ liên kết
với nhau bởi các phép toán logic. Giá trị của biểu thức logic là đúng hoặc sai.
Bảng giá trị logic của A và B (A, B là các biến logic)
A
B
~A
A|B
A&B
F
F
T
T
T
1.2.6. Số Phức
Trong Matlab sử dụng i và j để thể hiện phần ảo với i=j=sqrt(-1)
Ví dụ:
>> 4+ 5i
Ans=
4.0000 + 5i
>> 4 + 5j
Ans =
4.0000 + 6j
- Chú ý: Khi làm việc với số phức phân biệt hai cách viết
Ví dụ: y=5/2 *I và x= 5/2i sẽ cho hai kết quả khác nhau
>>y=5/2*i
Y= 2.5*i
>>x= 5/2i
X= -2.5i
- Các phép toán về số phức:
>> t= 2 + 5i
13
>> k= 7 – 9i
>> t + k
ans =
9.0000 - 4.0000i
>> t – k
ans =
b. Cú pháp:
demo
c. Giải thích:
demo: là chương trình có sẵn trong trong Matlab, chương trình này minh họa
một số chức năng của Matlab.
4. Lệnh diary
a. Công dụng:
Lưu vùng thành file trên đĩa.
b. Cú pháp:
diary filename
c. Giải thích:
filename: tên của tập tin.
5. Lệnh echo
a. Công dụng:
Hiển thị hay không hiển thị dòng lệnh đang thi hành trong file *.m.
b. Cú pháp:
echo on
echo off
c. Giải thích:
on: hiển thị dòng lệnh.
off: không hiển thị dòng lệnh.
15
6. Lệnh format
a. Công dụng:
Định dạng kiểu hiển thị của các con số.
Cú pháp
c. Giải thích:
l: biến chứa chiều dài vectơ.
d. Ví dụ:
tính chiều dài của vectơ x.
x = [0 1 2 3 4 5 6 7 8 9]
l = length (x)
l = 10
8. Lệnh load
a. Công dụng:
Nạp file từ đĩa vào vùng làm việc.
16
b. Cú pháp:
load
load filename
load filename
load filename.extension
c. Giải thích:
load: nạp file matlap.mat
load filename: nạp file filename.mat
load filename.extension: nạp file filename.extension
Tập tin này phải là tập tin dạng ma trận có nghĩa là số cột của hàng dưới phải
bằng số cột của hàng trên. Kết quả ta được một ma trận có số cột và hàng chính là
số cột và hàng của tập tin văn bản trên.
9. Lệnh path
a. Công dụng:
Tạo đường dẫn, liệt kê tất cả các đường dẫn đang có.
b. Cú pháp:
d: tên vectơ có 2 phần tử, phần tử thứ nhất là số dòng, phần tử còn lại là số
cột.
m,n: biến m chứa số dòng, biến n chứa số cột
d. Ví dụ:
ta có ma trận a
>> x=[1 2 3 4;5 6 7 8]
x=
1
2
3
4
5
6
7
8
18
>> d=size(x)
d=
2
which funname
c. Giải thích:
funname: là tên lệnh trong Matlab hay tên tập tin
d. Ví dụ:
which inv
inv is a build-in function
which f
c:\matlab\bin\f.m
14. Lệnh who, whos
a. Công dụng:
Thông tin về biến đang có trong bộ nhớ.
b. Cú pháp:
who
whos
who global
whos global
c. Giải thích:
who: liệt kê tất cả các tên biến đang tồn tại trong bộ nhớ.
whos: liệt kê tên biến, kích thước, số phần tử và xét các phần ảo có khác 0
không.
who global và whos: liệt kê các biến trong vùng làm việc chung.
1.2.8. Các phép toán đối với mảng và các thao tác với mảng
1.2.8.1. Các phép toán đối với mảng
a. Các mảng đơn giản
Giả sử ta xét hàm y=sin(x) trong một nửa chu kỳ ( x 0 ) trong khoảng này
số điểm giá trị của x là vô tận, nhưng ta chỉ xét những điểm cách nhau một khoảng
20
0.9425
1.2566
1.5708
1.8850
Columns 8 through 11
2.1991
2.5133
2.8274
3.1416
>> y = sin(x)
y=
Columns 1 through 7
0
0.3090 0.5878
0.8090
0.9511
1.0000