aS Nội dung Giới thiệu các thành phần cơ bản của MabLab bao gồm: Khái niệm về MatLab Tính toán trên ma trận cu thé: " Đồ họa hai chiều Không gian 3D Lap trinh trong MatLab lạo giao d
Trang 1HIEN CUU VE MATLAB VA
BO GIAO DUC VA ĐÀO TẠO
G ĐHDL KỸ THUẬT CÔNG NGHỆ TP.HCM KHOA CÔNG NGHỆ THÔNG TIN
Trang 2
BỘ GIÁO DUC & ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
ĐẠI HỌC KỸ THUẬT CÔNG NGHỆ TP.HCM ĐỘC LẬP - TỰ DO - HẠNH PHÚC
144/24 Điện Biên Phủ _ Q Bình Thạnh - TP.HCM 000
ĐT : 5120254 — 5120294
Khoa : Công Nghệ Thông Tin
on NHIEM VU THUC HIEN ĐỒ ÁN TỐT NGHIỆP
Bộ môn : Công Nghệ Phần Mềm
Họ và tên : NGUYỄN THỊ CẨM NHÂN MSSV : 02BHTH143
NGUYEN THỊ HỒNG NHI MSSV : 02DHTH150 Nganh : Công Nghệ Thông Tĩn 21m Lớp :02DHTHC
1 Đầu để đồ án tốt nghiệp : Nghiên cứu về MATLAB và Ứng dụng vào Bài tóan
e Háo cáo Tổng quan về MATLAB
e©_ Báo cáo Tổng quan về Bài tóan trong tài chính ngân hàng
> _ Phần phân tích, thiết kế & xây dụng ứng dụng minh hoa:
Thiết kế hệ thống giải các bài toán tài chính thông qua Matlab
3 Ngày giao nhiệm vụ đồ án : 23/10/2006
4 Ngày hòan thành nhiệm vụ : 22/01/2007
3 Họ tên giáo viên hướng dẫn: PGS.TS TRƯƠNG MỸ DUNG
Nội dung và yêu cầu đồ án tốt nghiệp đã thông qua GIÁO VIÊN HƯỚNG DẪN CHÍNH
TP.HCM, ngày thẳng năm 2003 (Ký và ghủ rõ họ tôn)
CHỦ NHIỆM KHOA
Vad iy NM Dune/
PHAN DANH CHO BO MON
Người duyệt (châm sơ hộ) :
Đơn vị :
Ngày bảo vệ :
Điểm tổng quát :
Trang 3NHAN XET CUA GIAO VIEN HUONG DAN
XK) CR
Trang 4NHAN XET CUA GIAO VIEN PHAN BIEN
&) CR
Trang 5Trong khoảng thời gian đó, chúng em đã nhận được sự dạy dỗ của các thầy cô
khoa Công Nghệ Thông Tin - Bộ môn Công Nghệ Phần Mềm, Trường ĐHDL,
văn này là cơ hội tốt cho chúng em gởi lời cảm ơn đến tất cả mọi
; chúng em xin gới lời cảm ơn và lòng kính trọng đến cô hướng
8 em, PGS.TS Trương Mỹ Dung vì những tài liệu hữu ích và su
tình của cô Mặc dù rất bận rộn nhưng cô đã dành nhiều thời gian
lời khuyên, sửa chữa những chỗ còn thiếu sót trong luận văn cũng
ạt những kinh nghiệm quý báu cho chúng em trong suốt quá trình
ai
xin chân thành cảm ơn giáo viên phản biện đã giúp chúng em
an van nay
chúng em muốn gởi lời cảm ơn đến gia đình cũng như bạn bè đã
b viên đê chúng em hoàn thành luận văn
hành cảm ơn!
Trang 6
LOT CAM OM) ooo ec ccscccsssessesecsscessussceseesecessesussussessesscavsisesssssrsensacsssceseeceseececess i
MYC UC ones scecesseesecsesssesessessesssscssecssssssnssssssessesssciessessesisssesitsscesserceeseecess ii
Danh Mục Bảng Biễu ỎỘ Q02 2221102221201 vi
Darth Mute Bim oo eee cessesssesssesscsseessessecsesssessucsscssscsussavesscssecesecitseneeseceeee vii
Chương 1: Giới Thiệu Tống Quan Về Matlab .c.ccecsssescssesssesssecssseee 3
1.1 Matlab [a gi? «co co cocEoe+CveExseEEdereserssecrseorsessseree 3
1.2 Cơ sở trong Matlab 5-o° se eet+x Sa ESeceeESetrevseossece 4
1.2.1 Tính toán trên ma trận .- 21s SSSSEE SH SE n1 te 4
1.2.1.] Tạo ma trận .-s-csct HH SEx TH HH HE na 4
1.2.1.2 Xử lý ma trận - s-ccsS.t 21211 17111512250EEEEEEEreereeeere, 4
1.2.1.3 Các hàm cơ bản 2 s2 EESE1E1E2112502155121211E- se 5
1.2.2 Đỗ họa hai chiều trong Matlab - 5s < sec se sssecrx 6
1.2.2.1 Một số lệnh kiểm soát -.2222E2Ennnnnneree 6
1.2.2.2 Các lệnh vẽ cơ bản St S24 STE SE T HE Tn ng nnneeeg 7
1.2.3 Không gian 3D (3D — Visualization) 0 cessessscsessessessessssssessecseouseees 9
1.2.3.] Tạo hình ảnh 3D -s se tt tSEEvES 2111521851111 nxe 9
1.2.3.2 Cac ham vé 3D co DAM oe eecccesceessssssccesecsecssesssecssessuccssessssecersoseee 9
1.2.3.3 Céng ou hiển thị bằng ving sng .cccecscsssssscccssssscssccssssssesccosee 9
1.2.3.4 DG trong sudt csseccsssecccsssessssssecsseessssecsseesssseceusssscssessessusccssseee 11
1.2.4 Lập trình trong Matlab o.0 ccceccecccsccsssssssessessessessessessesscesecsesesoveseee 12
1.2.4.1) Cau trac dit Qu ooceecccccccecssscsssessseccsssssesesssssvecesssssscsscsssssessecesee 12
1.2.4.2, Kidu dit QU oo ccccsccsscsssccsssssssssssuesvecssssessesssssssssssssevecseeeeeees 12
1.2.4.3] Cac thành phần lập trình co DAM ccsccsecssssesscsssecssssssesessssseece 14
1.2.4.4 Lập trình bằng M-file 25222 nen 18
1.2.5 Tạo giao diện người sử dụng đồ họa (GUI]) -2 -s-czscerszz 20
1.2.5.1| Tạo ÍĩgUIFe 5-25 Se St SE SE E158 215E1111 111111111 ssE 20
1.2.5.2} Nhitng thanh phan vOn có 05T 21
1.2.5.3| Thêm điều khiển giao diện người dùng (UI Controls) 22
1.2.5.5| Thêm ÁX€§ Q.5 S St Sn SH T121 115 1321515115111 nen 24
1.2.5.6: Thêm ActiveX Controls 52s ng no 24
Trang 7
iii
1.2.5.7 Cac thanh phan Aligning o ccscccscssssssccsssescccsssssseesessssseessconee 24
1.2.5.8 Thiết lập Tab Oder oo ccscsssssssssssssscsssssssessssssssssssstvessscessseseees 24
1.2.5 Tạo Menu - «St HS TH HT HT TngHn HE nen 25
1.2.5.10 Tạo Context Menu 2 sSs Sa t3 SE St HT nen 26
1.2.5.11 Tạo Toolbar - Set E3 SsSE SE SE2EEEEE SE se 26
1.2.5.12 Hàm Callbaek - se kevESEEEEE2EEEEEE1EEEEEEEEEEEsE 27
Chương 2: | Giới Thiệu Một Số Bài Toán Trong Tài Chính 28
CN CC 28
2.2 Các khái niệm tài chính cơ bản < se set seeteesserseossece 28 2.3 Hệ thống lãi đơn .222<©©222E222222222224t2e0EEE1E29202122222555022552 29 2.3.1 Các đối số s22 2H00 1111212cee 29 2.3.2 2.3.3 2.3.4 23.5 2.3.6 2.3.7 2.4 Hệ thốn 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.5 Các khoản thanh toán theo chu kỳ .s se se set sseozs 33 2.5.1 Cáo đối số LH xe re 33 2.5.2 Tổng giá trị tương lai của các khoản thanh toán cuối kỳ 33
2.5.3 Tổng giá trị hiện tại của các khoản thanh toán cuối kỳ 34
2.5.4 Tống giá trị tương lai của các khoản thanh toán đầu kỳ 34
2.5.5 Tổng giá trị hiện tại của các khoản thanh toán đầu kỳ 34
2.5.6 Định giá các khoản tiền thanh toán cuối kỳ 22.52cssccec 35
2.5.7 Định giá các khoản tiền thanh toán đầu kỳ 222 tSnc 35
2.6 Chỉ số (Index Number) 22+sedSEEEEEESC222edEEE992222552221121525 35
2.6.1 Định ngÌĩa, so St SH 2x21 EEE TH HE 35
Trang 8iv
2.7 Dự báo|theo chuỗi thời gian (Time Series Forecasting) 36
2.7.1 Định nghia oo eceesceescessssesssssssecssesssesssssssecsscsssessasssecssasesuvecsresecceseceses 36 2.7.2 Dự báo theo dịch chuyền trung bình (moving average) 36
2.7.3 Dự báo theo dịch chuyển trung bình có trọng số (W.M.A) 37
2.7.4 Dự báo theo hàm trơn đơn (Single exponential smoothing) 39
Chương 3: Các Hàm Về Tài Chính Trong Matlab 40
3.1 Giới thị —Ắ511 40
3.2 Biểu diễn các tác vụ tài chính phổ biến 1nnnn 41 3.2.1 Xử lý và chuyển đổi kiểu dữ liệu Date 222 41 3.2.2 Định dạng tién t@ ecccccecccsssscsscssesscccssesecsssssssessssssssssvesssssesessccessssece 43 3.2.3 Vẽ đồ thị dữ liệu tài chính 22222tS2222EEEEEEEersseee 44 3.3 Hệ thống lãi đơn s. -2.2EEEEE2E2222222222229.20920222202012212552 46 BBD THGm Lai h^ 46
3.3.2 La 3.3.3 Lãi suất chiết KNAW cccssccccscccccccsssssssssssecessesessssssssssecssessesseeceecce 47 3.3.4 Giá trị hiện tại SH TH H21 11s 47 3.3.5 Gia tri tuong lab ec ccccecsssssssssaseceresssessusssscssscsssssssscsisosecseseseees 48 3.4 Cac khoản thanh toán theo chu kỳ 2 5< ssexeevzssesseszseo 48 3.4.1 Giá trị tương lai của các khoản thanh toán cuối kỳ (đầu kỳ) 48
3.4.2 Giá trị hiện tại của các khoản thanh toán cuối kỳ (đầu kỳ) 49
3.4.3 Định giá các khoản tiền thanh toán cuối kỳ (đầu kỳ) 49
3.5 Cac tac vu pho bién cita déi trong FTS .scssssssssssessccssssscossscccsssosseecooccc 50
3.5.1 Tao d6i trong FTS .cccccsssesscsccsssssssssesssssssssusssssssesssstteseeececeeeecsccee, 50
3.5.2 Tao đối tượng FTS từ fñile ASCI 1n 51
3.5.3 Cộng FT§ Q.21 1e 52
3.5.4 TOrig tich VOY eecsccccccccssssssssssssssessessessessssssscesssessssssstssseseeseseeceeeccecee 53
3.5.5 Lấy nội dung của field xác định 2 tt 53
3.5.6 Gán nội dung của field xác định SE 54
3.6 Dự báo theo chuỗi thai giam .cccsssscssscssessssssccssessscssesssssesessesecoseeccosses 55
3.6.1 Dự báo theo dịch chuyền trung binh cscccssecsssessssecossesecseccseccosece 55
3.6.2 Dự báo theo dịch chuyển trung bình có trọng sỐ c-ccce- 55
3.6.3 Dự báo theo hàm trơn đơn 5 5s 1n 1n 56
3.6.4 Các đối số 0 010201111 re Heeeeeeee 56
Trang 9
4.2.5 Lược đồ thành phan (component diagram)
4.3 Thiết kế dữ liệu s-etresreEEEEEEEEEEEEEEEEE012E-Ee 83
4.3.1 Cơ sở dữ liệu ở mức vật lý -©2+S2<113E1E112 1215111111 83
4.3.2 Mô hình dữ liệu s2 sssctS.ESE111211211111151E111EEEEse 84
4.3.3 Cac bang dit Qu oc ccc cccsscsssccstscsecsessestssesssssserereereescerceceeese 84
4.3.4 md hình cài dat dit ligu bang Sql oi seeccesssescsssssscecssescsseccssessseeees 85
4A Giao diện c.ccccc occSEE19101 111222121155222212221512120200122012105502 86
4.4.1 Tab Dữ liệu vào - cụ St He H211 TH Hee 86
4.4.2 Tab Bai Todt oe eeceecccsscssessecsssesssessarecesessssssessascssssssessavssstscuseeseceees 86
4.4.3 Tabb Dit Hu xuat oe eccccccccesccstssssesssesesssesssscssssesssssssssessssosucessesees 87
4.5 Thir ngiigm sssscsscsscsenscsscessessssssessssscessssesersassesnesessecsesessrseesanenseresees 87
4.5.1 Tính tiền lãi đơn với dữ liệu nhập từ form 2S 87
4.5.2 Tính tiền lãi đơn với dữ liệu lấy từ file Excel 2 tt 89
KG t Ludtnecc.sdisscssscccccescsscsssesscessessssssenssensensenssensesssssssnsssassssssssssasanstusatesesesecesoee 91
Trang 10
Bang 1 1: Bang 1 2: Bang 1 3: Bang 1 4: Bang 1 5: Bang 1 6: Bang 1 7: Bang 1 8: Bang 1 9: Bang 1 10: Bang 2 1: Bai todn về đự báo theo dịch chuyén trung binh cccscsssssescssssesscssssssees 37 Bảng 2 2: Kết quả dự đốn theo pp dịch chuyên trung bình cĩ trọng số 38
Bảng 2 3: Bài tốn dự báo theo hàm đơn.trơn 2s ca S2S c2 SEtEEn sec 39 Bang 3 1: Ca ham chuyén déi NAY THAN eecessssecseressesesesseesorsssessneeneesecereeess 41 Bảng 3 2: Một số ham dinh dang ti€n t8 .ccccecccsssssssssccssssssecsesssssssssescssssseseccesse 43 Bảng 3 3: Các hàm vẽ đồ thị đữ liệu tài chính . ss se v2 receszessrzcs 44 Bảng 3 4: Thơng sơ nhập của hàm tính tiền lãi ỔƠH 2 SH SH xe 46 Bảng 3 5: Thơng so nhập của hàm tính lãi suất bu 46
Bảng 3 6: Thơng số nhập của hàm tính lãi suất chiết khấu 2- 2s 47 Bảng 3 7: Thơng SỐ nhập của hàm tính giá trị hiện tại đơn -cce: 47 Bang 3 8: Thơng số nhập của hàm tính giá trị tương lai đơn 2cc¿ 48 Bang 3 9: Thong số nhập của hàm tính Giá trị tương lai của các khoản thanh tốn CUOI KY (GAU KY) eceesecsssssssesecssssssevessessssneseesssssssuecesssssssussstsssstssussssssstaseseesesseceeece 48 Bảng 3 10: Thơng số nhập của hàm tính Giá trị hiện tại của các khoản thanh tốn cuối kỳ (đầu kỳ) c.2222E22111211 211111111112TTEE T.1EEnee 49 Bảng 3 11: Thơng số nhập của hàm Định giá các khoản tiền thanh tốn cuối kỳ (đầu kỳ) 2.22222222111122 eerreeeseeeeeeeee 49 Bảng 3 12: Thơng số nhập của hàm tạo đối tượng FTS - co 50 Bang 3 13: Thơng số nhập của hàm tạo đối tượng FTS từ file ASCI 51
Bảng 3 14: THơng SỐ nhập của hàm 300-001 Sa .aẶộA 52
Bảng 3 15: Thong sỐ nhập của hàm lấy nội dung field xác định 33
Bảng 3 16: Thơng số nhập của hàm gán nội dung của field xác định 34
Bảng 3 17: THơng số nhập của hàm dự báo theo hàm trơn đơn .- 56
Bảng 4 1: Bảng LoạBaiToan - s- «s2 vESEEEEEEEEEE8E 1512215152511 5EE 5e 84
Bảng 4 2: Bảng BaiToan s22 T TE110110215115 11501811101 EEE111Ensae 84
Bảng 4 3: Bảng ThongSo - ¿tt v2 EE11 1111111118 1511511155115 se 85
Bang 4 4: Bang ChiTietBaiToan ccccccssssssessssceccsccecsecsessessussucsusssesecssssesesecsseess 85
Bang 4 5: Bang KetQuaBaiToan ccccsssssssscssescsesessessessessusssssscssesssssveresssesecscsese 85
Trang 11Hình 4 2: Lược đồ tuần tự Vẽ đối tượng . -c-ccccscSrkeECkevrksrrreerre 74
Hình 4 3: Lược đồ tuần tự Chọn bài toán Lãi đơn . -5 5- 74
Hình 4 4: Lược đồ tuần tự Chọn dữ liệu vào Excel -csccscseecce 74
Hình 4 5: Lược đồ tuần tự Chọn đữ liệu vào Sql . -c -s- 75
Hình 4 6: Lược đồ tuần tự Hiển thị đữ liệu dạng ExceÌ .« c-<« 75
Hình 4 7: Lược đồ tuần tự Hiển thị đữ liệu Sgl 2-ccccccevcrxeceex 76
Hình 4 §: Lược đồ tuần tự Lưu đữ liỆU - cSc tt Ss vs ccecsecrererseees 76
Hình 4 9: Lược đồ tuần tự Nhập dữ liệu mớii - <cc sec ceccereces 76
Hình 4 10: Lược đồ tuần tự Thêm mô hình mới (dòng sự kiện chính) 77
Hình 4 11: Lược đồ tuần tự Thêm mô hình mới (dòng sự kiện khác) 77
Hình 4 12: Lược đồ tuần tự Thực thi bải toán -.s+cseerxe2zxzerrvcve 77
Hình 4 1: Lược đồ quan hệ giữa các class đối tượng 2-ccecccscrs 78
Hình 4 14: Lược đồ lớp Vẽ đối tượng 2 ©c2+xeetEvExxtrsrrreerrrrrrcee 78
Hình 4 15: Lược đồ lớp Chọn bài toán Lãi đơn -e-©:eevczeeccrez 79
Hình 4 16: Lược đồ lớpChọn đữ liệu vào Excel -c2-cccccc2czvcce 79
Hình 4 17: Lược đồ lớp Chọn đữ liệu vào 1) 80
Hình 4 18: Lược đồ lớp Hiển thị đữ liệu Excel - -cc<+vzxvssserrcee 80
Hình 4 19: Lurge dé lép Hién thi dữ liệu 1) 81
Hình 4 20: Lược đồ lớp Luru dit LGU co.cc esseecsssessssscsssecereveesecesseeesavecseveeans 81
Hình 4 21: Lược đề lớp Nhập dit Qu mio eee ees ecsssescsssessesesseseseeesees 82
Hình 4 22: Hược đồ lớp Thực thi bài toán ¿5-2 5S cscv se cereexeeee 82
Hinh 4, 23: Component Diagramm 5< +22 k2 y v3 tk ngư rrry 83
Hình 4 34: Cơ sở dữ liệu ở mức vật lý 5+2 22tr kecrrerrkerrecee 83
Hình 4 25: Mô hình cài đặt dữ liệu .¿- ¿St 55Secrecvckrkrkererrkervre 85
Hình 4 26: Giao điện Tab dữ liệu vào - 5< Sex tre vxevey 86
Hinh 4 27: Giao dién Tab Bai toa cccescscsssssseseessscscssssssessscscsssscscseseereesaes 86
Hinh 4 28: Giao dién Tab dit li@u xuat 0 cecscscscssessesessseessessesssesesseeseasereees 87
Hình 4 29: Mô hình bài toán lãi đơn với dữ liệu vào nhập mới, đữ liệu ra được
Hình 4 30: Nhập dữ liệu cho bài toán tính tiền lãi đơn - 55: 88
Hình 4 31: Kết quá Bài toán tính tiền lãi đơn với dữ liệu nhập từ form 88
Hình 4 32: Mô hình tính tiền lãi đơn với dữ liệu vào và ra dạng file Excel 89
Hình 4 33: form load dữ liệu từ Excel 5< 5 sxc2 2xx serecererrre 89
Hình 4 34: Kết quả Bài toán tính tiền lãi đơn với đữ liệu vào và ra là file Excel 90
Trang 12
đó, dân số tăng nhanh làm cho vấn đề quản lý tài chính trở nên cần thiết và
quan trọng Từ đó, yêu cầu phải có công cụ giúp giải quyết các bài toán trong
một số bài tdán tài chính théng qua Matlab
Nhằm tạo sự giao tiếp thân thiện và thể hiện tính năng giao tiếp của MatLab voi cac nga
tang NET (¢
Kha nang trở lên (Hộp
n ngữ khác, hệ thống được thiết kế giao diện, xử lý trên nền
ụ thể là ngôn ngữ C#) và sử dụng MatLab để tính toán
} tích hợp MatLab với NET chỉ được hỗ trợ từ MatLab version 7.2 công cụ Matlab Builder for NET)
aS
Nội dung
Giới thiệu các thành phần cơ bản của MabLab bao gồm:
Khái niệm về MatLab Tính toán trên ma trận
cu thé:
"
Đồ họa hai chiều Không gian 3D Lap trinh trong MatLab lạo giao diện người sử dụng đồ họa (GUI)
thiệu một số bài toán cơ bản trong tài chính bao gồm Bài toán cơ bản trong hệ thống lãi đơn
3ài toán cơ bản trong hệ thống lãi kép
3ài toán về các khoản tiền thanh toán theo chu kỳ 3ài toán tính chỉ số
3ài toán về dự đoán
Trang 1 /116
Trang 13
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTHI143 Nguyễn Thị Hồng Nhi-02ĐHTH150
"_ Giới thiệu các hàm về tài chính trong Matlab
~_ Các hàm về tác vụ tài chính phể biến
- (Cac ham trong hé théng lãi đơn
- (Ac ham vé cdc khoản thanh toán theo chu kỳ
— Các hàm về tác vụ phổ biến của đối tượng FTS!
~ Các hàm về dự báo theo chuỗi thời gian
» _ Thiết kế hệ thống giải các bài toán tài chính thông qua Matlab
Bố cục luận văn bao gồm 4 chương:
" Chương l : Giới thiệu tổng quan về Matlab
= Chuong 2 : Gidi thigu mét số bài toán trong tài chính
= Chuong 3 : Cac ham vé tai chính trong Matlab
= Chugng 4: Thiét ké hé théng gidi cdc bai todn tai chinh théng qua Matlab
' Financial Time Series: Chuỗi thời gian tài chính
Trang 2/116
Trang 14b là gì? (Xem chỉ tiết trong [1] [2], TUTK?) (Matrix Laboratory) là phần mềm của tập đoàn The Math Works, ick, Massachusetts — MY, duge phan chia thanh cdc lĩnh vực ứng rào các hộp công cụ (toolbox), đặc biệt là dùng trong tính toán kỹ
ab kết hợp việc tính toán, hiển thị và lập trình trong một môi
ử dụng Ở đó, các vấn đề và giải pháp được trình bảy bằng những
n học quen thuộc
An tích số học Cleve Moler đã xây dựng phiên bản đầu tiên của những năm 1970 bằng FORTRAN Sau đó, Matlab được viết ngữ C trên cơ sở các thư viện đã có và phát triển thêm nhiều lĩnh
ng khác Nó đưa ra nhiều tác vụ thực tế được kết hợp với việc giải
an đề số học Điều này làm giảm bớt thời gian suy nghĩ và khuyến
tử nghiệm Mailab cung cấp các lệnh mạnh và hiệu quả, giúp hiện tác vụ phức tạp chỉ bằng một hoặc hai dòng lệnh Ngoài những đatlab cung cắp sẵn, ta cũng có thé tao ra ham moi dé phuc vu cho
\g riêng của mình
dụng tiêu biểu bao gdm:
trợ toán học và tính toán
it triển thuật toán
ù cầu cung cấp đữ liệu
hình, mô phỏng và lấy mẫu
m tích, khảo sát và hién thị đữ liệu
Trang 15SVTH: Nguyễn Thị Cẩm Nhân-02ĐHTH143_ Nguyễn Thị Héng Nhi-02DHTH150
1.2 Các chức năng cia Matlab:
1.2.1 Tính toán trên ma trận:
1.2.1.1 Tạo ma trận:
Để tạo ma trận A kích thước nxm, từ dòng lệnh (command line) của
Matlab t | nhập như sau:
>> APFI|Aii Ala Aim; 2t À2¿ À2m: ; Ân! Án2 Anm];
Có thể xuống dòng hoặc dùng dấu “:” để ngăn cách các hàng của ma
trận Các lcột cách nhau bởi dầu “.” hoặc khoảng trắng Nếu một hàng trong
ma trận có quá nhiều phần tử ta dùng dấu “ ” và viết các phần tử còn lại ở
Ngoài nhập trực tiếp từ dòng lệnh như trên, ta có thể tạo ma trận bằng
cách đọc từ một file dữ liệu đã có (trong Matlab file này có phần mở rộng
là mat, dạt, ), dùng toán tử “:” hoặc nhập từ bàn phím (dùng lệnh inpui)
M=zeros(n,m) | Ma trận kích thước nxm với toàn các phan tử là 0
M=anes(n,m) | Ma trận kích thước nzm với toàn các phan tử là 1
M = eye(n) Ma trận đường chéo (ma trận vuông cấp n)
M = eye(n,m) Ma trận đường chéo mở rộng (kích thước nxm)
M = magic(n) Ma tran ma phuong bac n
M= rand(n,m) Ma trận kích thước nxm với các số ngẫu nhiên
| Bảng 1 I: Một số ma trận đặc biệt trong Matlab
1.2.1.2 Xự lý ma trận:
Các phép toán cơ bản:
Trong Matlab, ký hiệu A' là ma trận chuyển vị của ma trận A
Các ma trận được cộng, trừ và nhân bằng các ký hiệu toán học thông
thường là +, —, * và / Đặc biệt Matlab còn cung cấp phép chia phái (dùng
trong giải phương trình tuyến tính) ký hiệu là \
Ÿ Toán từ “” biểu diễn cho cả dòng hoặc cả cột của ma trận Nếu nó nằm giữa 2 số nguyên thì đại diện
cho tất cả các số nguyên ở giữa 2 số nguyên đó (Xem chỉ tiết trong [3], TLTK)
Trang 4/116
Trang 16
SVTH: Nguyén Thi Cam Nhan-02DHTH143 Nguyén Thi Héng Nhi-O2DHTH150
viết là A.*B thay vì A*B (số hàng ma trận A phải bằng số cột ma
s* Lấy các giá trị của một ma trận: (Xem chỉ tiết trong [4], TLTK)
1.2.1.3 Các hàm cơ bản : (Xem chỉ tiết trong I5], TLTR)
size(A) Trả vệ một vector hàng [m nị chứa kích thước của
máng A có m hàng, n cột
length(A trong đó A là một ma trận, sẽ trả vệ số lớn nhất trong
hai s6 m, n max(A) Nếu A là vector, sẽ trả về phân tử lớn nhất trong A;
Nếu A là một ma trận, _sẽ trả về vector hàng chứa các
phần tử lớn nhất của mỗi cột
min(A) Tương tự max(A), nhưng lựa chọn phan tử bé nhất
sum(A) Tính tổng các phần tử trong từng cột của ma trận A,
kết quả chứa trong vector hàng
sort(A) Sắp xếp mỗi cột của ma trận A theo thứ tự giá trị tăng
dần từ hàng 1 đến hàng cuối
rot90(M) Quay các phần tử trong ma trận M ngược chiêu kim
đồng hồ một góc 90 độ
fliplr(M) Đảo các phân tử trong ma trận M từ trái sang phai
reshape(M, n,m) | Ham ding dé dinh dang lai số hàng và cột của ma
trận Kết quá trả về là ma trận mới với số hàng và cột
Trang 17SVTH: Nguyễn Thị Cam Nhan-02DHTH143 Nguyễn Thị Hồng Nhi-02ĐHTHI50
khác với M, nhưng số phân tử của 2 ma trận thi bằng nhau Với n, m là số hàng và cột tương ứng của ma
trận mới
diag(M) Lay cac phan tử trên đường chéo chính của M
diag(M, k) Ta có thê chọn đường chéo dựa vào k
diag(V) k=0: chọn đường chéo chính
k<0: chon đường chéo thứ k ở dưới đường chéo chính k>0: chọn đường chéo thứ k ở trên đường chéo chính Tạo ma trận vuông với đường chéo chính là vec-tơ V triu(M) Tạo ra ma trận mới cùng kích thước và chứa các phân triu(M, k) tử thuộc và nằm phía trên đường chéo chính (hoặc thứ
Bang 1 2: Céc ham co ban vé ma trận
1.2.2 Đồ họa hai chiều trong MatLab:
1.2.2.1 Một số lệnh kiểm soát: Xem chỉ tiết trong [3], TLTK)
figure(gef)
Hiện thị cửa sô đỗ họa hiện hành
whitebg(ColorSpec) Thay đối màu nên của màn hình đỗ họa
home Chuyên con trỏ đến vị trí “home”- vị trí phía trên
bên trái màn hình
elf Xóa cửa số đồ họa hiện hành
hold on Giữ lại tất cả màn hình đã vẽ Các lệnh sau sẽ thêm
vào màn hình đồ họa chứ không xóa màn hình cũ hold off Bỏ chức năng “hold on”, đây là trạng thái mặc định
của màng hình đồ họa
ishold Tra vé 1 néu trang thái của hold là on, ngược lại trả
về 0
subplot(m,n,p) Chia màn hình đồ họa thành ma trận mxn của
những khung ảnh con với p là khung ảnh hiện hành
Những khung ảnh con được đánh số theo chiều từ
phải sang trái và từ trên xuống
Trang 18SVTH: Nguyễn Thị Cảm Nhân-02ÐHTH143_ Nguyễn Thị Hồng Nhi-02ĐHTH150
1.2.2.2 Các lệnh vẽ cơ bản:
se Lệnh plot: vẽ đồ thị tuyến tính 2D theo cả 2 trục
plot(Y) | Vẽ các cột của Y tong ứng với các chỉ mục của
chúng nếu Y là 1 số thực Nếu Y là số phức, thì plotY) tương đương plot(real(Y), imag(Y))
Trong tất cả các trường hợp khác của lệnh plot
thì phần ảo được bỏ qua
plot(X1,Y1, ,Xn,Yn) Vẽ tất cả các đường được định nghĩa bởi cặp Xn,
Yn Nếu Xn hoặc Yn là ma trận, vec-tơ được vẽ
là các hàng hoặc các cột của ma trận, phụ thuộc vào kích thước hàng hoặc cột của vec-tơ có phù hợp với ma trận hay không
plot(X1,Y1,'LineSpec', ) | Vẽ tất cả các đường được định nghĩa bởi bộ ba
plot( ,"PName',PValue, ) | Thiết lập các thuộc tính với các giá trị thuộc tính
được chỉ định cho tất cả các đối tượng đồ họa lineseries tạo ra bởi lệnh plot
plot(axes_handle, ) Vẽ trong hệ tọa độ với ô điều khiển axes_handle
thay cho hệ tọa độ hiện hành
h =plot( ) Trả về một vec-tơ cột của các ô điều khiển cho
các đôi tượng đô họa lineseries, một ô điều khiển
trên một hàng
hline = plot(‘v6’, ) Trả về các ô điều khiển cho các đỗi tượng đường
(line) thay cho đối tượng lineseries
Trang 19SVTH: Nguyễn Thị Cảm Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTH150
Ngoài ra, còn một số lệnh có cú pháp và ý nghĩa tương tự như lệnh plot:
| loglog: vẽ đồ thị với giá trị logarith theo cả hai trục
semilogx: vẽ đồ thị với giá trị logarith theo trục x và tuyến tính
e Lệnh plotyy: vẽ đồ thị với nhãn y được dán bên cạnh trái và phải
1.2.2.3 Văn bản trong màn hình dé hoa:
legend(‘s1/,’s2’, ) | Thém chuỗi s1, s2 (trong hộp — box) với vị trí của box
có thê được điều khiển bởi chuột
text(x,y/’txt’) Hiện chuỗi ky ty txt 6 vj tri x,y trên màn hình đỗ họa
gtext(‘txt’) Dùng chuột click để đặt chuỗi ky tr txt tai vị trí mong
muốn Mỗi hàm gtext( ) được click 1 lần
Trang 20SVTH: Nguyễn Thị Cẩm Nhân-02ĐHTHI43 Nguyễn Thị Hồng Nhi-02DHTH150
Đặt trục giới hạn và tick marks
Set aspect ratio(Dat tỉ lệ tương quan)
Chú thích hình ảnh với nhãn tọa độ, chú giải và chủ đề
In biểu đồ
ác hàm vẽ 3D cơ bản:
y, Z (VỚI x, y, z là 3 vector có cùng độ dải) và sau đó tạo ra thể
hiện đường 2D nằm trên màn hình
mesh(x, y, z ) Vẽ một khung lưới với màu được xác định bởi z dé mau tương
ứng với độ cao của bề mặt Nếu x, y la vec-to thì length(x) = n
Đ ây là một kỹ thuật dành cho việc tạo khả năng hiện thực khung nhìn
đồ họa Nó thực hiện mô phóng khu vực sáng tối xuất hiện trên những đối
tượng dưới độ sáng tự nhiên Đề tạo hiệu ứng lighting, MatLab định nghĩa
đối tượng gọi là light MatLab áp dụng lighting cho đối tượng bề mặt và
chắp va
Trang 9/116
Trang 21
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTH143_ Nguyễn Thị Hồng Nhi-02ĐHTH150
% Các|lênh lighting:
" Camlight: Tao hoặc di chuyển một light đối với vị trí máy quay
- Headlight: tao mét light tai vj tri may quay
- Right(mac dinh): tao mét light bén phai và trên xuống từ máy quay
- Left: tao một light bên trái va trên xuống từ máy quay
" Lighfangie: Tạo hoặc xác định vị trí một light trong tọa độ hình cầu
= Lighí: Tạo đỗi tượng light Gồm ba thuộc tính quan trọng:
— Color: Thuộc tính Color xác định màu của light được định hướng
t
ổ
4
ừ nguồn light Màu của một đối tượng trong khung nhìn được xác
¡nh bởi màu của đôi tượng và nguôn sáng tyle: Style xác định liệu nguồn sáng là một điểm phát ra từ một vị trí xác định trong tất cả các hướng hay là một nguồn sáng được đặt tai vô cực tỏa ra từ một vị trí xác định với những chùm sáng song Song
osition: Position xác định vị trí nguồn sáng Trong trường hợp nguôn sảng tại vô cực, Position định rõ hướng đến nguôn sáng
« Lighting: Chọn thuật toán lighting để tính hiệu ứng của đối tượng liphi
tất cả các đối tượng surface và patch trong tọa độ hiện tại Gồm
= Material: Dat thudc tính hệ số phản xạ của đối tượng light s* Các thuộc tinh lighting:
" 4mbientLighiColor: Thuộc tính axes xác định màu nền của khung nhìn, không định hướng và ánh hưởng đồng đều đến tất cả đối tượng
Hiệu
có th
ứng độ sáng xung quanh chỉ xuất hiện khi có một đối tượng light
é thấy được trong hệ trục
" AmbientStrength: Thuéc tinh patch va surface xdc định cường độ
thành phần ánh sáng xung quanh được phản xạ từ đối tượng
Trang 22SVTH: Nguyễn Thị Cẩm Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTHI50
" Dự? seSirength: Thuộc tính patch và surface xác định cường độ thành
phân ánh sáng khuếch tán được phản xạ từ đối tượng
" SpeCularSirength: Thuộc tính patch và surface xác định cường độ
thành phần ánh sáng phản chiếu được phản xạ từ đối tượng
" S2eCularExponerr: Thuộc tính patch và surface xác định kích thước
chỗ phản chiếu sáng nhất
" SpecularColorReflectance: Thuéc tinh patch va surface xac dinh mirc
độ ánh sáng phản xạ được tô màu bởi đôi tượng color hoặc màu nguôn
« EdgeLighting: Thuéc tinh patch va surface xác định phương pháp tính
hiệu ứng ánh sáng trên các đỉnh của đối tượng Nếu chọn thuộc tính
nay thi không có thuộc tính lighting flat, phong, gouraud
" BackFaccLighting: Thuộc tính patch và surface xác định cách các bề
EdgeColor: Thuộc tính patch và surface xác định màu đỉnh đối tượng
VertgxNormais: Thuộc tính patch và surface chứa những vectơ pháp
tuyến cho mỗi đỉnh MatLab dùng các vec-tơ đỉnh pháp tuyến để thể
hiện tính toán sự phân bố ánh sáng MatLab tạo ra dữ liệu này tự động
" NormaiMode: Thuộc tính patch và surface xác định liệu MalLab có
tính
hiện
toán lại các vec-tơ nếu ta thay đổi đữ liệu( auto ) hoặc dùng giá trị tại của thuộc tính VextexNormals(manual) Nếu ta xác định giá trị VextexNormals, MatLab đặt thuộc tính này là manual
1.2.3.4 Độ trong suốt (Transparency):
% Đối tượng Transparency:
Tạo đối tượng đồ họa nửa trong suốt là một kỹ thuật hữu ích trong
không gian 3D làm dễ dàng thấy được thông tin của đối tượng trong khi
Trang 11/116
Trang 23
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTHI43 Nguyễn Thị Hồng Nhi-02DHTH150
Thuộc tính FaceAlpha: flat, interp, texture, opaque(=1), clear(=0)
Thuộc tính AlphaData: x, y, z, color, rand
Thudc tinh AlphaDataMapping: scaled, direct, none
" alphamap: Xac dinh hinh thai alphamap
farameter: default, rampup, rampdown, vup, vdown, increase,
decrease, spin
" aiim: Đặt, truy vẫn giới hạn tọa độ alpha
- alimMode: auto, manual
1.2.4 Lap trinh trong Matlab:
số tuyến tính đều rất tốt Trong trường hợp này, kích thước lần lượt là 1-]
hoặc 1-n với n là chiều dài của chuỗi số) Matlab cũng hỗ trợ các cấu trúc
dữ liệu nhiều hơn hai chiều
1.2.4.2 Kiểu dữ liệu:
Có nh
dựng các
iều kiểu dữ liệu khác nhau được dùng trong Matlab Có thể xây
ma trận và mảng của đữ liệu nguyên và thực, ký tự và chuỗi, logic, T4 cũng có thể tạo ra các kiểu dữ liệu bằng cách dùng các lớp
(class) của Matlab Có mười lăm kiểu dữ liệu cơ bản trong Matlab Mỗi
i32, 0032 Classes Classes
Trang 24SVTH: Nguyén Thi Cam Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTH150
%* Kiểu logic (logical):
Kiểu đữ liệu logic thể hiện trạng thái true hoặc false bằng cách dùng
lần lượt hai số 1 và 0 Các hàm hay toán tử trả về true hoặc false để cho
biết điều kiện được tìm thấy là đúng hay không Dữ liệu logic không có
hướng, Matlab hỗ trợ các mảng giá trị logic
Một cách để tạo mảng logic là nhập giá trị true hoặc false cho mỗi
phần tử của mảng True trả về mức logic 1 và false trả về mức logic 0
Vi du : >>X = [true false false true false]
Két qua: X=[10010]
* Kiểu ký tự và chuỗi (char and string):
Trong Matlab từ “string` được nhắc đến như một mảng các ký tự
Unicode Matlab thé hién méi ky tu bén trong như giá trị số tương Ứng
của nó Tuy nhiên, nếu không muốn truy cập những giá trị này, thì có thể
dễ đàng làm việc với các ký tự như hiển thị của chúng trên màn hình
Chúng ta tạo ra dữ liệu ký tự bằng cách ghi các ký tự trong đấu nháy
đơn
Ví dụ: Tạo biến “Ten” với gia tri la “Nguyen Van A”
>> Ten = ‘Nguyen Van A’
Hay tạo mảng ký tự hai chiều như sau:
>>|Ten_Lop =[“Nguyen Van A°; 'Lop 02CNPM']
Có thể chuyển đổi qua lại giữa hai kiểu dữ liệu numeric và string
* Kiéu sé (numeric):
Kiểu dữ liệu số trong Matlab bao gồm các số nguyên (integer) có dấu
và không dấu, single và double
Cách tạo dữ liệu kiểu số nguyên: >>tên biến = kiểu(giá trị)
Ví dụ: để tạo biến x có giá trị là 123 kiểu integer 16 bit ta viết:
>>x F Iin6(123);
Riêng với kiểu double không cần viết x = double(123.456) Ta viết
x = 123.456 Vì mặc định, Matlab lưu trữ các giá trị số là kiểu double
“* Mang cac 6 (Cell Arrays):
Mang ô cung cấp một cơ chế lưu trữ cho các loại dữ liệu khác nhau
Có thể lu các mảng của kiểu và/hoặc kích thước khác nhau bên trong các
ô của mang ô Để truy cập dữ liệu bên trong mảng các ô, ta dùng chỉ mục
ma trận tương tự như các mảng và ma trận trong Matlab Tuy nhiên, phải
dùng cặp ngoặc {} thay vì Q như thông thường
Trang 13/116
Trang 25
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTH150
Tạo mảng các ơ bằng cách sau:
+ Dùng các câu lệnh cĩ sẵn
+ Chỉ định mảng ding ham “cell”, sau đĩ đưa dữ liệu vào
$% Kiểu cấu trúc (structure):
Cấu trúc là mang Matlab voi tén “data containers” dugc goi là trường
(fcild) Các trường của một cấu trúc cĩ thể chứa bất kỳ loại đữ liệu nào
Ta cĩ thể xây dựng cấu trúc bằng hai cách :
+ Dùng các câu lệnh cĩ sẵn
+ Dung ham “struct”
1.2.4.3 Thành phần lập trình cơ bản:
“+ Biéh trong Matlab:
" Biến (variable) trong Matlab là một ký hiệu được sử dụng để chứa
một giá trị
" Matlab cung cấp ba kiểu biến cơ bản: biến cục bộ (local variables),
biến tồn cục (global variables) va bién thường trực (persistent
variables)
- Bién cuc bộ: Mỗi hàm trong Matlab đều cĩ biến cục bộ riêng của
lĩ Các biến được định nghĩa trong một hàm khơng lưu lại trong bộ
hớ từ một hàm gọi đến hàm kế tiếp, nếu chúng khơng được định ghĩa là global hoặc persistent
)iến tồn cục: Khi biến trong một hàm cĩ giá trị với tất cả các hàm hác thì ta phải khai báo biến đĩ là global Để khai báo biến global
hỉ cần thêm vào trước tên biến từ khĩa “globaÏ”
ach khai bao: global <ténbién1> <ténbién2> <ténbién3>
(Các biến phải cách nhau bởi khoảng trắng, khơng dùng dấu phẩy)
Một số lệnh liên quan đến biến tồn cục:
clear global: xĩa bỏ các biến tồn cục
isglobal(tên_ biến): hàm trả về 1 nếu tên biến là biến tồn cục,
ngược lại trả về 0
— _ Biến thường trực: đặc điểm của biến thường trực:
Ta chỉ cĩ thể khai báo và dùng chúng bên trong các hàm M-file
Chỉ trong hàm mà biến được định nghĩa mới cĩ quyền truy
Trang 26" Đặt tên biến: Tên biến trong Matlab phải bắt đầu bằng một chữ cái, tiếp theo là các chữ cái, số, hay dấu gạch dưới Matlab phân biệt chữ hoa và thường Mặc dù tên biến có thé dài tùy thích, nhưng Matlab chi ding N (được trả về từ hàm namelengthmax) ký tự đầu tiên của tên
Nhân
Chia phải
Trang 27SVTH: Nguyễn Thị Cảm Nhan-02DHTH143 Nguyễn Thị Hồng Nhi-02ĐHTHI150
- Toán tử logic:
! Nếu hai phân tử tương ứng ở hai mảng đều có giá trị là
true thì trả về 1 Ngược lại trả về 0
trị khác nhau Ngược lại trả về 0
Bảng 1 9: Toán tứ logic
% Câu lệnh điều kiện:
A Lénh if: danh gid biéu thức logic và thực thi nhóm lệnh dựa trên
giá trị của biểu thức Các lệnh if có thể lồng nhau
Trang 28SVTH: Nguyén Thị Cảm Nhân_-02ĐHTH143_ Nguyễn Thị Hồng Nhỉ-02ĐHTH150
Nếu biểu thức 1 đúng thì thực hiện Nhóm lệnh 1 Biểu thức 2 đúng thì thực hiện nhóm lệnh 2, ,biểu thức n đúng thì thực hiện
nhóm lệnh n Nếu không có biểu thức nào đúng thì không có nhóm
lệnh nào được thi hành
A Lệnh swiích: thực thi các nhóm lệnh dựa trên giá trị của một biến
Nếu biểu thức có <giá trị I> thì “Nhóm lệnh 1ˆ được thực thi
Nếu biểu thức có <giá trị 2> thì “Nhóm lệnh 2° được thực thi
Nếu biểu thức có giá trị không nằm trong các case thì 'Nhóm lệnh
— ân được xác định trước
+! Cú pháp 1: for chỉ số = <giá trị đầu>:<gia số>:<giá trị đích>
Nhóm lệnh end
Chỉ số = giá trị đầu, nếu chỉ số âm thì không thực hiện vòng lặp
Nếu chỉ số < giá trị đích thì thực hiện “Nhóm lệnh'
Tăng chỉ số lên một giá trị = gia số (mặc định là 1) So sánh với
giá trị đích nếu chưa bằng thì thực hiện “Nhóm lệnh Ngược lại,
kết thúc vòng lặp Quá trình này lặp lại cho đến khi chỉ số = giá trị địch
+ Cú pháp 2: for chỉ số = <biéu thức>
Nhóm lệnh end
Trang 17/116
Trang 29
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTHI43 Nguyễn Thị Hồng Nhi-02DHTH150
<Biéu thức> là một ma trận (một vec-tơ hay một đại lượng vô hướng), “Nhóm lệnh” được thực thi với số lần bằng số cột của ma trận biểu thức Trong mỗi bước lặp chỉ số = giá trị của một phần tử
của ma trận
Nếu biểu thức là ma trận rỗng thì vòng lặp không được thực thi
^_ Vòng lặp while: thực hiện một lệnh hoặc một nhóm lệnh lặp đi lặp
lại nhiều lần khi biểu thức là đúng ( bằng 1)
A Lénh break: két thic việc thực thi vòng lặp for hoặc while Khi
i lệnh break thì chương trình sẽ thoát khỏi vòng lặp và tiếp tục thực thi các lệnh ở bên ngoài vòng lặp Trong vòng lặp lồng nhau, Ireakk chỉ thoát khỏi vòng lặp ở trong cùng
4 Lệnh confinue: chuyên đến lần lặp kế tiếp của còng lặp for hoặc hile Tại vị trí lệnh continue xuất hiện, nó bó qua tất cả các lệnh phia sau nó trong thân vòng lặp
1.2.4.4 ee trinh bang M-file
Khi viét mét chương trình trong Matlab và lưu lại thành file, thì file đó được gọi là M-file (với phần mở rộng là m) Có hai loại M-file 14 script va function
* Script file
Script 14 loai don giản nhất của M-file bởi vì chúng không có đối số
nhập và xuất Nó được dùng cho các chuỗi tự động của các lệnh Matlab,
cũng nhự việc tính toán mà ta phải thực hiện lặp đi lặp lại từ dòng lệnh (command line)
Co thé dùng các chương trình soạn thảo nói chung để tạo script file
Nó được lưu dưới dang cdc ky ty ASCII
Trang 18/116
Trang 30SVTH: Nguyễn Thị Cảm Nhân-02ĐHTHI143 Nguyễn Thi Hong Nhi-02DHTH150
Các điểm cần lưu ý: (Xem chỉ tiết trong [10], TUTK)
Trong Matlab, các ký tự được viết sau ký hiệu “%” được xem là chú thích (comment)
Nếu không muốn hiển thị các kết quả ra màn hình sau khi câu
lệnh được thực thi, ta thêm dấu “:” vào cuối mỗi dòng lệnh
Không cần phải khai báo các biến sử dụng trong chương trình
Matlab ty động nhận biết các biến và giá trị của chung khi ta đưa vào chương trình
Dé chạy script file ta chỉ cần gõ tên file (không cần phần mở rộng) và nhân phím +(Enter) Khi thực thi nội dung file không
được hiễn thị lên màn hình
( ) Hiện thị giá trị của biên hoặc hiển thị một chuỗi (năm
trong cặp nháy đơn),
input(‘text’) Hién thị chuỗi ký tự và dấu nhắc chờ nhận một giá trị từ
ban phim
keyboard Trao điêu khiển tạm thời cho ban phím
echo Điều khiển cửa số lệnh lặp lại các lệnh của script-file
trong khi thực thi Được đùng để debug hoặc hiển thị các
lệnh trong M-file khi chúng được thực thi
type(filename’) | Hiến thị nội dung của file có tên nằm trong cặp nháy
đơn Nội dung được hiển thị trong cửa số lệnh của
what Cho biết cdc file M-file va MAT-file co trong ving lam
việc hiện hành hay không
mfilename Trả về tên của M-file đang chạy
pause Dừng lại đến khi người dùng nhẫn phím bắt kỳ
ause(n) Dừng lại n giây
waitforbuttonpress | Dừng lại cho đến khi người dùng nhắn chuột hoặc phím
Bang 1 10: Cac lénh cơ bản dùng trong script file |
“* Ham (function) va tao ham trong Matlab
Function là một chương trình thủ tục (routine), được hiện thực trong
M-file, nhận đối số nhập vào (input) va trả về các đối số xuất (output) Nó
thao tác lrên các biến ở bên trong không gian làm việc (workspace) riêng
của mình Không gian làm việc này riêng biệt với không gian mà ta truy
cập tại dầu nhắc lệnh của Matlab
Các hàm này cũng được lưu trong M-file và được dùng như các hàm
ma Matlab cung cấp sẵn M-file có thể chứa nhiều hơn một hàm
Trang 19/116
Trang 31SVTH: Nguy ễn Thị CÂm Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTH150
on), những hàm được thêm vào gọi là hàm con (subfunction) Các
ay chỉ nhìn thấy hàm chính hoặc các hàm con khác trong cùng một
° quy tắc viết ham trong Matlab: (Xem chỉ tiết trong [5], TLTK) Hàm phải được bắt đầu bằng từ khóa “function” Tiép theo là các tham số đầu ra (được bao trong cặp ngoặc vuông và cách nhau bởi dẫu phẩy), dấu bằng, tên hàm, tham số đầu vào (nằm trong cặp ngoặc đơn và cách nhau bằng đấu phẩy)
Nên viết chú thích cho hàm ở các dòng đầu tiên Khi gõ lệnh help
với tên hàm, thì các chú thích này sẽ được hiển thị
Các giá trị trả về của hàm được lưu trong tham số (ma trận) đầu
ra Vì vậy, phải chắc chắn rằng trong hàm có chứa câu lệnh xác định giá trị của tham số đầu ra
Các biến (ma trận) cùng tên có thể được sử dụng bởi hàm và chương trình cần đến nó Vì các hàm và chương trình được thực
hiện tách biệt nhau Các giá trị tính toán trong hàm, tham số đầu
ra không chịu tác động của chương trình
Các biến đặc biệt nargin và nargout dùng để xác định số tham số đầu vào và ra được sử dụng trong hàm Các tham số nay chỉ là
MatLab, GUI là figure Trước khi thêm các thành phần vào figure,
Ot figure xac dinh f= figure, fla handle cia figure
/† Trước khi tạo các thành phan mà không có figure thì MatLab có ure tự động nhưng ta không biết handle của figure
là các thuộc tính của figure:
uBar: hiển thị bảng chọn của Menu bar
Cá trị: none,figure(mặc định)
e: Tựa đề hiển thị trong cửa số figure Néu NumberTitle la on,
¡ này được thém vao sé figure
Gia tri: string
Trang 20/116
Trang 32
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTH143_ Nguyễn Thị Hồng Nhi-02ĐHTH150
k NuiberTie: on( mac dinh ), off
" Position: kích thước của figure GUI va vị trí của nó cân đối với góc
dưới bên trái màn hình
—_ Jleft, bottom, width, height ]
" Resizc: Xác định khả năng người dùng có thể thay đổi kích thước
ñgure bằng chuột
~ Gia tri: on( mặc định ), of
" Toolbar: Hiển thị hoặc ân thanh công cụ mặc định
none: không hién thị thanh công cụ
- auto: hiển thị thanh công cụ nhưng nó bị bỏ qua nếu thanh công cụ
ác thêm vào
- figure( mac dinh ): hién thị thanh công cụ
vai đơn vị đo lường
- Giá tri: centimeters, characters, inches, normalized, points,
ixels( mac dinh )
" Visible: Hién thi figure trén man hinh
— Giá trị: on( mặc định ), off
« Button Group: giéng nhu panel nhưng dùng dé quan ly cdc radio
button va toggle button
" Panel: sắp xếp các thành phần vào các nhóm Các thành phần trên
panel đi chuyển khi di chuyén panel va vị tri cla Lchúng tương ứng với
Trang 33" Radio Button: giéng check box nhung radio button chi cho phép chon
duy nhat mét yéu cau trong nhóm yêu cầu radio button trước sẽ
không được chọn khi có một radio button khác được chọn
" Toggle Button: tạo ra tác động và nhận biết chúng bật hay tắt Khi
click vào, nó bị nhắn xuống Chỉ khi nào ta click một lần nữa nó mới
về trạng thái ban đầu Nó giống như radiobutton
- function: uicontrol
1.2.5.3 Thém điều khién giao diện người dùng (User Interface Controls)
uich = uicontrol( parent, ‘PropertyName’, ‘Property Value’, )
Nếu ông xác định parent thì figure hiện tại được xem parent
" Các thuộc tính được dùng phổ biến
— Max: giá trị lớn nhất, phụ thuộc vào thuộc tính Style Mặc định là 1
— Min: giá trị lớn nhất, phụ thuộc vào thuộc tính Style Mặc định là 0
- ] osition: kích thước và vị trí của thành phân tương ứng với parent
- $tring: Tao tua dé
tyle: pushbutton( mặc định ), togglebutton, radiobutton, checkbox, edit, text, slider, listbox, popupmenu
- Units: đơn vị đo lường Gồm: pixels( mac định ), normalized,
i ches, centimeters, points, characters
alue: phụ thuộc vào thuộc tính Style
Trang 34- yalue = scalar :s6 thir ty cia item duge chon
- Max - Min > 1, value = [ ] :chọn nhiều item
- Max — Min: xc dinh khoảng giá trị cua slider
- value: min <= value <= max
_ S iderStep = [min_step, max_step]
- mỉn_step: giá trị nhỏ nhất khi thay đổi
- max step: giá trị lớn nhất khi thay đổi
® Static Text:
- Style = “text”
" Toogle Button:
- Style = ‘tooglebutton’
- value = 1: chon, value = 0: khéng chon
1.2.5.4 Thêm Panel va Button Groups
“ Các thuộc tính được dùng phổ biến
- Parent: Xac dinh figure, panel, group button 1a thanh phan cha
~ Position: Kich thude va vi tri của thành phần trong parent cua nó
~ Title: Ding dé gan nhan
TitlePosition: vj tri cua title
centerbottom, rightbottom
¡* Các gid tri: lefttop( mac dinh ), centertop, righttop, leftbottom,
Trang 23 /116
Trang 35SVTH: Nguyén Thj Cém Nhân_02ÐHTH143_ Nguyễn Thị Hồng Nhi-02ĐHTH150
- |Units: Đơn vị đo lường
"Các giá trị: pixels, normalized( mặc định ), inches
- Handle Visibility: Xác định handle của nó có nằm trong danh sách
ủa parent của nó
- bước Xac dinh figure, panel, group button la thanh phan cha
- Potion: Kích thước và vị trí của thành phần trong parent của nó
nits: Đơn vị đo lường
— bgh = uibuttongroup( ‘PropertyName’, ‘Property Value’, )
hém Axes
| + Cac giá tri: pixels, normalized( mặc định ), inches,
| centimeters, points, characters
1.2.5.6 Thém ActiveX Controls
h = attxcontrol(progid', position, fig_handle) —> tạo trình điều khiến tại
Vi tri xắc định trong cửa số figure hiện tại Cửa số này được nhận biết bởi
fig_handle( mặc định là gef )
1.2.5.7 Các thành phần Aligning
align( HandleList, ‘HorizontalAlignment’, ‘VerticalAlignment’ )
" HandleLisr: tất cả handle phải có cùng parent
" HorizontalAlignment: None, Left, Center, Right, Distribute, Fixed
" VerticalAlignment: None, Top, Middle, Bottom, Distribute, Fixed
1.2.5.8 Thiét lip Tab Oder
" Tab Oder mac định: là thứ tự khi tạo các thành phần
Ta không thé tab dén axes va static text
" Thay đổi thứ tự TabOder
— uistack(h): thay đối thứ tự của đối tượng
— uisfack(h, stackopt )
* stackopt = up: di chuyến h lên một vị trí
* stackopt = down: di chuyển h xuống một vị trí
° stackopt = top: di chuyển h đến đỉnh của thứ tự hiện tại
Trang 24/116
Trang 36
SVTH: Nguyễn Thị Cảm Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTH150
1.2.5.9
- stackopt = bottom: đi chuyển h xuống vị trí dưới cùng của thứ
tự hiện tại
uistack( h, ‘up’, n ): đi chuyên h lên n bậc
uistack(h, ‘down’, n): di chuyển h xuống n bậc
- on; Chọn
* off{( mặc định ): Không chọn
Enable: cho phép sử dụng
* on( mặc định ): cho phép sử dụng
* off: em bị mờ, không dùng được
HandleVisibility: Xác định handle của nó có nằm trong danh sách của parent của nó
Trang 37| SVTH: Nguyễn Thị Cảm Nhân-02ÐĐHTH143 Nguyễn Thị Hồng Nhi_-02ÐHTH150
1.2.5.10 Tao Context Menu
= Thudc tinh phé bién
andleVisibility: Xác định handle của nó có nằm trong danh sách của parent của nó
* on( mặc định ) ' off: ngăn chặn những hoạt động không mong đợi
arent: Parent ca Context Menu
Position| 0 0]: Khoảng cách từ góc dưới bén trai ca parent figure
¡ góc trên bên trái của context menu Thuộc tính này chỉ được lùng khi Visible = on
isible:
- on: Hién thi
* off( mac dinh ): Khéng hién thị
Context Menu
andle = uicontextmenu(‘PropertyName’, PropertyValue, )
m Menu item vao Context Menu
Data : Dinh dang mau RGB
- Giá trị 3D trong khoảng 0.0 đến 1.0 andleVisibility : Xác định handle của nó nằm trong danh sách andle cia parent
* on( mac dinh ):
* off: Ngan chan nhitng hanh déng mong muốn
eparator : Vé duong chia
* Gia tri: on, off
Trang 38
SVTH: Nguyễn Thị Cảm Nhân_02ĐHTHI143 Nguyễn Thi Hong Nhi-02DHTHI50
TooltipString : dùng để giải thích chức năng của công cụ
" Hiện thi Toolbar chuẩn:
1.2.5.12
set( fh, ‘Toolbar’, ‘figure’ ): hién thị thanh công cụ chuẩn
set( fh, “Ioolbar°, “none' ): không hiển thị thanh công cụ chuẩn set( fh, ‘Toolbar’, “auto' ): Đây là thuộc tính mặc định Hiển thị thanh công cụ chuẩn nhưng khi tạo mới thanh công cụ thì thanh công cụ chuẩn sẽ bị xóa
Hàm Callback Các hàm dùng để lập trình các hành vi của các thành phần trong GUI
" Khai báo biến cho các đối sế nhập và xuất
tmlnputArgs =varagin: Khai báo đối số nhập
mOutputArgs = {}: Khai báo đối số được trả về
" Hàm Callback
function objectTag_Callback(hObject, eventdata, handles) + hObject: đối tượng goi ham callback
+ eventdata: tréng- dé sit dung trong tuong lai
handles: Một cấu trúc chứa các handle của tất cả các thành phần trong GUI Nó cũng có thê được dùng để chuyên dữ liệu đến các
ham callback khác hoặc đến đòng lệnh (command line)
Trang 27/116
Trang 39
SVTH: Nguyễn Thị Cẩm Nhân-02ĐHTH143 Nguyễn Thị Hồng Nhi-02ĐHTHI150
Chương 2
GIỚI THIỆU MỘT SÓ BÀI TOÁN TRONG TÀI CHÍNH
2.1 Mé dau:
Trong đời sống hằng ngày, chúng ta vẫn bắt gặp các hoạt động mua bán,
tài chính diễn ra thường xuyên Qua đó cho thấy việc tính toán tài chính rất
gần gũi (tùy theo mức độ công việc) Đối với các sinh viên kinh tế, bộ môn
“Toán Tài Chinh’ rat quan trong và không thể thiếu Vì nó gắn liễn với các
môn học: nghiệp vụ ngân hàng, thị trường đầu tư, thị trường thương mại,
thị trường tài chính, quản lý tài chính.v.v Nền tảng của các công thức
thuộc lĩnh vực tài chính là gì? Nó dựa trên toán học và hệ thống lãi suất
Và trong thực tế, nó cũng là công cụ góp phần không nhỏ cho thành công
của các nhà kinh doanh Vậy tại sao chúng ta không dành đôi chút thời
gian đề tìm hiểu các vân đề cơ bản của bộ môn này?
2.2 Các khái niệm tài chính cơ bản: (Xem chỉ tiết trong [6], TLTK)
v Tiền lãi: Là giá trị chênh lệch giữa vốn đầu tư ban đầu và giá trị thu
được | sau n chu kỳ đầu tư (cho vay)
v Lãi đơn: Là tiền lãi phải trả (cho trường hợp vay nợ) hoặc kiếm được
(trong trường hợp tiền được đem đi đầu tư), chỉ tính trên số vốn gốc
ban đầu
Lãi ván Là tiền lãi không chí tính trên vốn gốc mà còn tính trên tiền lãi
sinh ra của chu kỳ sau nếu không rút vốn ra trong suốt n chu kỳ
v Lãi suất: Tượng trưng cho tiền lãi của một số vốn được ấn định trong
một đoạn thời gian
vé Hiện giá: Giá trị hiện tại của số lượng tiền tệ dựa trên một mốc thời gian
cụ thể
v Giá trị tương lai: Là giá trị của một số lượng tiền tệ tăng trưởng nếu nó
được đem đầu tư với một lãi suất nhất định trong một khoảng thời gian
nào đó
Chiết khấu: Là hình thức mua bán các thương phiếu chưa đến kỳ đáo
hạn và người ta phải tính lại giá trị của thương phiếu
Các khoản tiền thanh toán theo chu kỳ: Là những khoản tiền sẽ được
nhận hoặc chỉ trả cách đều nhau theo thời gian
Trang 40SVTH: Nguyễn Thị Câm Nhân-02ĐHTHI143 Nguyễn Thị Hồng Nhi-02ĐHTH150
2.3.1 Các đối số
In : Tiền lãi của vốn đầu tư sau n chu kỳ
i | : Lai suất của 1 chu kỳ (Lãi suất 1 ngày, 1 tháng, 1 quý, 1 năm)
: Số chu kỳ đầu tư (số ngày, số tháng, số quý, số năm) : Vốn đầu tư ban đầu
: Giá trị của vốn đầu tư sau n chu kỳ : Mệnh giá thương phiếu
Một hàng hóa bán trả ngay là 100 triệu đồng được đem bán chịu
Sau 30 này, số tiền thu được là 102 triệu đồng Tính lãi suất /ngày
Giải Lãi guất bán chịu: