Tài liệu Thực hành Matlab

Lời mở đầu 1

1 Matlab cơ bản 5

1.1 Giới thiệu Matlab . . . . . . . . . . . . . . . . . . . . . . . . . 5

1.2 Phép toán, biến, vector, ma trận . . . . . . . . . . . . . . . . 8

1.2.1 Biến . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.2.2 Phép toán . . . . . . . . . . . . . . . . . . . . . . . . . 9

1.2.3 Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.2.4 Ma trận . . . . . . . . . . . . . . . . . . . . . . . . . . 16

1.3 Biểu thức Logic . . . . . . . . . . . . . . . . . . . . . . . . . . 19

1.3.1 Các toán tử logic . . . . . . . . . . . . . . . . . . . . . 19

1.3.2 Vectơ và biểu thức logic . . . . . . . . . . . . . . . . . 20

1.3.3 Các hàm logic: All, Any và Find . . . . . . . . . . . . . 20

1.4 Lệnh điều kiện và vòng lặp . . . . . . . . . . . . . . . . . . . . 21

1.4.1 Lệnh IF . . . . . . . . . . . . . . . . . . . . . . . . . . 21

1.4.2 Lệnh FOR . . . . . . . . . . . . . . . . . . . . . . . . . 22

1.4.3 Lệnh WHILE . . . . . . . . . . . . . . . . . . . . . . . 23

1.4.4 Lệnh SWITCH . . . CASE . . . . . . . . . . . . . . . . . 24

1.4.5 Script và Hàm . . . . . . . . . . . . . . . . . . . . . . . 24

1.5 Vẽ đồ thị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

1.5.1 Vẽ đồ thị trong 2-D . . . . . . . . . . . . . . . . . . . . 28

1.5.2 Vẽ đồ thị trong 3-D . . . . . . . . . . . . . . . . . . . . 33

2 Đại số tuyến tính 38

2.1 Các phép toán ma trận, các phép biến đổi sơ cấp . . . . . . . 38

2.1.1 Các phép toán ma trận . . . . . . . . . . . . . . . . . . 38

MỤC LỤC 3

2.1.2 Các phép biến đổi sơ cấp . . . . . . . . . . . . . . . . . 42

2.2 Ma trận nghịch đảo, Phương trình ma trận và Hệ phương trình

tuyến tính . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

2.2.1 Ma trận nghịch đảo . . . . . . . . . . . . . . . . . . . . 44

2.2.2 Ma trận giả nghịch đảo . . . . . . . . . . . . . . . . . . 46

2.2.3 Giải phương trình ma trận . . . . . . . . . . . . . . . . 49

2.3 Hệ phương trình tuyến tính . . . . . . . . . . . . . . . . . . . 51

2.3.1 Đưa về dạng ma trận . . . . . . . . . . . . . . . . . . . 51

2.3.2 Sử dụng tính toán symbolic . . . . . . . . . . . . . . . 52

2.4 Định thức, giải hệ phương trình tuyến tính bằng định thức . . 54

2.4.1 Định thức . . . . . . . . . . . . . . . . . . . . . . . . . 54

2.4.2 Giải hệ phương trình tuyến tính bằng định thức . . . . 55

2.5 Đa thức đặc trưng, trị riêng và vectơ riêng . . . . . . . . . . . 55

3 Giải tích hàm một biến 58

3.1 Các phép toán tập hợp . . . . . . . . . . . . . . . . . . . . . . 58

3.1.1 Định nghĩa tập hợp và cách khai báo tập hợp trong

Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . 58

3.1.2 Các phép toán trong tập hợp . . . . . . . . . . . . . . 59

3.2 symbolic math cơ bản . . . . . . . . . . . . . . . . . . . . . . 66

3.2.1 Khái niệm chung . . . . . . . . . . . . . . . . . . . . . 66

3.2.2 Khởi động TOOLBOX . . . . . . . . . . . . . . . . . . 66

3.3 Các bài toán dãy số và chuỗi số . . . . . . . . . . . . . . . . . 71

