Tải bản đầy đủ (.pdf) (123 trang)

Dùng matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.33 MB, 123 trang )

Luận văn thạc sỹ Toán–Tin ứng dụng

MỤC LỤC
MỞ ĐẦU................ ........................................................................................... 5
CHƢƠNG 1.

MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLAB ................. 7

1.1. Giới thiệu chung và cách sử dụng môi trƣờng Matlab ........................ 7
1.1.1. Khả năng và ứng dụng của matlab ................................................. 7
1.1.2. Đặc điểm của Matlab...................................................................... 7
1.1.3. Không gian làm việc của Matlab ................................................... 8
1.2. Các khái niệm cơ bản ........................................................................ 11
1.2.1. Hằng ............................................................................................. 11
1.2.2. Biến .............................................................................................. 12
1.2.3. Kiểu dữ liệu .................................................................................. 12
1.2.4. Các phép toán đơn giản ................................................................ 13
1.2.5. Biểu thức ...................................................................................... 14
1.2.6. Số phức ......................................................................................... 16
1.2.7. Tập lệnh cơ bản của Matlab ......................................................... 16
1.2.8. Các phép toán đối với mảng và các thao tác với mảng ................ 22
1.3. Các hàm số học.................................................................................. 33
1.4. Các hàm giải tích ............................................................................... 35
1.4.1. Một số hàm cơ bản ....................................................................... 35
1.4.2. Tính đạo hàm ................................................................................ 36
1.4.3. Tìm giới hạn. ................................................................................ 39
1.4.4. Tính tích phân............................................................................... 41
1.5. Các hàm đại số................................................................................... 42
1.6. Đồ họa trong Matlab.......................................................................... 47
1.6.1. Đồ hoạ trong hệ toạn độ phẳng: ................................................... 47
1.6.2. Đồ hoạ trong không gian ba chiều ............................................... 55



Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 1


Luận văn thạc sỹ Toán–Tin ứng dụng

CHƢƠNG 2.

LẬP TRÌNH TRONG MATLAB ........................................ 59

2.1. Cách tổ chức chƣơng trình trong Matlab .......................................... 59
2.1.1. Chƣơng trình ................................................................................ 59
2.1.2. Dòng lệnh ..................................................................................... 59
2.1.3. Câu giải thích (chú thích) ............................................................. 59
2.2. Câu lệnh gán ...................................................................................... 60
2.3. Các lệnh vào/ra dữ liệu ...................................................................... 60
2.3.1. Lệnh đƣa dữ liệu vào .................................................................... 60
2.3.2. Lệnh đƣa dữ liệu ra màn hình ...................................................... 61
2.4. Các cấu trúc điều khiển ..................................................................... 62
2.4.1. Lệnh if ... elseif ... else ................................................................. 62
2.4.2. Câu lệnh swich – case .................................................................. 63
2.4.3. Câu lệnh for .................................................................................. 64
2.4.4. Lệnh while .................................................................................... 65
2.4.5. Lệnh function ............................................................................... 66
2.4.6. Các lệnh break, return, error và pause.......................................... 67
CHƢƠNG 3.


MỘT SỐ BÀI TOÁN GIẢI TÍCH SỐ ................................ 68

3.1. Giải gần đúng phƣơng trình .............................................................. 68
3.1.1. Bài toán giải gần đúng phƣơng trình ............................................ 68
3.1.2. Phƣơng pháp chia đôi ................................................................... 68
3.1.3. Phƣơng pháp lặp ........................................................................... 70
3.1.4. Phƣơng pháp dây cung ................................................................. 70
3.1.5. Phƣơng pháp tiếp tuyến ................................................................ 71
3.2. Giải gần đúng hệ phƣơng trình đại số tuyến tính .............................. 72
3.2.1. Bài toán giải gần đúng hệ phƣơng trình đại số tuyến tính ........... 72
3.2.2. Phƣơng pháp lặp Jacobi ............................................................... 73
3.2.3. Phƣơng pháp lặp Seidel ................................................................ 76
3.3. Xấp xỉ hàm bằng phƣơng pháp nội suy ............................................. 77
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 2


Luận văn thạc sỹ Toán–Tin ứng dụng

3.3.1. Bài toán nội suy ............................................................................ 77
3.3.2. Đa thức nội suy Lagrange ............................................................ 77
3.3.3. Đa thức nội suy Newton ............................................................... 78
3.4. Tìm hàm thực nghiệm bằng phƣơng pháp bình phƣơng tối thiểu ..... 78
3.4.1. Bài toán......................................................................................... 78
3.4.2. Tìm hàm thực nghiệm dạng tuyến tính ........................................ 79
3.4.3. Tìm hàm thực nghiệm dạng phi tuyến ......................................... 80
3.5. Giải gần đúng phƣơng trình vi phân thƣờng cấp 1 ........................... 81
3.5.1. Bài toán Cauchy đối với phƣơng trình vi phân thƣờng cấp 1 ...... 81

3.5.2. Phƣơng pháp Euler ....................................................................... 82
3.5.3. Phƣơng pháp Euler cải tiến .......................................................... 82
3.5.4. Phƣơng pháp Runge−Kutta cấp 4 ................................................ 83
CHƢƠNG 4.

VẬN DỤNG MATLAB GIẢI MỘT SỐ BÀI TOÁN GIẢI

