1. Trang chủ
  2. » Luận Văn - Báo Cáo

Nghiên cứu về Matlab và ứng dụng vào bài toán tài chính

126 505 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 126
Dung lượng 4,54 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

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 1

HIEN 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 3

NHAN XET CUA GIAO VIEN HUONG DAN

XK) CR

Trang 4

NHAN XET CUA GIAO VIEN PHAN BIEN

&) CR

Trang 5

Trong 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 8

iv

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 11

Hì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 14

b 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 15

SVTH: 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 17

SVTH: 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 18

SVTH: 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 19

SVTH: 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 20

SVTH: 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 22

SVTH: 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 24

SVTH: 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 27

SVTH: 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 28

SVTH: 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 30

SVTH: 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 31

SVTH: 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 35

SVTH: 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 40

SVTH: 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:

Ngày đăng: 02/07/2014, 02:25

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w