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

luận văn công nghệ thông tin nghiên cứu về matlab và ứng dụng vào bài toán tài chính

116 697 1

Đ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

Tiêu đề Matlab và ứng dụng vào bài toán tài chính
Tác giả Nguyễn Thị Cẩm Nhân, Nguyễn Thị Hồng Nhi
Chuyên ngành Công nghệ thông tin
Thể loại Luận văn
Định dạng
Số trang 116
Dung lượng 1,63 MB

Nội dung

Nội dung cụ thể: ƒ 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 - Đồ họa hai chiều - Không gian 3D - Lập trình trong MatLab - Tạo g

Trang 1

Để thấy được khả năng ứng dụng của MatLab vào lĩnh vực tài chính, luận văn sẽ trình bày tổng quan về Matlab (đặc biệt là hộp công cụ tài chính), giới thiệu sơ lược các bài toán thông dụng trong tài chính và thiết kế hệ thống giải một số bài toá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 với các ngôn ngữ khác, hệ thống được thiết kế giao diện, xử lý trên nền tảng NET (cụ thể là ngôn ngữ C#) và sử dụng MatLab để tính toán

Khả năng tích hợp MatLab với NET chỉ được hỗ trợ từ MatLab version 7.2 trở lên (Hộp công cụ Matlab Builder for NET)

Nội dung cụ thể:

ƒ 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

- Đồ họa hai chiều

- Không gian 3D

- Lập trình trong MatLab

- Tạo giao diện người sử dụng đồ họa (GUI)

ƒ Giới 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

- Bài toán cơ bản trong hệ thống lãi kép

- Bài toán về các khoản tiền thanh toán theo chu kỳ

- Bài toán tính chỉ số

- Bài toán về dự đoán

Trang 2

ƒ 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

- Các hàm trong hệ thống lãi đơn

- Các hàm về các khoản thanh toán theo chu kỳ

- Các hàm về tác vụ phổ biến của đối tượng FTS1

- 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 1 : Giới thiệu tổng quan về Matlab

ƒ Chương 2 : Giới thiệu một số bài toán trong tài chính

ƒ Chương 3 : Các hàm về tài chính trong Matlab

ƒ Chương 4: Thiết kế hệ thống giải các bài toán tài chính thông qua Matlab

1 Financial Time Series: Chuỗi thời gian tài chính

Trang 3

Chương 1 GIỚI THIỆU TỔNG QUAN VỀ MATLAB

Matlab (Matrix Laboratory) là phần mềm của tập đoàn The Math Works, Inc of Natick, Massachusetts – Mỹ, được phân chia thành các lĩnh vực ứng dụng dựa vào các hộp công cụ (toolbox), đặc biệt là dùng trong tính toán kỹ thuật Matlab kết hợp việc tính toán, hiển thị và lập trình trong một môi trường dễ sử dụng Ở đó, các vấn đề và giải pháp được trình bày bằng những

ký hiệu toán học quen thuộc

Nhà phân tích số học Cleve Moler đã xây dựng phiên bản đầu tiên của Matlab vào những năm 1970 bằng FORTRAN Sau đó, Matlab được viết bằng ngôn ngữ C trên cơ sở các thư viện đã có và phát triển thêm nhiều lĩnh vực ứng dụ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 quyết các vấn đề số học Điều này làm giảm bớt thời gian suy nghĩ và khuyến khích các thử nghiệm Matlab cung cấp các lệnh mạnh và hiệu quả, giúp hiện thực những tác vụ phức tạp chỉ bằng một hoặc hai dòng lệnh Ngoài những hàm được Matlab cung cấp sẵn, ta cũng có thể tạo ra hàm mới để phục vụ cho các ứng dụng riêng của mình

Các ứng dụng tiêu biểu bao gồm:

ƒ Hỗ trợ toán học và tính toán

ƒ Phát triển thuật toán

ƒ Yêu cầu cung cấp dữ liệu

ƒ Mô hình, mô phỏng và lấy mẫu

ƒ Phân tích, khảo sát và hiển thị dữ liệu

ƒ Khoa học và kỹ thuật đồ họa

ƒ Phát triển ứng dụng với giao diện người dùng đồ họa (GUI)

2 Tài Liệu Tham Khảo

Trang 4

1.2 Các chức năng của Matlab:

9 1 3

5 4 2

M = zeros(n,m) Ma trận kích thước nxm với toàn các phần tử là 0

M = ones(n,m) Ma trận kích thước nxm với toàn các phần 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 trận ma phương bậc 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 1: 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à \

3 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 chi tiết trong [3], TLTK)

Trang 5

Ví dụ : >>A = [5 7 0 ; 2 1 8] ;

>>B = [6 1 4 ; 5 3 1] ; >>C = A+B

Kết quả : C =

947

4811

Chú ý : Với phép nhân vô hướng hai ma trận cùng kích thước A và

