Métodos Numéricos em Finanças Prf. José Fajardo Barbachan IBMEC Objetivo Aprender Métodos Numéricos para modelar e resolver problemas financeiros, implementando programas em Matlab 1
Conteúdo Introdução ao Matlab Problemas em Finanças Métodos Numéricos: Soluções de equações, Mínimos, Simulação Montecarlo, etc. Otimização de Carteiras Apreçamento de Opções VaR e CVaR. Bibliografia Numerical Methods in Finance: A Matlab based Introduction.(2002) Paolo Brandimarte Financial Modeling. (2000) Simon Benninga 2
Prova (40pts) Avaliação Trabalho Final (40pts) Participação (15pts) Autoavaliação (5pts) Aprovado se a soma dos pontos maior ou igual a 60 Observações O Trabalho final será entregue no dia 13/05/2002 até 22:00 hrs. Apôs esta data o aluno será penalizado com 3*x pts, onde x é o número de dias fora do prazo. A Prova será aplicada apôs da aula de otimização. Não haverá prova de reposição. 3
Introdução ao Matlab O Que é MATLAB? MATtrix LABoratory Mathworks www.mathworks.com Multiplataforma Windows, Unix, Linux e Mac. 4
O Que é MatLab? Principais Características Manipulação de Matrizes Geração e Manipulação de Gráficos Linguagem de programação completa Interface com C, Java, Excel Ajuda Toolboxes O Que é MatLab? Toolbox Conjunto de funções relacionadas a um tema em comum. Exemplos Statistic Neural Network Optimization Database 5
Área de Trabalho Janelas da Área de Trabalho do Matlab Janela Descrição Command Editar comandos para processamento Command History História de comandos editados na janela Command Launch Pad Árvore para acesso a ferramentas, demos e documentações Current Directory Interface gráfica para manipulação de arquivos e pastas Help Interface gráfica para busca e visualização de documentação Workspace Interface gráfica para visualização, carregamento e gravação das variáveis Array Editor Interface gráfica para modificação do conteúdo de variáveis Editor/Debugger Editor de texto e depurador para arquivos Matlab Características Básicas Matemática Simples Operação Símbolo Exemplo Adição + 3 + 22 Subtração - 54.4-16.5 Multiplicação * 3.14 * 6 Divisão \ ou / 19/7 ou 7\19 Exponenciação ^ 2^8 6
Características Básicas Ordem de precedência Esquerda para direita Parênteses Exponenciação Multiplicação/Divisão Adição/Subtração Características Básicas Variáveis Nome com no máximo 31 caracteres, os excedentes são desconsiderados Devem começar com uma letra podendo ser seguido de letras, números ou underscores. 7
Variáveis Características Básicas Palavras reservadas For, end, if, while, function, return, elseif, case, otherwise, switch, continue, else, try, catch, global, persistent, break Características Básicas Variáveis Especiais ans Variável default para resultados beep Faz o computador emitir um beep pi 3.141592 eps Epsilon inf Infinito NaN ou nan Não é um número (0/0) i ou j Raiz de -1 nargin Número de argumentos de entrada da função nargout Número de argumentos de saída da função realmin Menor real positivo utilizável realmax Maior real positivo utilizável bitmax Maior inteiro positivo utilizável varargin Número variável de argumentos de entrada varargout Número variável de argumentos de saída 8
Características Básicas Matemática Simples Ex.: João comprou 2 Kg de açúcar e 5 Kg de feijão. O açúcar custa R$ 2,00/Kg e o feijão R$ 5,00/Kg. Quanto ele gastou? Resolver o exemplo anterior utilizando variáveis para guardar os preços e as quantidades. Recalcular mudando o preço do feijão para R$ 4,50. Características Básicas Workspace Visualizando as variáveis who whos Interface gráfica Limpando as variáveis clear Interface gráfica O caso do PI 9
Características Básicas Navegação no command window Setas Tab (Completar comando) Esc (Limpar comando) Caracteres especiais % ; Características Básicas Números complexos C1 = 1-2i C2 = 1 2* sqrt(-1) real imag abs angle (Radianos) 10
Características Básicas Precisão 0.08 0.5 + 0.42 0.42 0.5 + 0.08 sin(0) e sin(pi) Características Básicas Funções matemáticas Trigonométricas sin, cos, tan, cot, csc, sec, etc Exponenciais ^, exp, log, log10, log2, sqrt, etc Complexas conj, isreal, complex 11
Características Básicas Funções matemáticas Arredondamento e restos fix Arredonda em direção a zero floor Arredonda em direção a menos infinito ceil - Arredonda em direção a mais infinito round Aproxima do inteiro mais róximo rem Resto da divisão Características Básicas Funções matemáticas Transformação de Coordenadas cart2sph, cartpol, pol2cart, sph2cart Outras funções factor, isprime, primes, gcd, lcm, rat, perms besselj, besselk, beta, betainc, betaln, etc 12
Gerenciando a Área de Trabalho Gerenciamento de memória clear pack Formatos de apresentação dos números format Menu preferences Gerenciando a Área de Trabalho Search Path matlabpath, path, addpath, rmpath Busca de nomes Variável Função built-in Arquivo na pasta atual Arquivo no search path 13
Observações Eficiência: 0.5*7 vs. 7/2 Estrutura Linear. Matrizes Vetores linha L = [1 2 3 4 5] Vetores coluna C = [1; 2; 3; 4; 5] C = L Matrizes M = [1 2 3; 4 5 6] 14
Matrizes Acessando elementos do vetor Índice C(1) Bloco de elementos C(1:3) C(3:-1:1) C([1 2 3]) end : Matrizes Construção de matrizes Exemplo: x = (0:0.1:1)*pi linspace: x = linspace(0,pi,11) logspace Concatenando matrizes: x = [a b] 15
Matrizes Matemática escalar matriz Criar um vetor linha (x) que tenha 20 elementos de 0 a pi. Criar um vetor coluna (y) que seja o vetor x multiplicado por 2 Criar um vetor linha (z) que represente o seno de x Criar um vetor linha (w) que represente cada elemento de z adicionado de 2 Matrizes Matemática matriz matriz Multiplicação elemento por elemento Divisão elemento por elemento Funções especiais ones zeros magic size 16
Matrizes Funções especiais eye rand randn randperm diag length repmat reshape Matrizes Manipulação Acrescentando elementos Excluindo elementos Indexador lógico A(A>1) logical find 17
Exercício Criar uma matriz com 3 colunas e 100 números aleatórios com média 50 e desvio padrão 5 Calcular a real média e o real desvio padrão por coluna Criar uma matriz que represente a primeira diferença logaritmica dos elementos Exercício Calcular a média e o desvio padrão das colunas da nova matriz Contar o número de retornos negativos em cada coluna 18