TÍCH SỐ............ ............................................................................................. 85
4.1. Giải gần đúng phƣơng trình .............................................................. 85
4.1.1. Phƣơng pháp chia đôi ................................................................... 85
4.1.2. Phƣơng pháp lặp ........................................................................... 89
4.1.3. Phƣơng pháp tiếp tuyến ................................................................ 91
4.1.4. Phƣơng pháp dây cung ................................................................. 95
4.2. Giải gần đúng hệ phƣơng trình đại số tuyến tính .............................. 98
4.2.1. Phƣơng pháp lặp ........................................................................... 98
4.2.2. Phƣơng pháp lặp Seidel .............................................................. 101
4.3. Xấp xỉ hàm bằng phƣơng pháp nội suy ........................................... 103
4.3.1. Đa thức nội suy Lagrange .......................................................... 103
4.3.2. Đa thức nội suy Newton tiến ...................................................... 105
4.3.3. Đa thức nội suy Newton lùi........................................................ 109
4.4. Tìm hàm thực nghiệm bằng phƣơng pháp bình phƣơng tối thiểu ... 113

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 3


Luận văn thạc sỹ Toán–Tin ứng dụng


4.4.1. Chƣơng trình tìm hàm thực nghiệm theo một số dạng tuyến
tính..... .................................................................................................... 113
4.4.2. Chƣơng trình tìm hàm thực nghiệm theo một số dạng phi
tuyến....... ............................................................................................... 113
4.5. Giải gần đúng phƣơng trình vi phân thƣờng cấp 1 ......................... 114
4.5.1. Phƣơng pháp Euler ..................................................................... 114
4.5.2. Phƣơng pháp Euler cải tiến ........................................................ 117
4.5.3. Phƣơng pháp Runge−Kutta cấp 4 .............................................. 119
KẾT LUẬN........ ........................................................................................... 122
TÀI LIỆU THAM KHẢO ............................................................................. 123

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 4


Luận văn thạc sỹ Toán–Tin ứng dụng

MỞ ĐẦU

1. Lý do chọn đề tài
Giải tích số hiện đang phát triển mạnh và càng mạnh hơn với sự phát triển
nhanh của tin học. Công nghệ thông tin và giải tích số có vai trò rất quan trọng
trong nhiều lĩnh vực.
Thực tế hiện nay, đã có nhiều tài liệu về giải tích số song còn ít tài liệu giới
thiệu các phần mềm tính toán (Maple, Matlab, ...) và chƣơng trình máy tính giải
quyết các bài toán số. Trong khi đó Matlab là phần mềm nổi tiếng của công ty
MathWorks, là một ngôn ngữ hiệu năng cao cho tính toán kỹ thuật. Nó tích hợp tính
toán, hiển thị và lập trình trong môi trƣờng dễ sử dụng. Các ứng dụng tiêu biểu của

Matlab bao gồm: hỗ trợ toán học và 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 và hiển thị số liệu; đồ họa khoa học và kỹ thuật; phát
triển ứng dụng với giao diện đồ họa, …
Ngoài ra Matlab cơ bản với các khả năng rất phong phú, phần mềm Matlab
còn có trang bị thêm các ToolBox – các gói chƣơng trình (thƣ viên) cho các ứng
dụng rất đa dạng nhƣ xử lý tín hiệu, nhận dạng hệ thống, xử lý ảnh, mạng nơ ron,
logic mờ, tài chính, tối ƣu hóa, phƣơng trình đạo hàm riêng, … Đây là các tập mã
nguồn viết bằng chính Matlab dựa theo các thuật toán mới, hữu hiệu mà ngƣời dùng
có thể chỉnh sửa hoặc bổ sung thêm các hàm mới. Matlab đƣợc thiết kế để giải bài
toán bằng số chứ không nhằm mục đích chính là tính toán ký hiệu nhƣ Mathematica
và Maple. Tuy nhiên trong Matlab cũng có thể tính toán ký hiệu đƣợc nhờ các hàm
trong Symbolic Math ToolBox.
Hiện nay có rất nhiều trƣờng đại học trong nƣớc cũng nhƣ nƣớc ngoài, nhất
là những trƣờng kỹ thuật đã đƣa Matlab vào giảng dạy và nghiên cứu.
Với ƣu thế về tính toán số trị Matlab rất 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ố - môn học quan trọng đối với sinh viên các ngành kỹ
thuật và khoa học tự nhiên. Việc sử dụng Matlab để lập trình các thuật toán của môn
học này có thuận lợi là đơn giản, dễ dàng vẽ các đồ thị để hiển thị kết quả và kiểm
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 5


Luận văn thạc sỹ Toán–Tin ứng dụng