B phải viết là A.*B thay vì A*B (số hàng ma trận A phải bằng số cột ma

trận B)

™ Lấy các giá trị của một ma trận: (Xem chi tiết trong [4], TLTK)

M(i, j) : là phần tử dòng i cột j của ma trận M

M(:, j) : là cột thứ j của ma trận M

M(i:k, :) : biểu diễn các dòng từ i đến k

M(i:k, j:l) : chọn ma trận con gồm các phần tử thuộc hàng từ i đến k và

từ cột j đến l

Ví dụ: cho ma trận A =

6 12 8 9

3 2 5 1

1 7 4 2

>>B = A(2:3, 2:3)

B =

128

25

1.2.1.3 Các hàm cơ bản : (Xem chi tiết trong [5], TLTK)

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 phần 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 phải flipud(M) Đảo các phần tử trong ma trận M từ trên xuống dưới reshape(M, n, m) Hàm dùng để định dạng lại 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 6

khác với M, nhưng số phần tử của 2 ma trận thì 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)

diag(M, k)

diag(V)

Lấy các phần tử trên đường chéo chính của M

Ta có thể chọn đường chéo dựa vào k

k = 0: chọn đường chéo chính

k<0: chọn đườ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)

triu(M, k) Tạo ra ma trận mới cùng kích thước và chứa các phần tử thuộc và nằm phía trên đường chéo chính (hoặc thứ

1.2.2 Đồ họa hai chiều trong MatLab:

1.2.2.1 Một số lệnh kiểm soát: (Xem chi 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 Trả về 1 nếu trạng 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

grid on/off Bật/tắt chế độ thêm lưới vào khung nhìn trong màn

hình đồ họa

axis([xmin,xmax,ymin,ymax]) Đặt giới hạn cho trục x và y của hệ tọa độ hiện

hành

Bảng 1 3: Các lệnh kiểm soát

Trang 7

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

Xn, Yn và LineSpec LineSpec là đặc tả xác định kiểu đường, ký hiệu và màu của đường được vẽ (Xem danh sách các LineSpec ở phụ lục)

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 8

Kết quả:

Hình 1 1: Ví dụ cách dùng lệnh plot

Ngoài ra, còn một số lệnh có cú pháp và ý nghĩa tương tự như lệnh plot:

• Lệnh loglog: vẽ đồ thị với giá trị logarith theo cả hai trục

• Lệnh semilogx: vẽ đồ thị với giá trị logarith theo trục x và tuyến tính theo trục y

• Lệnh semilogy: vẽ đồ thị với giá trị logarith theo trục y và tuyến tính theo trục x

• 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 đồ họa :

Matlab hỗ trợ các lệnh để tạo văn bản trên màn hình đồ họa Ta có thể gán thêm các nhãn vào các trục tọa độ, hay đặt một chuỗi ký tự vào vị trí bất kỳ trên đồ thị,…

title(‘text’) Đặt tiêu đề với nội dung “text”

xlable(‘text’) Gán nhãn “text” ở giữa trục x

ylable(‘text’) Gán nhãn “text” ở giữa trục y

zlable(‘text’) Gán nhãn “text” ở giữa trục z

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 ký tự txt ở vị trí x,y trên màn hình đồ họa gtext(‘txt’) Dùng chuột click để đặt chuỗi ký tự txt tại vị trí mong

muốn Mỗi hàm gtext(…) được click 1 lần

Bảng 1 5: Các hàm về văn bản trong màn hình đồ họa

Trang 9

1.2.3 Không gian 3D (3D – Visualization):

• Đặt thuộc tính colormap và shading

• Thêm thuộc tính lighting

• Đặt điểm nhìn

• Đặt trục giới hạn và tick marks

• Set aspect ratio(Đặt 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 đồ

1.2.3.2 Các hàm vẽ 3D cơ bản:

plot3 (x, y, z) Tạo ra một đường 3D với các điểm tọa độ là thành phần của x,

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 để màu tương

ứng với độ cao của bề mặt Nếu x, y là vec-tơ thì length(x) = n

và length(y)=m, [m,n] = size(z)

meshc(x, y, z ) Vẽ một hình đường nét ở dưới hình lưới

surf(x ,y, z ) Tạo ra một bề mặt được tô đậm dần với z là đối số dùng để tô

màu

Bảng 1 6: Các hàm vẽ 3D cơ bản

™ Khái niệm về lighting:

Đâ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 vá

Trang 10

™ Các lệnh lighting:

ƒ Camlight: Tạo hoặc di chuyển một light đối với vị trí máy quay

- Headlight: tạo một light tại vị trí máy quay

- Right(mặc định): tạo một light bên phải và trên xuống từ máy quay

- Left: tạo một light bên trái và trên xuống từ máy quay

ƒ Lightangle: Tạo hoặc xác định vị trí một light trong tọa độ hình cầu

ƒ Light: 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ừ 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

- Style: 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 tại vô cực tỏa ra từ một vị trí xác định với những chùm sáng song song

- Position: 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 light

trên tất cả các đối tượng surface và patch trong tọa độ hiện tại Gồm các thuộc tính:

- none: tắt thuộc tính lighting

- flat: tạo màu đồng nhất cho mỗi mặt của đối tượng Chọn phương pháp này để xem rõ một số mặt của đối tượng

- gouraud: tính toán màu tại đỉnh và nội suy màu thông qua các mặt.Chọn phương pháp này để xem bề mặt cong

- phong: Nội suy đỉnh qua mỗi mặt và tính toán hệ số phản xạ trên mỗi pixel Chọn phương pháp này để xem bề mặt cong phong lighting cho kết quả tốt hơn Gouraud nhưng mất nhiều thời gian để thể hiện

ƒ Material: Đặt thuộc tính hệ số phản xạ của đối tượng light

™ Các thuộc tính lighting:

ƒ AmbientLightColor: 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 ứng độ sáng xung quanh chỉ xuất hiện khi có một đối tượng light

có thể thấy được trong hệ trục

ƒ AmbientStrength: Thuộc tính patch và surface xác định cường độ

thành phần ánh sáng xung quanh được phản xạ từ đối tượng

Trang 11

ƒ DiffuseStrength: 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

ƒ SpecularStrength: 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

ƒ SpecularExponent: 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 tính patch và surface xác định mức

độ ánh sáng phản xạ được tô màu bởi đối tượng color hoặc màu nguồn sáng

ƒ FaceLighting: Thuộc tính patch và surface xác định phương pháp tính

hiệu ứng ánh sáng trên những bề mặt đối tượng Nếu chọn thuộc tính này thì không có thuộc tính lighting flat, phong, gouraud

ƒ EdgeLighting: Thuộc tính patch và 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 này thì không có thuộc tính lighting flat, phong, gouraud

ƒ BackFaceLighting: Thuộc tính patch và surface xác định cách các bề

mặt được chiếu sáng khi đỉnh của chúng cách xa máy quay.Thuộc tính này hữu ích để phân biệt bề mặt bên trong và bên ngoài của một đối tượng

ƒ FaceColor: Thuộc tính patch và surface xác định màu bề mặt đối tượng

ƒ EdgeColor: Thuộc tính patch và surface xác định màu đỉnh đối tượng

ƒ VertexNormals: 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

ƒ NormalMode: Thuộc tính patch và surface xác định liệu MalLab có

tính toán lại các vec-tơ nếu ta thay đổi dữ liệu( auto ) hoặc dùng giá trị hiện 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

nó hoàn toàn mờ đục

Trang 12

™ Hàm Transparency:

ƒ alpha : Đặt, truy vấn thuộc tính Transparency cho những đối tượng trong tọa độ hiện tại

- Thuộc tính FaceAlpha: flat, interp, texture, opaque(=1), clear(=0)

- Thuộc tính AlphaData: x, y, z, color, rand

- Thuộc tính AlphaDataMapping: scaled, direct, none

ƒ alphamap: Xác định hình thái alphamap

- Parameter: default, rampup, rampdown, vup, vdown, increase, decrease, spin

ƒ alim: Đặt, truy vấn giới hạn tọa độ alpha

- alimMode: auto, manual

Hình 1 2 : Kiểu dữ liệu trong Matlab

Trang 13

™ Kiểu logic (logical):

Kiểu dữ 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

Ví dụ : >>X = [true false false true false]

Kết quả: X = [1 0 0 1 0]

™ 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 ký tự 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ễ 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 dấu nháy đơn

Ví dụ: Tạo biến “Ten” với giá trị là “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 = int16(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

™ Mảng các ô (Cell Arrays):

Mảng ô cung cấp một cơ chế lưu trữ cho các loại dữ liệu khác nhau

Có thể lưu 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 mảng ô Để 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ì () như thông thường

Trang 14

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 dùng hàm “cell”, sau đó đưa dữ liệu vào

™ Kiểu cấu trúc (structure):

Cấu trúc là mảng Matlab với tên “data containers” được gọi là trường (feild) Các trường của một cấu trúc có thể chứa bất kỳ loại dữ 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

+ Dùng hàm “struct”

1.2.4.3 Thành phần lập trình cơ bản:

™ Biến 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 toàn cục (global variables) và biến thường trực (persistent variables)

- Biến cục bộ: Mỗi hàm trong Matlab đều có biến cục bộ riêng của

nó Các biến được định nghĩa trong một hàm không lưu lại trong bộ nhớ từ một hàm gọi đến hàm kế tiếp, nếu chúng không được định nghĩa là global hoặc persistent

- Biến toàn cục: Khi biến trong một hàm có giá trị với tất cả các hàm khác thì ta phải khai báo biến đó là global Để khai báo biến global chỉ cần thêm vào trước tên biến từ khóa “global”

Cách khai báo: 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 toàn cục:

‚ clear global: xóa bỏ các biến toàn cục

‚ isglobal(tên_biến): hàm trả về 1 nếu tên_biến là biến toà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 cập biến đó

‚ Matlab không xóa chúng trong bộ nhớ khi thoát khỏi hàm Vì vậy giá trị của nó được giữ lại từ một hàm gọi đến hàm kế tiếp

Cách khai báo : persistent <tên_biến>

Trang 15

Khi ta xóa hàm mà biến thường trực được định nghĩa (dùng lệnh clear <tên hàm> hoặc clear all), hoặc chỉnh sửa M-file cho hàm đó, thì Matlab sẽ xóa tất cả các biến thường trực được sử dụng trong hàm

ƒ Đặ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 chỉ

dùng N (được trả về từ hàm namelengthmax) ký tự đầu tiên của tên

biến Vì vậy, nên đặt tên biến trong khoảng N (N = 63) ký tự để Matlab có thể phân biệt các biến với nhau

- Số âm : Toán tử hai chấm ^ Lũy thừa

.' Hoán vị (chuyển vị) ' Complex conjugate transpose

* Nhân ma trận / Chia phải ma trận

Trang 16

- 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

| Nếu một trong hai phần tử tương ứng ở hai mảng có giá

trị là true thì trả về 1 Ngược lại trả về 0

~ Lấy bù từng phần tử của mảng

xor Trả về một nếu hai phần tử tương ứng ở hai mảng có giá

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:

Ž Lệnh if: đánh giá 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 17

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

Ž Lệnh switch: thực thi các nhóm lệnh dựa trên giá trị của một biến

+ Cú pháp 2: for chỉ số = <biểu thức>

end

Trang 18

<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)

Ž Lệnh break: kết thúc việc thực thi vòng lặp for hoặc while Khi

gặp 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, break chỉ thoát khỏi vòng lặp ở trong cùng

Ž Lệnh continue: chuyển đến lần lặp kế tiếp của còng lặp for hoặc

while Tại vị trí lệnh continue xuất hiện, nó bỏ qua tất cả các lệnh phía sau nó trong thân vòng lặp

1.2.4.4 Lập trình bằng 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 là script và function

™ Script file

Script là loại đơn 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)

Có 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 dạng các ký tự ASCII

Trang 19

Các điểm cần lưu ý: (Xem chi tiết trong [10], TLTK)

‚ 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 tự động nhận biết các biến và giá trị của chung khi ta đưa vào chương trình

‚ Để 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

Một số lệnh cơ bản dùng trong script file:

disp(…) 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ừ

bàn phím

keyboard Trao điều khiển tạm thời cho bàn 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 dù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 Matlab

what Cho biết các file M-file và MAT-file có trong vùng làm

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ỳ

pause(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

Bảng 1 10: Các lệnh cơ bản dùng trong script file

™ Hàm (function) và tạo hàm 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) và trả về các đối số xuất (output) Nó thao tác trê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

mà Matlab cung cấp sẵn M-file có thể chứa nhiều hơn một hàm

Trang 20

(function), những hàm được thêm vào gọi là hàm con (subfunction) Các hàm này chỉ nhìn thấy hàm chính hoặc các hàm con khác trong cùng một file

Các quy tắc viết hàm trong Matlab: (Xem chi 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 dấ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ố này chỉ là biến cục bộ

Ví dụ: function [tsr1, tsr2,…,tsrn] = tên_hàm(tsv1, tsv2,…,tsvn)

% ghi chú 1…

% ghi chú n <Nhóm lệnh>

1.2.5.1 Tạo firgure

Trong MatLab, GUI là figure Trước khi thêm các thành phần vào figure, cần tạo một figure xác định f = figure, f là handle của figure

Chú ý: Trước khi tạo các thành phần mà không có figure thì MatLab có

thể tạo figure tự động nhưng ta không biết handle của figure

Sau đây là các thuộc tính của figure:

ƒ MenuBar: hiển thị bảng chọn của Menu bar

- Giá trị: none,figure(mặc định)

ƒ Name: Tựa đề hiển thị trong cửa sổ figure Nếu NumberTitle là on, chuỗi này được thêm vào số figure

- Giá trị: string

Trang 21

ƒ NumberTitle: on( mặc định ), off

ƒ Position: kích thước của figure GUI và vị trí của nó cân đối với góc dưới bên trái màn hình

- [ left, bottom, width, height ]

ƒ Resize: Xác định khả năng người dùng có thể thay đổi kích thước figure bằng chuột

- Giá trị: on( mặc định ), off

ƒ 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ụ khác thêm vào

- figure( mặc định ): hiển thị thanh công cụ

ƒ Units: đơn vị đo lường

- Giá trị: centimeters, characters, inches, normalized, points, pixels( mặc định )

ƒ Visible: Hiển thị figure trên màn hình

- Giá trị: on( mặc định ), off

ƒ Button Group: giống như panel nhưng dùng để quản lý các radio

button và toggle button

Trang 22

ƒ Pop-Up Menu: hiển thị danh sách chọn lựa khi người dùng click vào

1.2.5.3 Thêm điều khiển giao diện người dùng (User Interface Controls)

uich = uicontrol( parent, ‘PropertyName’, ‘PropertyValue’, )

Nếu khô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

- Position: kích thước và vị trí của thành phần tương ứng với parent

- String: Tạo tựa đề

- Style: pushbutton( mặc định ), togglebutton, radiobutton, checkbox, edit, text, slider, listbox, popupmenu

- Units: đơn vị đo lường Gồm: pixels( mặc định ), normalized, inches, centimeters, points, characters

- Value: phụ thuộc vào thuộc tính Style

Trang 23

ƒ List Box:

- Style = ‘listbox’

- value = scalar :số thứ tự của item được chọn

- Max – Min > 1, value = [ ] :chọn nhiều item

- Max – Min: xác định khoảng giá trị của slider

- value: min <= value <= max

- SliderStep = [min_step, max_step]

‚ min_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: chọn, value = 0: không chọn

1.2.5.4 Thêm Panel và Button Groups

ƒ Các thuộc tính được dùng phổ biến

- Parent: Xác định figure, panel, group button là thành phần cha

- Position: Kích thước và vị trí của thành phần trong parent của nó

- Title: Dùng để gán nhãn

- TitlePosition: vị trí của title

‚ Các giá trị: lefttop( mặc định ), centertop, righttop, leftbottom, centerbottom, rightbottom

Trang 24

- Units: Đơn vị đo lường

‚ Các giá trị: pixels, normalized( mặc định ), inches,

centimeters, points, characters

- Parent: Xác định figure, panel, group button là thành phần cha

- Position: Kích thước và vị trí của thành phần trong parent của nó

- Units: Đơn vị đo lường

‚ Các giá trị: pixels, normalized( mặc định ), inches, centimeters, points, characters

1.2.5.6 Thêm ActiveX Controls

h = actxcontrol('progid', position, fig_handle) → tạo trình điều khiển tại

vị trí 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à gcf )

1.2.5.7 Các thành phần Aligning

align( HandleList, ‘HorizontalAlignment’, ‘VerticalAlignment’ )

ƒ HandleList: 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 lập Tab Oder

ƒ Tab Oder mặc định: là thứ tự khi tạo các thành phần

Ta không thể tab đến axes và static text

ƒ Thay đổi thứ tự TabOder

- uistack(h): thay đổi thứ tự của đối tượng

- uistack(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 25

‚ stackopt = bottom: di chuyển h xuống vị trí dưới cùng của thứ

tự hiện tại

- uistack( h, ‘up’, n ): di chuyển h lên n bậc

- uistack(h, ‘down’, n): di chuyển h xuống n bậc

‚ off: item 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ó

‚ on( mặc định):

‚ off: để ngăn chặn những hoạt động không mong đợi

- Label:

‚ String: dùng hiển thị nhãn cho menu

- Position: vị trí menu item trong menu

- Separator: Đường chia

‚ on: Hiển thị

‚ off( mặc định ): không hiển thị

Trang 26

1.2.5.10 Tạo Context Menu

ƒ Thuộc tính phổ biến

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

- Parent: Parent của Context Menu

- Position[ 0 0]: Khoảng cách từ góc dưới bên trái của parent figure tới góc trên bên trái của context menu Thuộc tính này chỉ được dùng khi Visible = on

- Visible:

‚ on: Hiển thị

‚ off( mặc định ): Không hiển thị

ƒ Tạo Context Menu

- handle = uicontextmenu(‘PropertyName’, PropertyValue,… )

ƒ Thêm Menu item vào Context Menu

- mh = uimenu(handle,'PropertyName',PropertyValue, )

ƒ Giao tiếp với Context Menu : dùng thuộc tính UIContextMenu

- set( parent, ‘UIContextMenu’, handle )

1.2.5.11 Tạo Toolbars

∗ tbh = uitoolbar(h, ‘PropertyName’, PropertyValue,… )

∗ pth = uipushtool(h, ‘PropertyName’, PropertyValue,… )

∗ pth = uitoggletool(h, ‘PropertyName’, PropertyValue,… )

ƒ Thuộc tính phổ biến

- CData : Định dạng màu RGB

‚ Giá trị 3D trong khoảng 0.0 đến 1.0

- HandleVisibility : Xác định handle của nó nằm trong danh sách handle của parent

‚ on( mặc định ):

‚ off : Ngăn chặn những hành động mong muốn

- Separator : Vẽ đường chia

‚ Giá tri: on, off

- State : Tình trạng của dụng cụ

‚ on: Được chọn, bị nhấn xuống

‚ off: Không chọn

Trang 27

- TooltipString : dùng để giải thích chức năng của công cụ

ƒ Hiển thị Toolbar chuẩn:

- set( fh, ‘Toolbar’, ‘figure’ ): hiển thị thanh công cụ chuẩn

- set( fh, ‘Toolbar’, ‘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

1.2.5.12 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

- mInputArgs =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 gọi hàm callback

‚ eventdata: trống- để sử dụng trong tương 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 hàm callback khác hoặc đến dòng lệnh (command line)

Trang 28

Chương 2 GIỚI THIỆU MỘT SỐ BÀI TOÁN TRONG TÀI CHÍNH

2.1 Mở đầu:

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 Chính’ rất quan trọng 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?

9 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)

9 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

9 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

Trang 29

2.3 Hệ thống lãi đơn (Xem chi tiết trong [6], TLTK)

2.3.1 Các đối số

In : Tiền lãi của vốn đầu tư sau n chu kỳ

i : Lãi suất của 1 chu kỳ (Lãi suất 1 ngày, 1 tháng, 1 quý, 1 năm)

n : Số chu kỳ đầu tư (số ngày, số tháng, số quý, số năm)

C0 : Vốn đầu tư ban đầu

Cn : Giá trị của vốn đầu tư sau n chu kỳ

A : Mệnh giá thương phiếu

a : Hiện giá sau khi chiết khấu

0.07%

0250.000.00

35.000.0007

2%

0250.000.00

0đ120.000.002

24%

0250.000.00

0102.000.00

0100.000.000

I n = 0 ×

n a

a A i

×

=

Trang 30

2.3.4 Lãi suất chiết khấu

ƒ Công thức:

ƒ Bài toán:

Một thương phiếu có mệnh giá 128000 đồng đáo hạn ngày 22/12 đem đi chiết khấu tại ngày 10/11 cho một số tiền 124775 đồng Tính lãi suất chiết khấu

Giải

Số ngày chiết khấu từ 10/11 đến 22/12 là 42 ngày

Lãi suất chiết khấu cho thương phiếu:

%06.042

280001

124775128000

Một thương gia thương lượng một hối phiếu 450.000 đồng hạn kỳ

từ ngày thương lượng đến ngày đáo hạn của hối phiếu là 55 ngày với lãi suất chiết khấu ngân hàng áp dụng 20% năm Tính tiền ngân hàng giữ lại và tiền thương gia nhận được.[6]

Giải:

Tiền chiết khấu ngân hàng giữ lại là A.n.i

13.750360

20%

55450.000

a A i

n 1

i n A A

a

n) i (1 C

C 0= n − ×

Trang 31

Thay 3 hối phiếu trên bằng hối phiếu A duy nhất có n = 42 ngày với

i = 20% năm Xác định C0.

Giải:

Ta có phương trình tương đương:

)360

20%

6011.200.000(

)360

20%36

1850.000(

)360

20%

241500.000(

)360

20%

421(

C0

×

−+

×

−+

360

18%

1201150.000(

2.4.1 Các đối số

In: Tiền lãi của vốn đầu tư sau n chu kỳ

i: Lãi suất của 1 chu kỳ (Lãi suất 1 ngày, 1 tháng, 1 quý, 1 năm) n: Số chu kỳ đầu tư (số ngày, số tháng, số quý, số năm)

C0: Vốn đầu tư ban đầu

Cn: Giá trị của vốn đầu tư sau n chu kỳ

Trang 32

5Ci

)i1(C5C

8

8 0 0

8 0

En: Tiền chiết khấu

Cn: Mệnh giá của của vốn tại ngày đáo hạn

Trang 33

2.4.6 Giá trị tương lai

a: Khoản tiền thanh toán vào cuối kỳ (đầu kỳ)

i: Lãi suất một chu kỳ

n: Số chu kỳ thanh toán

Vn: Tổng giá trị tương lai của các khoản thanh toán cuối kỳ tại n

V0: Tổng giá trị hiện tại của các khoản thanh toán cuối kỳ tại 0

V’n: Tổng giá trị tương lai của các khoản thanh toán đầu kỳ tại n

V’0: Tổng giá trị hiện tại của các khoản thanh toán đầu kỳ tại 0

2.5.2 Tổng giá trị tương lai của các khoản thanh toán cuối kỳ

ƒ Công thức:

ƒ Bài toán:

Tính tổng giá trị tương lai của 10 khoản thanh toán Nếu mỗi khoản thanh toán là 250.000đ đóng vào cuối mỗi quý lãi suất là 6.25% quý

Giải

3.334,1430.0625

10.0625)(1

250.000V

n

n

−+

×

=

Trang 34

2.5.3 Tổng giá trị hiện tại của các khoản thanh toán cuối kỳ

ƒ Công thức:

ƒ Bài toán:

Cho biết số tiền có thể vay được vào đầu năm dưới sự đảm bảo của 12 kỳ trả góp vào cuối mỗi tháng số tiền 20.000đ, lãi suất 2.8% tháng

Giải

201.4780.028

0.028)(1

120.000V

Giải

409.992.6)22.01(0.22

10.22)(1

200.000V'

Giải

468.0300.015

0.015)(1

10.015)(1

-000.50V'

i

1 i) (1 i) a(1 V'

n n

−++

=

i

i) (1 - 1 i) (1 a V'

-n 0

++

=

Trang 35

2.5.6 Định giá các khoản tiền thanh toán cuối kỳ

0.01)(1

01.0000.000.5

24

=

−+

Giải

( ) 29.597

10.011

0.01)(1

0.01900.000

35

=

−+

0i ni 0

: n

q P

q P 100

L

(1 i 1)

i) (1 i V

n 0

−+

-1 n 0

−+

+

×

=

Trang 36

ni ni 0

: n

q P

q P 100

P

ƒ Chỉ số INDEX

Chỉ số đo lường sự thay đổi trung bình trong giá cả đối với mô hình mua bán cố định Chỉ số cho n chu kỳ được thể hiện bởi công thức sau:

P

* L

2.6.3 Bài toán

Giá cả và khối lượng của cá tuyết và cá bơn ở Anh

1990 1995 Khối lượng Giá Khối lượng Giá

562.48

1.83345.56102.1

776.06100

×+

×

×+

562.48

2.73345.5687.9

776.06100

×+

×

×+

×

×

=

™ I1:0 = 136.6348

2.7 Dự báo theo chuỗi thời gian (Time Series Forecasting)

(Xem chi tiết trong [7], TLTK)

Lấy giá trị trung bình của các thời điểm trước làm giá trị dự báo

cho thời điểm hiện tại

ƒ Công thức:

F(t) = n

1 A(t) / n f(t +τ) = F(t)

Trang 37

ƒ Bài toán:

Thời gian Lượng bán thực tế Độ dịch chuyển trung bình trong ba tháng

Hai năm trước

Bảng 2 1: Bài toán về dự báo theo dịch chuyển trung bình

2.7.3 Dự báo theo dịch chuyển trung bình có trọng số (Weighted

Moving Average)

ƒ Phương pháp:

Lấy giá trị trung bình có trọng số các thời điểm trước làm giá trị

dự báo cho thời điểm hiện tại

ƒ Công thức:

Weigh for periods t: Trọng số cho thời gian t Demand in period t: nhu cầu trong thời gian t

Weighs

t) period in

t)(Demand periods

for (Weigh W.M.A

=

Trang 38

Kết quả dự đoán theo phương pháp này thể hiện trong bảng sau:

thực tế

Độ dịch chuyển trung bình có trọng số trong ba tháng Hai năm trước

Tháng 4 18 ( 3x19 + 2x20 + 21 )/6 = 19.67 Tháng 5 14 ( 3x18 + 2x19 + 20 )/6 = 18.67 Tháng 6 15 ( 3x14 + 2x18 + 19 )/6 = 16.17 Tháng 7 22 ( 3x15 + 2x14 + 18 )/6 = 15.17 Tháng 8 28 ( 3x22 + 2x15 + 14 )/6 = 18.33 Tháng 9 25 ( 3x28 + 2x22 + 15 )/6 = 28.83 Tháng 10 25 ( 3x25 + 2x28 + 22 )/6 = 25.50 Tháng 11 25 ( 3x25 + 2x25 + 28 )/6 = 25.50 Tháng 12 20 ( 3x25 + 2x25 + 25 )/6 = 25

Một năm trước

Tháng 1 25 ( 3x20 + 2x25 + 25 )/6 = 22.50 Tháng 2 25 ( 3x25 + 2x20 + 25 )/6 = 23.33 Tháng 3 24 ( 3x25 + 2x25 + 20 )/6 = 24.17 Tháng 4 28 ( 3x24 + 2x25 + 25 )/6 = 24.50 Tháng 5 36 ( 3x28 + 2x24 + 25 )/6 = 26.17 Tháng 6 32 ( 3x36 + 2x28 + 24 )/6 = 31.33 Tháng 7 25 ( 3x32 + 2x36 + 28 )/6 = 32.67 Tháng 8 23 ( 3x25 + 2x32 + 36 )/6 = 29.17 Tháng 9 22 ( 3x23 + 2x25 + 32 )/6 = 25.17 Tháng 10 23 ( 3x22 + 2x23 + 25 )/6 = 22.83 Tháng 11 22 ( 3x23 + 2x22 + 23 )/6 = 22.67 Tháng 12 27 ( 3x22 + 2x23 + 22 )/6 = 22.33

Bảng 2 2: Kết quả dự đoán theo pp dịch chuyển trung bình có trọng số

Trang 39

2.7.4 Dự báo theo hàm trơn đơn (Single Exponential Smoothing)

Bảng 2 3: Bài toán dự báo theo hàm đơn trơn

Dự đoán mới = dự báo thời gian trước + a( nhu cầu

thời gian trước – dự báo thời gian trước )

Trang 40

Chương 3 CÁC HÀM VỀ TÀI CHÍNH TRONG MATLAB

3.1 Giới thiệu:

MatLab và hộp công cụ tài chính (Financial Toolbox – FT) cung cấp môi trường tính toán được tích hợp hoàn chỉnh cho việc nghiên cứu và phân tích tài chính Hộp công cụ có mọi thứ cần thiết để thực hiện các phép toán, phân tích thống kê dữ liệu tài chính và hiển thị kết quả bằng hình ảnh đồ họa đặc trưng Trong lập trình bảng tính hay truyền thống, ta phải xử lý tất cả các chi tiết như: khai báo, loại dữ liệu, kích thước,…Nhưng với Matlab, tất cả các việc đó đều được xử lý tự động Ta chỉ cần viết biểu thức theo cách mà ta nghĩ về vấn

đề Không cần chuyển đổi công cụ, thay đổi file hoặc viết lại ứng dụng

MatLab và hộp công cụ tài chính cung cấp các chức năng sau:

ƒ Tính toán và phân tích giá cả, lợi nhuận và độ nhạy cho vốn đầu tư, các chứng khoán và danh mục vốn đầu tư chứng khoán

ƒ Định giá lợi tức cố định tích hợp theo Hội liên hiệp kinh doanh chứng khoán (Securities Industry Association – SIA), lợi nhuận và phân tích

độ nhạy

ƒ Phân tích và quản lý vốn đầu tư

ƒ Dự kiến và đánh giá hàng rào chiến lược

ƒ Nhận biết, ước tính và điều khiển rủi ro

ƒ Phân tích và tính toán chu kỳ tiền mặt, bao gồm tỉ lệ hoàn trả và dòng giảm giá

ƒ Phân tích và dự đoán hoạt động kinh tế

ƒ Quan sát và phân tích dữ liệu chuỗi thời gian tài chính

ƒ Tạo các công cụ tài chính có cấu trúc, bao gồm công cụ chuyển đổi ngoại tệ

ƒ Giảng dạy và hướng dẫn nghiên cứu học thuật

Ngày đăng: 25/12/2014, 19:21

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] David F. Griffiths, An Introduction to Matlab version 2.3, The University Dundee, 2005 Sách, tạp chí
Tiêu đề: An Introduction to Matlab version 2.3
[3] Alex F. Bielajew, Introduction to Computers and Programming using C++ and MATLAB, The University of Michigan, 2005 Sách, tạp chí
Tiêu đề: Introduction to Computers and Programming using C++ and MATLAB
[4] Đinh Đức Anh Vũ, Giới thiệu sơ lược vển ngôn ngữ Matlab, Trường ĐH Bách Khoa TpHCM, 2004 Sách, tạp chí
Tiêu đề: Giới thiệu sơ lược vển ngôn ngữ
[5] PGS.TS Tạ Duy Liêm, Cơ sở Matlab và Ứng dụng, NXB Khoa học và Kỹ thuật, Hà Nội, 2005 Sách, tạp chí
Tiêu đề: Cơ sở Matlab và Ứng dụng
Nhà XB: NXB Khoa học và Kỹ thuật
[6] Tiến sĩ Lại Tiến Dĩnh, Toán Tài Chính, NXB Thống Kê, 2002 [7] Tiến sĩ Trương Mỹ Dung, SOFTWARE APPLICATIONS TO CONOMICS, NXB Tổng Hợp Tp HCM, 2005 Sách, tạp chí
Tiêu đề: Toán Tài Chính", NXB Thống Kê, 2002 [7] Tiến sĩ Trương Mỹ Dung, "SOFTWARE APPLICATIONS TO CONOMICS
Nhà XB: NXB Thống Kê
[10] La Văn Hiển, Nhập môn MATLAB Access, NXB Đại Học Quốc Gia Tp.HCM, 2003 Sách, tạp chí
Tiêu đề: Nhập môn MATLAB Access
Nhà XB: NXB Đại Học Quốc Gia Tp.HCM
[11] Pascal Getreuer, Writing Fast MATLAB Code, 6/2006 Sách, tạp chí
Tiêu đề: Writing Fast MATLAB Code
[12] Dmitrii S. Silvestrov and Anatoliy A. Malyarenko, An Introduction to Financial Mathematics with MATLAB, Research Report, 2001.Websites Sách, tạp chí
Tiêu đề: An Introduction to Financial Mathematics with MATLAB
[2] The Math Work, Getting Started with Matlab Khác
[5] www.templateen.com [6] www.c-sharpcorner.com Khác

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w