3.3.1 Khái niệm về dãy số, chuỗi số và cách khai báo trong

matlab . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

3.3.2 Một số hàm về xử lí dãy số và chuỗi số trong Matlab . 72

3.4 Các bài toán giới hạn hàm số và tính liên tục của hàm số . . . 76

3.4.1 Giới hạn của hàm số . . . . . . . . . . . . . . . . . . . 76

3.4.2 Sự liên tục của hàm số . . . . . . . . . . . . . . . . . . 77

3.5 Các bài toán tích phân hàm một biến . . . . . . . . . . . . . . 80

3.5.1 Tích phân bất định . . . . . . . . . . . . . . . . . . . . 80

3.5.2 Tích phân xác định . . . . . . . . . . . . . . . . . . . . 80

3.5.3 Tích phân số . . . . . . . . . . . . . . . . . . . . . . . 81

3.5.4 Các hàm trong Matlab dùng cho bài toán vi phân hàm

một biến . . . . . . . . . . . . . . . . . . . . . . . . . . 83

4 MỤC LỤC

4 Cơ học và Xác suất - Thống kê 88

4.1 Cơ học . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

4.1.1 Động học chất điểm . . . . . . . . . . . . . . . . . . . 88

4.1.2 Sóng cơ học . . . . . . . . . . . . . . . . . . . . . . . . 93

4.2 Xác suất - Thống kê . . . . . . . . . . . . . . . . . . . . . . . 97

4.2.1 Tính toán xác suất cơ bản . . . . . . . . . . . . . . . . 97

4.2.2 Thống kê mô tả . . . . . . . . . . . . . . . . . . . . . . 99

4.2.3 Kiểm định giả thiết: z - test và t - test . . . . . . . . . 99

5 Giao diện đồ họa người dùng – GUI 102

5.1 Tổng quan về các tệp tin GUI . . . . . . . . . . . . . . . . . . 102

5.1.1 Tệp tin M và tệp tin FIG . . . . . . . . . . . . . . . . 102

5.1.2 Cấu trúc tệp tin M của GUI . . . . . . . . . . . . . . . 102

5.2 Ví dụ tạo một GUI đơn giản . . . . . . . . . . . . . . . . . . . 103