tra kết quả, thƣ viện phong phú các hàm toán học đã đƣợc cài đặt sẵn. Dùng Matlab
để thiết kế phần mềm trợ giúp đối với các môn Toán, đặc biệt là môn Giải tích số,
có ý nghĩa thiết thực nhằm nâng cao chất lƣợng dạy và học.
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 phần mềm 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 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 phƣơng pháp tính thuộc lĩnh vực giải tích số,
theo chƣơng trình giảng dạy tại 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 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 Toán
học Matlab.
- Nghiên cứu nội dung môn học phƣơng pháp tính, từ đó thiết kế thuật toán
cho các phƣơng pháp giải gần đúng các bài toán số.
- Cài đặt thuật toán thành phần mềm tính toán nhằm minh họa và giải quyết
các bài toán số trong môn học phƣơng pháp tính.
5. Cấu trúc luận văn
Ngoài phần mở đầu, kết luận, tài liệu tham khảo và phụ lục, luận văn gồm 4
chƣơng:
Chƣơng 1. Một số kiến thức cơ bản về Matlab.
Chƣơng 2. Lập trình trong Matlab
Chƣơng 3. Một số bài toán giải tích số
Chƣơng 4. Vận dụng Matlab giải một số bài toán giải tích số

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 6


Luận văn thạc sỹ Toán–Tin ứng dụng


CHƢƠNG 1.
1.1.

MỘT SỐ KIẾN THỨC CƠ BẢN VỀ MATLAB

Giới thiệu chung và cách sử dụng môi trƣờng Matlab

1.1.1. Khả năng và ứng dụng của matlab
- Một trong những tính năng tuyệt với nhất của Matlab nhìn từ góc độ những
nhà khoa học tính toán là thƣ viện dựng sẵn rất phong phú các chƣơng trình tính
toán và các công cụ hiển thị đồ hoạ.
- Matlab cho phép ngƣời dùng tiến hành rất nhiều các nhiệm vụ thông
thƣờng liên quan tới việc xử lý tính toán số với tốc độ nhanh, độ chính xác cao. Các
tính toán rất mạnh có thể đƣợc thực hiện chỉ với một hoặc hai câu lệnh.
- Ngƣời dùng có thể xây dựng riêng cho mình những hàm toán học trong
những ứng dụng đặc biệt.
- Matlab có giao diện đồ hoạ đẹp, sinh động, các hình từ Matlab có thể đem
chèn vào các phần mềm soạn thảo văn bản nhƣ LATEX , WORD, ...

1.1.2. Đặc điểm của Matlab
Chƣơng trình trong Matlab đƣợc xây dựng tƣơng tự nhƣ trong các ngôn ngữ
lập trình có cấu trúc thông thƣờng. Đặc điểm ƣu thế của chƣơng trình Matlab là đơn
giản, ngắn gọn hơn nhờ việc tận dụng thƣ viện đầy đủ các hàm đã đƣợc lập sẵn và
có thể mô tả các cấu trúc toán học cũng nhƣ thể hiện các tính toán một cách tự
nhiên.
Để minh hoạ điều này, ta xét một ví dụ đơn giản: So sánh hai phép cộng
véctơ trong ngôn ngữ lập trình Pascal và Matlab.
Sử dụng Pascal:
Var

A: Array[1..5] of Integer = (3, 7, 4, 2, 0);
A: Array[1..5] of Integer = (-2, 4, 8, 5, 1)
A: Array[1..5] of Integer;
i: byte;
Begin
for i:= 1 to 5 do

C[i]:=A[i] + B[i];

for i:= 1 to 5 do write(c[i], „ „);
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 7


Luận văn thạc sỹ Toán–Tin ứng dụng

End.
Sử dụng Matlab:
A=[3, 7, 4, 2, 0]
B=[-2, 4, 8, 5, 1]
C:=A + B
Có đƣợc sự đơn giản nói trên là nhờ Matlab xây dựng sẵn khái niệm ma trận.
Dấu cộng trong dòng lệnh Matlab biểu thị phép cộng ma trận. Pascal không có khả
năng nhƣ vậy, ta cần sử dụng kiểu dữ liệ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. Vì vậy chƣơng trình Pascal dài và phức
tạp hơn rất nhiều.
Một đặc điểm nữa là tất cả các biến dùng trong Pascal đều phải đƣợc khai
báo. Trong Matlab các biến sẽ tự động hình thành trong mỗi câu lệnh gán.


1.1.3. Không gian làm việc của Matlab
- Về cơ bản không gian làm việc của Matlab gồm có các phần sau:
+ Cửa sổ trợ giúp (Help Windon)
+ Nút Start
+ Cửa sổ nhập lệnh (Command Windon)
+ Cửa sổ không gian làm việc (Workspace Windon)
+ Cửa sổ quá trình lệnh (Command History Windon)
+ Cửa sổ biên tập mảng, véctơ, ma trận (Array editor Windon)
+ Cửa sổ địa chỉ thƣ mục hiện thời (Current directory Windon)
- Nút

ở góc trên bên phải mỗi cửa sổ dùng để đóng chúng. Hiển thị lại

cửa sổ bằng cách tích  vào tên của sổ tƣơng ứng trong menu Desktop.
- Nút

bên cạnh nút

dùng để tách của sổ làm việc trong cửa sổ

chính Matlab thành cửa sổ con độc lập. Ấn nút này một lần nữa sẽ nhập một cửa sổ
độc lập về cửa sổ chính của Matlab.
- Nút Start ở góc dƣới bên trái của màn hình Matlab cho phép ta chạy các
ứng dụng mẫu (demos), các công cụ và cửa sổ chƣa hiển thị khi khởi động Matlab.
Bằng cách đánh dấu lệnh „demo‟ ta có thể tiếp cận với một tập rất nhiều những file
trình diễn giá trị cao.
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh


Trang 8


