Forecasting e Otimização de Carteiras com Matlab Prof. Dr. Marco Antonio
Matlab O que é? Como funciona? Fundamentos - Ambiente de programação avançada - Ambiente de execução de programas - Permite utilização de ferramentas computacionais de todas as áreas de ensino e pesquisa - Com comandos de linhas (uso limitado) - Com programação em arquivos - É necessário ter uma boa noção de algoritmos 2
Onde Tudo Começa... Diretório padrão para salvar programas Comandos de Linha 3
Funções Matemáticas Matemática Símbolo Matlab Raiz Quadrada x sqrt(número) Logaritmo Ln(x) (natural) log(número) Exponencial e x exp(número) 4
No Matlab 5 ln(5) 5 e 5
Outros Logaritmos Logaritmo na base 2 Logaritmo na base 10 AULA 1 6
Somando Expressões Se e x=2 y=5 Então --------------------- Soma = x + y = 7 7
Multiplicando Expressões Se e x=2 y=5 Então --------------------- Mult = x * y = 10 8
Expressões e Operações Variável assume valor Ponto e virgula não mostra a resposta Simples operações 9
Vários comandos na mesma linha Não pode na mesma linha com espaço em branco Tem que usar VIRGULA 10
O comando Who variáveis O que está ocupando a memória 11
Comando Whos 12
Criando Vetores Colchetes Vetores Transpostos Apóstrofes 13
Gerando vetores com intervalos definidos Valor_inicial : incremento : Valor_Final Incremento POSITIVO Incremento NEGATIVO 14
Adicionando constante à um vetor 15
Multiplicando constante a cada elemento do vetor 16
Divisão dos elementos do vetor por constante 17
Adição de Vetores Subtração de Vetores 18
O produto escalar de dois vetores Tem que transpor o segundo vetor! Transposta! 19
O produto vetorial x. *y tem que ter ponto antes do produto 20
Criando tabelas com vetores 21
Matrizes A = [ a11 a12 a13 ; a21 a22 a23 ; a31 a32 a33 ] 22
Adição (+) e Subtração ( - ) de Matrizes 23
A multiplicação de matrizes Ops! Bnãoéb 24
A inversa de uma matriz 25
A matriz transposta A matriz transposta 26
Inserindo novo elemento no vetor 27
Inserindo nova linha (coluna) na matriz 28
O Determinante da matriz 29
Resolvendo sistema linear Seja o sistema linear x1 + 4x 2 + 3x3 = 12 x1 2x 2 = -12 2x1 + 2x 2 + 3x3 = 8 Encontrar a solução para x 1, x 2 e x 3. Dica: r r x = A 1. b 30
Solução 31
Equações matriciais Considere as matrizes = 2 6 2 3 3 5 A = = 3 6 2 4 C 4 2 2 6 B 3 6 Encontrar a solução para X abaixo: AX + B C AX + B = C 32
Solução X 1 = A (C B) 33
A matriz identidade Eye(N) N:ordem da matriz 34
Resolver AX + B = X Solução AX + B = X AX X (A I)X = B = B X = (A I) 1 B 35
No Matlab... 36
Gráficos em 2D Plot (y) onde y: vetor 37
Resultado 38
Formatando um gráfico Pode-se alterar os eixos e incluir títulos clicando no gráfico. Ou antes do gráfico ficar pronto através de comandos de linhas Insere um título entre apóstrofes Insere um título no eixo x Insere um título no eixo y 39
Resultado 40
Plotando funções Vetor tempo Função do tempo 41
Outra forma de criar vetor Usando o comando linspace (início, fim, número de dados) Só 10 pontos! 42
Vários gráficos na mesma figura Ponto para produto elemento a elemento. vermelho Azul Preto 43
Como lembrar todos os comandos? Comando help e o nome da função 44
Histogramas hist(y,x) 500 pontos com distribuição normal (0,1) Randn(linhas, colunas) 45
Gráficos em 3D - Plot3 46
Gráficos em 3D - Mesh É necessário criar uma grade de pontos Função Gerador do gráfico 47
Outro Exemplo Ponto flutuante para não zerar a função 48
Gráficos 3D - Surf A função colormap é um mapa de cores fortes e fracas, indicando d regiões de pouca ou muita variação. 49
Usando o Shading Interp Apaga as linhas do Meshgrid 50
Rotacionando um gráfico (Rotate 3D) 51
As curvas de níveis da função 3D Número de curvas de níveis desejada para a função z = x.exp(-x^2-y^2) 52
Editando Programa em M-file O que é M-File? - Arquivo construído fora do comando de linha - Armazenado no HD - Não se perde quando o Matlab é fechado - Pode ser rodado diversas vezes depois de editado O que é uma edição em M-File - Construção algoritmica de um programa - Automatiza a resolução de problemas O que é o editor M-File? - Onde se edita o programa para rodar Onde fica o editor M-File? - Na tela principal do Matlab 53
A Janela do M-File Abre uma janela de editoração 54
O nome do programa Não pode começar com NÚMERO Exemplo: 1prog, 10xpe, 2123cal, 1aula, Não pode ter espaços em branco Exemplo: aula 1 prog comp Não pode ter acentos, c cedilha, ou qq. pontuação Exemplo: aulão1 ççwqr Não pode passar de 8 caracteres Exemplo: programadecomputação1 auladecomp PODE misturar letras e números Exemplo: prog1 pr23rtu 55
Programa da Soma O procedimento da programação é o mesmo do comando de linha O programa precisa ser salvo em algum path no botão file Depois de salvo é só rodar o programa 56
Rodando o programa Três maneiras diferentes - Usando o botão de execução - Usando o F5 do debug - Usando o comando de linha. Ex : se o programa chama prg1 escrever o nome e apertar a tecla enter 57
Cuidado Importante! Acertar o path -Antes de rodar o programa, o path do Matlab tem que estar posicionado i no diretório i correto. Diretório i correto é onde se encontra o programa. Veja a figura abaixo, onde se altera o programa. -Basta clicar nos pontos e procurar o diretório 58
Exemplo Ao clicar no botão - Aparecerá a tela abaixo com todos os diretórios. Procure onde está o diretório i do programa. Clique nele e ok. 59
Algoritmos O que é? - Instrução lógica de programação - Deve ter encadeamento de passos - Algoritmo errado é programa errado O que é erro de compilação? - Erro nos comandos da linguagem - Esse erro o programa avisa -Exemplo: O correto era SQRT (raiz quadrada) d e não SQR 60
Programação de fórmulas Forma de programação mais simples Necessita apenas da entrada das variáveis Como programar a seguinte fórmula? z = xy + 4 x 3 y + xy Alguns passos de lógica devem ser seguidos 61
A Resolução Primeira pergunta: O que o computador precisa para resolver? z = xy + 4 x 3 y + a) precisa de x? Sim. b) precisa de y? Sim. c) precisa de z? Não. xy A variável x é uma entrada do programa. A variável y é outra entrada do programa. A variável z é a saída do programa ( o resultado ) 62
Passos Lógicos z = xy + 4x 3y + xy 1. Entre com o valor de x. O apóstrofe indica mensagem de texto 2. Entre com o valor de y. 3. Faça o computador mostrar a saída z. 4. O comando input é um comando de leitura de variável. 63
A execução z = xy + 4x 3y + xy As mensagens aparecem no comando de linha do matlab É só preencher, clicar em enter e observar a saída. Primeira entrada Segunda entrada Saída (resposta) 64