pdf117 trang | Chuyên mục: MATLAB | Chia sẻ: dkS00TYs | Lượt xem: 5958 | Lượt tải: 5download
Tóm tắt nội dung Tài liệu Thực hành Matlab, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
hà máy sản xuất thức ăn đóng hộp tuyên bố rằng trọng lượng trung
bình các hộp thức ăn xuất xưởng là 140 (g). Lấy mẫu 12 hộp thức ăn
138, 125, 155, 130, 140, 150
130, 120, 125, 134, 160, 135
Dùng kiểm định z - test hoặc t- test để kiểm chứng khẳng định của nhà máy
với mức ý nghĩa α = 5%.
CHƯƠNG 5
Giao diện đồ họa người dùng – GUI
5.1 Tổng quan về các tệp tin GUI
5.1.1 Tệp tin M và tệp tin FIG
Tạo tệp tin GUI bằng câu lệnh GUIDE. Một tệp tin GUI sẽ được tạo ra và
lưu trữ trong hai tệp tin:
• Tệp tin FIG, đuôi mở rộng .fig, chứa cách bố trí (layout) GUI và các
thành phần của GUI như là: push buttons, axes, panels, menus v.v...
• Tệp tin M, đuôi mở rộng .m, chứa các đoạn mã khởi tạo ban đầu và
các thủ tục (template) cho các hàm gọi lại (callback). Ngoài ra, phải
thêm các callback khi viết các thành phần của GUI.
Tệp tin FIG và tệp tin M phải cùng tên và thường có chung đường dẫn. Thực
thi: Tạo GUI → tổ chức GUI trong Layout Editor (công việc được lưu trong
tệp tin FIG) → thực thi GUI (công việc được lưu trong tệp tin M).
5.1.2 Cấu trúc tệp tin M của GUI
Tệp tin M của GUI được GUIDE tạo ra là một tệp tin hàm, tên hàm chính
trùng với tên tệp tin. Các callback trong tệp tin là các hàm con của hàm
chính.
5.2 Ví dụ tạo một GUI đơn giản 103
Hình 5.2.1: Tạo và đặt tên cho một GUI mới
Khi lệnh GUIDE tạo ra tệp tin M, nó tự động đưa vào các thủ tục của các
callback thường được sử dụng nhất. Tệp tin M chứa đoạn mã khởi tạo, và
ta phải thêm các đoạn mã vào các callback thành phần trong GUI theo mục
đích của công việc.
5.2 Ví dụ tạo một GUI đơn giản
Ví dụ 5.2.1. Tạo một GUI có một nút bấm, khi bấm vào sẽ hiện giờ hiện
hành
• Bước 1: Tạo GUI bằng lệnh GUIDE, hình vẽ 5.2.1
• Bước 2: Chọn và đặt pushbutton, hình vẽ 5.2.3
• Bước 3: Chỉnh thuộc tính component, hình vẽ 5.2.4 – 5.2.8
• Đặt tên cho chương trình: Chọn Property Inspector → Chỉnh Name:
Time, hình vẽ 5.2.9
Ví dụ 5.2.2. Tạo một GUI vẽ đồ thị.
5.3 Một số component trong GUI
Push Button(Nút nhấn)
Khi nhấp chuột vào một nút, thì hàm sau sẽ được gọi
104 Giao diện đồ họa người dùng – GUI
Hình 5.2.2: Layout editor
Hình 5.2.3: Chọn và đặt pushbutton
Hình 5.2.4: Chỉnh thuộc tính component
5.3 Một số component trong GUI 105
Hình 5.2.5: Thay đổi giá trị thuộc tính
Hình 5.2.6: Cài đặt Callback cho component
Hình 5.2.7: Tệp tin M của GUI
106 Giao diện đồ họa người dùng – GUI
Hình 5.2.8: Thêm đoạn mã xử lý
Hình 5.2.9: Đặt tên cho chương trình là Time
Hình 5.2.10: GUI vẽ đồ thị
5.3 Một số component trong GUI 107
Hình 5.2.11: Handle Visibility → callback
Hình 5.2.12: Chọn và đặt Axes
Hình 5.2.13: Handle Visibility của Axes → On
108 Giao diện đồ họa người dùng – GUI
Hình 5.2.14: Thêm Button Plot
Hình 5.2.15: Cài đặt Callback cho Button Plot
Hình 5.2.16: Thêm các button grid on/off và clear
5.3 Một số component trong GUI 109
Hình 5.2.17: Cài đặt callback cho Grid on/off
Hình 5.2.18: Cài đặt callback cho Clear
110 Giao diện đồ họa người dùng – GUI
function pushbutton1_Callback(hObject, eventdata, handles)
... ... ...
Ví dụ 5.3.1. Nhấn nút thì thay tên của nút (thuộc tính ‘String’ của nút)
function pushbutton1_Callback(hObject, eventdata, handles)
set(gcbo,’String’,‘ten gi do’);
Một số thuộc tính quan trọng của Button:
• Enable: cho phép nhấn (on/off)
• String: chuỗi hiển thị trên nút
• Tag: tên đối tượng nút phân biệt với các đối tượng khác trong chương
trình
• Value: giá trị của nút.
Toggle Button, Radio Button và Check Box (Nút bật tắt, Nút chọn
và Ô check)
• Thuộc tính của Toogle Button: Thuộc tính Value sẽ bằng thuộc tính
Max nếu nút được nhấn hoặc được chọn, ngược lại sẽ bằng thuộc tính
Min.
function togglebutton1_Callback(hObject, eventdata, handles)
button_state = get(hObject,’Value’);
if button_state == get(hObject,’Max’)
% Toggle button được nhấn
...
elseif button_state == get(hObject,’Min’)
% Toggle button không được nhấn
...
end
• Mặc định Max=1, Min=0. Cũng có thể thay đổi trạng thái cho các
Toggle Button, Radio Button và Check Box bằng cách đặt lại các thuộc
tính Value, Max, Min.
set(handles.togglebutton1,’Value’,get(handles.togglebutton1,’Max’))
5.3 Một số component trong GUI 111
đặt nút togglebutton1 sang trạng thái được nhấn
set(handles.radiobutton1,’Value’,get(handles.radiobutton1,’Min’))
đặt nút radiobutton1 sang trạng thái bỏ chọn Ô nhập văn bản: Edit Text
• Thuộc tính String chứa chuỗi mà người dùng nhập vào
function edittext1_Callback(hObject, eventdata, handles)
user_string = get(hObject,’String’);
...
• Nếu thuộc tính Max, Min được đặt sao cho Max–Min>1 thì người dùng
có thể nhập nhiều hàng.
• Callback được gọi khi đang thay đổi nội dung của Edit Text mà nhấp
chuột ra bên ngoài (nhưng vẫn bên trong GUI), hoặc khi người dùng
nhấn Enter (với Edit Text một hàng), Ctrl+Enter (với Edit Text nhiều
hàng).
• Thuộc tính String trả về một chuỗi. Muốn nhận dữ liệu số thì sử dụng
hàm str2double. Nếu người dùng không nhập số thì str2double trả về
NaN.
function edittext1_Callback(hObject, eventdata, handles)
user_entry = str2double(get(hObject,’string’));
if isnan(user_entry)
errordlg(’You must enter a numeric value’,’Bad Input’,’modal’)
return
end
% Proceed with callback...
Thanh trượt (Slider)
• Thuộc tính Value xác định trạng thái của Slider.
• Thuộc tính Max và Min xác định cực đại và cực tiểu cho thuộc tính
Value của Slider.
112 Giao diện đồ họa người dùng – GUI
function slider1_Callback(hObject, eventdata, handles)
slider_value = get(hObject,’Value’);
% Proceed with callback...
List box và Pop-up menu
• Thuộc tính Value chứa chỉ số của mục được chọn. Chỉ số của mục đầu
tiên là 1.
• Thuộc tính String là mảng cell chứa danh sách các mục chọn của List
Box và Pop-up Menu.
• Ví dụ dưới đây cho phép lấy giá trị của chuỗi được chọn trong List Box.
function listbox1_Callback(hObject, eventdata, handles)
index_selected = get(hObject,’Value’);
list = get(hObject,’String’);
item_selected = list{index_selected};
% Convert from cell array to string
• Callback của List Box được gọi sau sự kiện nhả chuột hoặc nhấn một
số phím đặc biệt.
• Khi các phím mũi tên thay đổi thuộc tính Value của List Box, callback
Callback được gọi đồng thời đặt thuộc tính SelectionType của figure
thành normal.
• Phím Enter và Space không làm thay đổi thuộc tính Value của List Box,
nhưng Callback vẫn được gọi, đồng thời đặt thuộc tính SelectionType
của figure thành open.
• Nếu người dùng nhấp đúp chuột thì Callback được gọi sau mỗi lấn
nhấp. MatLab đặt thuộc tính SelectionType của figure thành normal
ở lần thứ nhất và thành open ở lần thứ hai.
• Do đó ta có thể biết được người dùng nhấp đúp chuột hay không dựa
vào việc truy vấn thuộc tính SelectionType của figure.
5.3 Một số component trong GUI 113
Button Group
• Button Group chứa các thành phần GUI, đồng thời giúp ta quản lý
việc lựa chọn của Radio Button và Toggle Button.
• Nếu Button Group chứa Radio Button, Toggle Button hoặc cả hai thì
Button Group chỉ cho phép một trong số chúng được chọn. Nếu một
cái được chọn thì những cái khác sẽ được bỏ chọn.
• Callback SelectionChangeFcn của Button Group được gọi khi có sự
thay đổi chọn.
• Tham số đầu vào hObject trỏ tới Radio Button hoặc Toggle Button
được chọn.
• Các callback của các thành phần khác trong GUI có thể truy xuất tới
đối tượng được chọn thông qua thuộc tính SelectedObject của Button
Group.
Axes (Hệ trục tọa độ)
• Hệ trục tọa độ dùng để vẽ đồ thị hoặc hiển thị hình ảnh.
• Muốn vẽ đồ thị lên một hệ trục tọa độ, ta thêm handles tới hệ trục tọa
độ đó vào hàm muốn sử dụng.
Ví dụ 5.3.2. vẽ đồ thị lên hệ trục axes1
[X,Y] = meshgrid(-3:.125:3);
Z = peaks(X,Y);
meshc(handles.axes1,X,Y,Z);
axis([-3 3 -3 3 -10 5]);
BÀI TẬP
1. Tạo một giao diện người dùng như hình vẽ 5.3.1. Chương trình mô
phỏng máy tính bỏ túi dùng để tính các phép toán thông thường. Trong
đó, nút dấu bằng là togglebutton , các nút còn lại đều là pushbutton.
Các tag cụ thể:
114 Giao diện đồ họa người dùng – GUI
Hình 5.3.1: Máy tính với các chức năng thông thường
• Dấu bằng: togglebutton_bang. Nó ở trạng thái được nhấn khi
người dùng nhập xong một chuỗi và nhấn vào nó. Nút này ở trạng
thái không nhấn khi người dùng nhấn vào các nút khác để bắt
đầu nhập chuỗi mới.
• Màn hình hiển thị gồm: text_bieuthuc, hiển thị biểu thức người
dùng nhập và kết quả biểu thức. Và text_canhbao, hiển thị
thông báo khi nhập sai.
• Nút Del và AC dùng để xóa: pushbutton_del, pushbutton_AC,
nút Del xóa một ký tự cuối, nút AC xóa toàn bộ chuỗi.
• Các nút nhập biểu thức: pushbutton_1, pushbutton_2, push-
button_cong, . . . để nhập biểu thức cần tính.
2. Thiết kế GUI như hình vẽ 5.3.2. Chương trình sẽ vẽ đồ thì hàm số được
chọn trong popupmenu1 lên hệ trục tọa độ khi nhấn vào nút push-
button_Update với các tham số đường nét, màu sắc được chọn trong
hai buttongroup, đó là uipanel_Color và uipanel_LineStyle.
Ngoài ra đồ thị sẽ có thêm các ô lưới nếu checkbox Grid được chọn,
ngược lại đồ thì sẽ không có các ô lưới.
3. Thiết kế GUI như hình vẽ 5.3.3. Bao gồm:
• Hai hệ trục tọa độ axes1 và axes2 dùng để hiển thị đồ thị.
• Các nút vẽ và ô check để hiển thị lưới trên đồ thị: pushbut-
ton_Plot1, pushbutton_Plot2, checkbox_Grid1, và check-
box_Grid2.
5.3 Một số component trong GUI 115
Hình 5.3.2: GUI vẽ đồ thị 2D
Hình 5.3.3: GUI vẽ đồ thị 2D với các tính năng cập nhật các hàm cần vẽ
116 Giao diện đồ họa người dùng – GUI
• Hai danh sách các hàm số cần vẽ và các nút thêm, xóa hàm số: list-
box1, listbox2, pushbutton_Add1, pushbutton_Remove1.
• Ô edit text dùng để nhập thêm hàm số và hai static text dùng để
hiển thị thông báo lỗi: edit1, text1, text2.
• Khi người dùng nhấn các nút Plot, đồ thị của hàm số được chọn
trong list box sẽ được hiển thị trên các hệ trục tọa độ tương ứng.
• Khi người dùng nhập hàm số vào text box và nhấn nút Add thì
hàm số sẽ được thêm vào list box tương ứng.
• Khi người dùng nhấn nút Remove thì hàm số được chọn sẽ bị xóa
khỏi list box tương ứng.

File đính kèm:

  • pdfTài liệu Thực hành Matlab.pdf
Tài liệu liên quan