Luận văn thạc sỹ Toán–Tin ứng dụng

Ví dụ: Thử chạy Start -> Matlab –> Demos và chạy một ứng dụng mẫu
trong cửa sổ Demo (s).
Lƣu ý: Lệnh này sẽ xoá tất cả các giá trị của các biến hiện có.
1.1.3.1. Cửa sổ lệnh
Đây là cửa sổ chính của Matlab, tại đây thực hiện toàn bộ việc nhập dữ liệu
và xuất kết quả tính toán. Dấu nhắc >> để gõ các lệnh.
Matlab là một môi trƣờng tƣơng tác, khi một câu lệnh đƣợc đƣa ra Matlab
thực thi nó ngay lập tức trƣớc khi đòi hỏi một lệnh tiếp theo.
Các diễn giải có cấu trúc nhƣ sau:
>> diễn giải 
hoặc có thể lƣu lại kết quả tính toán vào biến:
>> Biến = diễn giải 
Trong đó, các diễn giải thƣờng đƣợc soạn bằng các toán tử, các hàm, và tên
các biến, và đƣợc hiển thị trên màn hình sau khi nhấn Enter. Các câu lệnh có dạng
“tên biến = diễn giải” thì diễn giải đó sẽ đƣợc gán cho biến sử dụng sau này. Khi tên
biến và dấu bằng đƣợc bỏ đi thì kết quả của “diễn giải” sẽ đƣợc tự động gán cho
biến có tên „ans‟ (hay answer - câu trả lời) và hiển thị trên màn hình.
Một số lệnh tổng quát liên quan đến cửa sổ này:
+ cls: Xóa cửa sổ lệnh
+ Home: Di chuyển con trỏ lên góc trên trái của cửa sổ (khi chạy chƣơng
trình)
+ Help: Trợ giúp thông tin về một mục nào đó.
+ echo, echo on/ off: Tắt mở hiển thị các dòng của file .m khi chạy chƣơng trình.
+ edit: Gọi chƣơng trình soạn file *.m
+ type tên_file: Đọc nội dung file *.m

+ demo: Gọi chƣơng trình demo.
+ quit, exit: Thoát chƣơng trình Matlab.

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 9


Luận văn thạc sỹ Toán–Tin ứng dụng

Một số phím hỗ trợ thao tác:
Chức năng

Phím

Phím

Chức năng



Gọi lại hàng trƣớc

end

Về cuối hàng




Gọi lại hằng kế

Esc

Xoá hàng



Tới một ký tự

Delete

Xoá ký tự ở con trở



Lùi lại một ký tự

Backspace

Xoá ký tự ở trƣớc con trỏ

Ctrl 

Qua phải một từ

Ctrl K

Xóa đến cuối hàng


Ctrl 

Qua trái một từ

Shift Home

Đánh dấu đến đầu hàng

Home

Về đầu hàng

Shift End

Đánh dấu đến cuối hàng

1.1.3.2.

Cửa sổ lịch sử lệnh Command History
Liệt kê các lệnh đã sử dụng trƣớc đó kèm thời gian bắt đầu. Có thể lặp lại

lệnh cũ bằng cách nhắp chuột kép vào lệnh đó. Cũng có thể cắt, sao hoặc xoá cả
nhóm lệnh hoặc từng lệnh riêng rẻ.
1.1.3.3.

Cửa sổ không gian làm việc
Các biến và dữ liệu mà ta nhập vào hoặc tính toán ra sẽ đƣợc Matlab lƣu

trong một phần gọi là “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 lệnh whos liệt kê các biến trong không gian làm việc.
Ví dụ: Đánh lệnh „whos‟ vào cửa sổ lệnh, ta sẽ thấy một danh sách các biến
hiện có cùng kiểu và kích cỡ của chúng.
+ Để biết giá trị hiện tại của một biến, ta đánh vào tên biến ở cửa sổ lệnh và
nhấn Enter.
+ Để xoá một hàm hay một biến khỏi không gian làm việc ta sử dụng lệnh clear.
>> clear tên_biến



+ Bản thân lệnh clear xoá tất cả các biến hiện có (tƣơng đƣơng với lệnh clear All)
1.1.3.4.

Cửa sổ biên tập mảng
Khi ta đã có một mảng, ta có thể chỉnh sửa, biên tập lại nó bằng Array

Editor. Công cụ này làm việc nhƣ một bảng tính (spreadsheet) cho ma trận.
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 10


Luận văn thạc sỹ Toán–Tin ứng dụng

Ví dụ: Cho ma trận M, hãy thử click và thay đổi nó, thay đổi các phần tử,
thay đổi kích thƣớc ma trận. Quay lại cửa sổ lệnh và gõ „M‟ rồi nhấn Enter, xem ma
trận M sau khi đã thay đổi.
Ta cũng có thể biên tập lại ma trận M bằng cách đánh lệnh
>> openvar („C‟)

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 (.mat file) mà ta đã Load và Save.
1.2.

Các khái niệm cơ bản

1.2.1. Hằng
- Hằng là một đại lƣợng không đổi trong suốt quá trình hoạt động.
- Hằng gồm có:
+ Hằng số học
Hằng số nguyên: Ví dụ: 2, -2, ....
Hằng số thực: ví dụ 3.15; 1.03E+5; ...
+ Hằng xâu: là dãy ký tự đƣợc đặt trong cặp dấu nháy đơn
Ví dụ: „abc‟; „12345‟
+ Hằng logic: Đúng (1); Sai (0)
- Một số hằng thƣờng hay sử dụng trong Matlab
Tên hằng

Giá trị

Pi

 = 3.1415

Eps


Số nhỏ nhất, nhƣ vậy dùng cộng với 1 để đƣợc số
nhỏ nhất lớn hơn 1 (hay Sai số 2-52)

Flops

Số phép chia toàn số thực

Inf

Số vô cùng lớn

NaN hoặc nan

Dùng để chỉ số không xác định nhƣ kết quả của 0/0

i (và) j

i=j=

Realmin

Số nhỏ nhất có thể đƣợc của số thực

Realmax

Số lớn nhất có thể đƣợc của số thực

1

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập

Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 11


Luận văn thạc sỹ Toán–Tin ứng dụng

1.2.2. Biến
- Biến là đại lƣợng đƣợc đặt tên, giá trị của biến có thể thay đổi trong suốt
quá trình hoạt động của chƣơng trình.
- Quy tắc đặt tên biến:
+ Tên biến phải là một từ (không chứa dấu cách).
+ Tên biến gồm các chữ cái, chữ số và dấu gạch dƣới.
+ Tên biến có phân biệt chữ hoa với chữ thƣờng.
+ Tên biến có thể chứa nhiều nhất 31 kí tự, còn các ký tự sau kí tự thứ 31 bị bỏ đi.
+ Tên biến bắt đầu bằng chữ cái tiếp theo có thể là chữ số hặc dấu gạch dƣới.
- Ví dụ: Items, items, x1, x2, den_ta, ...

1.2.3. Kiểu dữ liệu
- Matlab có đầy đủ các kiểu dữ liệu đơn giản nhƣ:
+ Số nguyên gồm có: int8; int16; int32; int64; uint8; uint16; uint32; uint64; single.
+ Số thực: double.
+ Kí tự: char.
+ Logic: boolean.
- Chuỗi kí tự đƣợc đặt trong dấu nháy đơn hoặc nháy kép, chẳng hạn „Viet Nam‟.
- Kiểu dãy (sequence) có dạng:
dau:buoc:cuoi
bao gồm một véc-tơ gồm các phần tử bắt đầu từ số đầu “dau” tăng dần theo
từng bƣớc “buoc” cho đến bằng (không vƣợt quá) số cuối “cuoi”. Kết quả
cho ra một véc-tơ hàng:

+ 1.2:0.2:1.7 % chú thích: Tƣơng đƣơng với [1.2 1.4 1.6]
+ 1.2:0.2:1.8 % chú thích: Tƣơng đƣơng với [1.2 1.4 1.6 1.8]
- Kiểu ma trận đóng vai trò trung tâm trong Matlab. Ví dụ một ma trận hai
hàng ba cột nhƣ sau (hết một hàng cần dấu chấm phẩy để phân tách, nhƣng không
nhất thiết xuống dòng):
[ -3 4 5.2 ;
2.1 -8 7.6 ]
- Matlab còn có một số kiểu dữ liệu khác cao cấp hơn: kiểu cell, kiểu struct (bản ghi).
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 12


Luận văn thạc sỹ Toán–Tin ứng dụng

- Khuôn dạng hiển thị số:
Lệnh Matlab

Ý nghĩa

Ví dụ

format short

5 số

50.833

format long


16 số

50.88333333333334

format short e

5 số với số mũ

5.0833e+01

format long e

16 số với số mũ

50.88333333333334 e+01

format short g

Chính xác hơn format short
hoặc format short e

format long g

Chính xác hơn format long
hoặc format long e

format +

Dƣơng, âm hoặc bằng không


format rat

Dạng phân số

+
305/6

1.2.4. Các phép toán đơn giản
1.2.4.1. Các phép toán số học cơ bản của Matlab
Phép tính
Ký hiệu

1.2.4.2.

Ví dụ

Phép cộng

+

5+3

Phép trừ

-

5–3

Phép nhân


*

5*3

Phép chia phải

/

56 / 8

Phép chia trái

\

8 \ 56

Luý thừa

^

5^2

Các phép toán quan hệ
Phép toán

Ký hiệu

Ví dụ


Nhỏ hơn

<

3<5

Nhỏ hơn hoặc bằng

<=

3 <= 5

Lớn hơn

>

5>3

Lớn hơn hoặc bằng

>=

5 >= 3

Bằng

==

5 == 3


Không bằng

~=

5 ~= 3

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 13


Luận văn thạc sỹ Toán–Tin ứng dụng

1.2.4.3.

Các phép toán logic
Phép toán

Ký hiệu



&

Hoặc

|

Phủ định


~

1.2.5. Biểu thức
1.2.5.1. Biểu thức số học
Biểu thức số học là một biến kiểu số hoặc một hằng số hoặc các biến kiểu số
và các hằng số liên kết với nhau bởi một số hữu hạn các phép toán, các dấu ngoặc
tròn ( và ) tạo thành một biểu thức có dạng tƣơng tự nhƣ cách viết trong toán học
với những quy tắc sau:
- Chỉ dùng cặp ngoặc tròn để xác định trình tự thực hiện phép toán trong
trƣờng hợp cần thiết.
- Viết lần lƣợt từ trái qua phải.
- Không đƣợc bỏ qua dấu nhân (*) trong tích
Thứ tự ƣu tiên thực hiện tính toán một biểu thức trong Matlab nhƣ sau:
1. Tính đại lƣợng trong ngoặc đơn.
2. Tính phép toán Luỹ thừa
3. Tính phép toán nhân (*), chia (/), thực hiện từ trái qua phải
4. Tính phép toán công (+), trừ (-), thực hiện từ trái qua phải
Ví dụ : Matlab tính theo thứ tự sau biểu thức 2+3^2+20/(4*5)*3-5
1. Tính đại lƣợng trong ngoặc đơn nghĩa là tính 4*5=20.
2. Tính luỹ thừa nghĩa là tính 3^2=9
3. Tính 20/20*3=1*3=3
4. Tính 2+9+3-5=11+3-5=14-5=9
1.2.5.2. Biểu thức quan hệ
Hai biểu thức cùng kiểu liên kết với nhau bởi phép toán quan hệ cho một
biểu thức quan hệ.
Biểu thức quan hệ có dạng
<biểu thức 1> <biểu thức 2>
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh


Trang 14


Luận văn thạc sỹ Toán–Tin ứng dụng

Ví dụ 1.1
x<5
i+1 >=2*j
Biểu thức quan hệ đƣợc thực hiện theo trình tự:
- Tính giá trị các biểu thức.
- Thực hiện phép toán quan hệ.
Kết quả của biểu thức quan hệ là giá trị lôgic: 1 (true – Đúng) hoặc 0 (false – Sai).
Trong ví dụ trên, nếu x có giá trị là 3 thì biểu thức x<5 có giá trị là 1 (đúng).
Nếu i có giá trị là 2 và j có giá trị là 3 thì biểu thức i+1 >= 2*j cho giá trị là 0 (sai).
1.2.5.3. Biểu thức logic
Biểu thức logic đơn giản là một biến logic
Biểu thức logic là các biểu thức logic đơn giản, các biểu thức quan hệ
liên kết với nhau bởi các phép toán logic. Giá trị biểu thức logic là 1 (true –
Đúng) hoặc 0 (false – Sai)
Biểu thức logic với các toán tử tổ hợp đƣợc xác đinh theo quy luật sau:
Giả thiết các biến A và B là những biến logic. để dễ hiểu, ta sẽ kí hiệu giá trị logic 1
là true và 0 là False. Khí đó, kết quả của các phép toán logic ~A, A | B và A & B
đƣợc xác định trong bảng sau:
A

B

~A


A|B

A&B

False

False

True

False

False

False

True

False

True

False

True

False

True


True

False

True

True

False

True

True

Ví dụ 1.2
>> A=1:5;
>> B= (A>2) & (A<5)
B=
0 0 1 1 0

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 15


Luận văn thạc sỹ Toán–Tin ứng dụng

Đôi khi gặp nhiểu biểu thức logic phức tạp chứa cả toán tử & lẫn | thì Matlab
sẽ có quy luật về trình tự xử lý nhƣ sau:

Đầu tiên là xử lý các tính toán số học. Sau đó, các toán tử logic đƣợc xem xét
từ trái sang phải.

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ụ 1.3
>>5+6i
ans=
5.0000+6i
>>5+6j
ans=
5.0000+6i
* Chú ý: Khi làm việc với số phức cần phân biệt 2 cách viết ví dụ:
y=7/2*i và x=7/2i hai cách viết này cho kết quả khác nhau.
>>y=7/2*i
y= 3.5*i
>> x=7/2i
x=-3.5i
* Các phép toán về số phức:
>> s=3 +7i
>>w=5-9i
>>w+s
>>w-s
>>w*s
>>w/s

1.2.7. Tập lệnh cơ bản của Matlab
1. Lệnh ans
a. Công dụng (Purpose): Là biến chứa kết quả mặc định.


Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 16


Luận văn thạc sỹ Toán–Tin ứng dụng

b. Giải thích (Description): Khi thực hiện một lệnh nào đó mà chƣa có biến kết quả,
thì Matlab lấy biến ans làm biến chứa kết quả đó.
c. Ví dụ 1.4
>> 2-1
ans = 1
2. Lệnh Clock
a. Công dụng (Purpose): Thông báo ngày giờ hiện tại
b. Cú pháp (Syntax):
>> c=clock
c). Giải thích (Description): Để thông báo dễ đọc ta dùng làm fix
3. Lệnh Date
a. Công dụng: Thông báo ngày tháng năm hiện tại
b. Cúp pháp:

s=date

4. Lệnh clc
a. Công dụng: Xoá cửa sổ lệnh
b. Cú pháp:
>> clc
5. Lệnh clear
a. Công dụng: Xoá các đề mục trong bộ nhớ.

b. Cú pháp:
>> clear
>> clear name
>> clear functions
>> clear variables
>> clear mex
>> clear global
>> clear all
c. Giải thích
clear: Xoá tất cả các biến khỏi vùng làm việc
clear name: Xoá các biến hay hàm đƣợc chỉ ra trong name
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 17


Luận văn thạc sỹ Toán–Tin ứng dụng

clear function: Xoá tất cả các hàm trong bộ nhớ.
clear variables: Xoá tất cả các biến ra khỏi bộ nhớ.
clear mex: Xoá tất cả các tập tin .mex ra khỏi bộ nhớ.
clear all: Xoá tất cả các biến, hàm, và các tập tin .mex khỏi bộ nhớ. Lệnh này
làm cho bộ nhớ trống hoàn toàn.
6. Lệnh delete:
a. Công dụng: Xoá tập tin và đối tƣợng đồ hoạ
b. Cú pháp:
>> delete fiename
>> delete(n)
c. Giải thích:

filename: Tập tin cần xoá.
N: Biến chứa đối tƣợng đồ hoạ cần xoá. Nếu đối tƣợng là một cửa sổ thì cửa
sổ đó đóng lại và bị xoá.
7. 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
8. Lênh format
a. Công dụng: Định dạng kiểu hiển thị của các con số.
b. Cú pháp:
>> format short
>> format long
>> format rat
>> format +
c. Giải thích:
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 18


Luận văn thạc sỹ Toán–Tin ứng dụng

short: Hiển thị 4 con số sau dấu chấm.
long: Hiển thị 14 co số sau dấu chấm.
rat: Hiển thị dạng phân số của phần nguyên nhỏ nhất

+: Hiển thị số dƣơng hay âm
9. Lệnh help
a. Công dụng: Hƣớng dẫn cách sử dụng các lệnh trong Matlab
b. Cú pháp:
>> help
>> help topic
c. Giải thích:
hepl: Hiển thị vắn tắt các mục hƣớng dẫn.
topic: Tên lệnh cần đƣợc hƣớng dẫn.
10. Lệnh home
a. Công dụng: Đem con trỏ về đầu vùng làm việc
b. Cú pháp:

>> home

11. Lệnh length
a. Công dụng: Tính chiều dài của vectơ
b. Cú pháp: >> l=length(x)
c. Giải thích
l: Biến chứa chiều dài của vectơ
d. Ví dụ 1.5. 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
12. 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:
path
p=path
path(p)

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 19


Luận văn thạc sỹ Toán–Tin ứng dụng

c. Giải thích
path: Liệt kê tất cả các đƣờng dẫn đang có.
p: Biến chứa đƣờng dẫn
path(p): Đặt đƣờng dẫn mới.
13. Lệnh quit
a. Công dụng: Thoát khỏi Matlab
b. Cú pháp: quit
14. Lệnh size
a. Công dụng: Cho biết số dòng và số cột của ma trận
b. Cú pháp:
d=size(x)
[m,n]=size(x)
m=size(x,1)
n=size(x,2)
c. Giải thích:
x: Tên ma trận.
d: Tên vectơ hai 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.
Ví dụ 1.6. Ta có ma trận
x= 1 2 3 4
5678
>> x=[1 2 3 4, 5 6 7 8]

x=
12345678
>> x=[1 2 3 4; 5 6 7 8]
x=
1234
5678
>> d=size(x)
d=

24

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 20


Luận văn thạc sỹ Toán–Tin ứng dụng

>> m=size(x,1)
m=

2

>> n=size(x,2)
n=

4

>> [m,n]=size(x)

m=

2

n=

4

15. Lệnh type
a. Công dụng: Hiển thị nội dung của tập tin
b. Cú pháp

type filename

c. Giải thích
filename: Tên file cần hiễn thị nội dung
16. Lệnh what
a. Công dụng: Liệt kê tập tin *.m, *.mat, *.mex.
b. Cú pháp:
what
what dirname
c. Giải thích:
what: Liệt kê tên các tập tin .m, .mat, .mex có trong thƣ mục hiện hành.
Dirname: Tên thƣ mục cần liệt kê.
17. Lệnh which
a. Công dụng: Xác định chức năng của funname là hàm của Matlab hay tập tin.
b. Cú pháp:

which funname


c. Giải thích:
funname: Là tên lệnh trong Matlab hay tập tin.
18. Lệnh who, whos
a. Công dụng: Thông tin của biến đang có trong bộ nhớ.
b. Cú pháp:
who
whos
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 21


Luận văn thạc sỹ Toán–Tin ứng dụng

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 không.
Who global và whos global: 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 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 giá trị 0.1 nhƣ vậy số giá trị của x là đếm đƣợc. Từ đó ta có mảng các giá
trị cho x là:
x=0, 0.1, 0.2, 0.3, ... 

Nếu ta dùng máy tính kỹ thuật để tính thì ta đƣợc tƣơng ứng các giá trị của y,
từ đó ta có mảng của y:
x

0

0.1

0.2

0.3

0.4

0.5

0.6

0.7

0.8

0.9



y

0


0.31

0.59

0.81

0.95

1.0

0.95

0.81

0.59

0.31

0

Trong mảng x chứa các phần tử x1, x2, ..., x11
Trong mảng y chứa các phần tử y1, y2, ..., y11
Trong Matlab để tạo những mảng này rất đơn giản:
Ví dụ 1.7. Để tạo hai mảng x, y trên ta đánh các lệnh sau vào dấu nhắc của Matlab.
>> x=[0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi]
x=
Columns 1 through 7
0 0.3142 06283 0.9425 1.2566 1.5708 18850
Columns 8 through 11
2.1991 25133 2.8274 3.1416

>>y=sin(x)
y=
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 22


Luận văn thạc sỹ Toán–Tin ứng dụng

Columns 1 through 7
0 0.3090 0.5878 0.8090 0.9511 1.0000 0.9511
Columns 8 through 11
0.8090 0.5878 0.3090 0.0000
Kết quả trên ta đƣợc mảng của y gồm các phần tử tƣơng ứng là sine của các
phần tử của x, ở đây Matlab ngầm hiểu là tính sine của từng phần tử của x.
Để tạo mảng, ta đặt các phần tử của mảng vào giữa cặp dấu ngoặc vuông
“[...]”; giữa hai phần tử của mảng có thể là dấu cách hoặc dấu phẩy “,”
b. Địa chỉ của mảng
+ Để đến phần tử của mảng ta dùng các chỉ số thứ tự của phần tử đó trong mảng.
Ví dụ 1.8. Ta xét mảng x nêu trên, ta viết x(1) là phân tử thứ nhất của mảng
x, x(2) là phần tử thứ 2 của mảng, ...
>>x(2) % phần tử thứ hai của mảng
ans=
0.3142
+ Để truy cập đến nhiều phần tử của mảng, ví dụ ta truy cấp từ phần tử thứ
nhất đến phần tử thứ năm của mảng x: Tại dấu nhắc ta gõ
>>x(1:4)
ans=
0 0.3142 0.6283 0.9425

+ Để truy cập thừ phần tử thứ 9 đến phần tử cuối cùng của mảng y.
>>y(9:end)
ans=
0.5878 0.3090 0.0000
+ Truy câp từ phân tử thứ 3 đến phần tử thứ nhất của mảng y.
>>y(3:-1:1)
ans=
0.5878 0.3090 0
Trong ví dụ trên 3 là phần tử thứ 3, 1 là phần tử đầu tiên, con -1 là giá trị
công (vị trí phần tử sau bằng vị trí của phần tử trƣớc cộng với -1)
Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 23


Luận văn thạc sỹ Toán–Tin ứng dụng

Ví dụ: 1.9: Truy nhập đến các phần tử trong khoảng từ phần tử thứ 2, đến
phần tử thứ 7, vị trí của phần tử sau bằng vị trí của phần tử trƣớc cộng với 2, của
mảng x).
>>x(2:2:7)
ans=
0.3142 0.9425 1.5708
c. Cấu trúc mảng
Với mảng có số lƣợng phần tử ít thì ta có thể nhập vào trực tiếp, nhƣng với
mảng có số lƣợng lớn các phần tử thì ta sử dụng một trong các cách sau:
+ Tạo một bảng bắt đầu là phần tử 0, sau bằng phần tử trƣớc cộng 0.1, phần
tử cuối là 1. Cú pháp của cách này nhƣ sau: x=(0:0.1:1)
Ví dụ 1.10

>>x=(0:0.1:1)*pi
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425

1.2508 1.8850

Columns 8 through 11
2.1991 2.5133 2.8274 3.1416
+ Tạo mảng bằng hàm linspace. Cú pháp của hàm này nhƣ sau:
linspace(giá trị phần tử đầu, giá trị phần tử cuối, số các phần tử).
Ví dụ 1.11. Tạo mảng x nêu trên
>>x=linspace(0,pi,11)
x=
Columns 1 through 7
0 0.3142 0.6283 0.9425

1.2508 1.8850

Columns 8 through 11
2.1991 2.5133 2.8274 3.1416

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 24


Luận văn thạc sỹ Toán–Tin ứng dụng


+ Ngoài các mảng trên, Matlab còn cung cấp một số cấu trúc khác nhƣ:
x=first:last

Tạo vector hàng x bắt đầu tại first, phần tử sau
bằng phần tử trƣớc cộng 1, kết thúc là phần tử
có giá trị bằng hoặc nhỏ hơn last

x=first: increment:last

Tạo vector hàng x bắt đầu tại first, giá trị cộng
là increment, kết thúc là phần tử có giá trị bằng
hoặc nhỏ hơn last.

x=logspace(first,last,n)

Tạo vector hàng không gian logarihm x bắt đầu
tại 10first, kết thúc tại 10last, có n phần tử.

Ví dụ 1.12
>>a=1:5, b=1:2:9, logspace(0,2,11)
a=
1 2 3 4 5
b=
1 3 5 7 9
ans=
Columns 1 through 7
1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489
Columns 8 thổugh 11
25.1189 39.8107 63.0957 100.0000
d. Vector hàng và vector cột

Trong các ví dụ trƣớc, mảng chứa một hàng và nhiều cột. Ngƣời ta thƣờng
gọi là vector hàng. Ngoài ra ta còn có mảng là vector cột, tức là mảng có một cột và
nhiều hàng, trong trƣờng hợp này tất cả mọi thao tác và tính toán đối với mảng nhƣ
ở trên là không thay đổi.
Từ các hàm tạo mảng minh hoạ ở phần trƣớc (tất cả đều là vector hàng), có
nhiều cách để tạo vector cột.
d1. Cách trực tiếp tạo vector cột
* Xét trong mảng một chiều

Đề tài: Dùng Matlab để thiết kế phần mềm trợ giúp giảng dạy và học tập
Họ tên ngƣời thực hiện: Nguyễn Kiếm Anh

Trang 25


×