Forecasting o ecast g e Otimização Ot ação de Carteiras com Matlab P f Dr. Prof. D Marco M Antonio A t i Leonel L l Caetano C t Matlab •O que é? - Ambiente de programação avançada - Ambiente A bi t d de execução ã d de programas - Permite utilização de ferramentas computacionais de todas as áreas de ensino e pesquisa •Como Como funciona? - Com comandos de linhas (uso limitado) - Com programação em arquivos •Fundamentos - É necessário ter uma boa noção de algoritmos AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 2 Onde Tudo Começa... Diretório padrão para salvar programas Comandos de Linha AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 3 Funções Matemáticas Matemática Símbolo Raiz Quadrada Logaritmo L it (natural) Exponencial AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano Matlab sqrt(número) L Ln(x) ( ) l ( ú log(número) ) ex exp(número) x 4 No Matlab 5 ln(5) e 5 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 5 Outros Logaritmos Logaritmo na base 2 Logaritmo na base 10 AULA 1 6 Somando Expressões Se x=2 e y=5 Então --------------------Soma = x + y = 7 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 7 Multiplicando Expressões Se x=2 e y=5 Então --------------------Mult = x * y = 10 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 8 Expressões e Operações Variável assume valor Ponto e virgula não mostra a resposta Simples operações AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 9 Vários comandos na mesma linha Não pode na mesma linha com espaço em branco Tem que usar VIRGULA AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 10 O comando Who variáveis O que está ocupando a memória AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 11 Comando Whos AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 12 Criando Vetores Colchetes Vetores Transpostos Apóstrofes AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 13 Gerando vetores com intervalos definidos Valor_inicial : incremento : Valor_Final Incremento POSITIVO I Incremento t NEGATIVO AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 14 Adicionando constante à um vetor AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 15 Multiplicando constante a cada elemento do vetor AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 16 Divisão dos elementos do vetor por constante AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 17 Adição de Vetores AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano Subtração de Vetores 18 O produto escalar de dois vetores Tem que transpor o segundo vetor! Transposta! AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 19 O produto vetorial x. *y * tem que ter ponto antes do produto AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 20 Criando tabelas com vetores AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 21 Matrizes A = [ a11 a12 a13 ; a21 a22 a23 ; a31 a32 a33 ] AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 22 Adição (+) e Subtração ( - ) de Matrizes AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 23 A multiplicação de matrizes Ops! B não é b 24 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano A inversa de uma matriz AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 25 A matriz transposta A matriz transposta AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 26 Inserindo novo elemento no vetor AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 27 Inserindo nova linha (coluna) na matriz AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 28 O Determinante da matriz AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 29 Resolvendo sistema linear Seja o sistema linear ⎧x1 + 4 x 2 + 3x 3 = 12 ⎪ = -12 ⎨− x 1 − 2 x 2 ⎪2x ⎩ 2 1 + 2 x 2 + 3x 3 = 8 Encontrar a solução para x1 , x2 e x3. Dica: AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano r r −1 x = A .b 30 Solução AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 31 Equações matriciais Considere as matrizes ⎛5 3⎞ ⎟⎟ A = ⎜⎜ 3 2 ⎝ ⎠ ⎛ 6 2⎞ B = ⎜⎜ ⎟ ⎝ 2 4⎠ ⎛ 4 − 2⎞ ⎟⎟ C = ⎜⎜ − 6 3 ⎝ ⎠ Encontrar a solução para X abaixo: AX + B = C AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 32 Solução X = A −1 (C − B) AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 33 A matriz identidade Eye(N) E e(N) N:ordem da matriz AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 34 Resolver AX + B = X Solução AX + B = X ⇒ AX − X = −B ⇒ ( A − I) X = − B ⇒ X = −(A − I) −1 B AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 35 No Matlab... AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 36 Gráficos em 2D Pl (y) Plot ( ) onde y: vetor AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 37 Resultado AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 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 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 39 Resultado AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 40 Plotando funções Vetor tempo Função do tempo AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 41 Outra forma de criar vetor Usando o comando linspace (início, fim, número de dados) Só 10 pontos! p AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 42 Vários gráficos na mesma figura Ponto ppara produto p elemento a elemento. vermelho A l Azul Preto AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 43 Como lembrar todos os comandos? Comando help e o nome da função AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 44 Histogramas hist(y,x) 500 pontos com distribuição normal (0,1) AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano Randn(linhas, colunas) 45 Gráficos em 3D - Plot3 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 46 Gráficos em 3D - Mesh É necessário criar uma grade de pontos Função Gerador do gráfico AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 47 Outro Exemplo Ponto flutuante para não zerar a função AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 48 Gráficos 3D - Surf A função colormap é um mapa d cores fortes de f t e fracas, f indicando i di d regiões de pouca ou muita variação. AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 49 Usando o Shading Interp Apaga as linhas do Meshgrid AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 50 Rotacionando um gráfico (Rotate 3D) AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 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) AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 52 Editando Programa em M-file •O que é M-File? - Arquivo construído fora do comando de linha - Armazenado A d 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 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 53 A Janela do M-File Abre uma janela de editoração AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 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 AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 55 Programa da Soma •O procedimento da programação é o mesmo do comando de linha •O O programa precisa i ser salvo l em algum l ““path” th” no b botão tã “fil “file”” •Depois de salvo é só rodar o programa AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 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” AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 57 Cuidado Importante! •Acertar o path -Antes de rodar o programa, o “path” do Matlab tem que estar posicionado i i d no di diretório ó i correto. Di Diretório ó i correto é onde d se encontra o programa. Veja a figura abaixo, onde se altera o programa. -Basta Basta clicar nos pontos e procurar o diretório AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 58 Exemplo •Ao clicar no botão - Aparecerá a tela abaixo com todos os diretórios. Procure onde está o di ó i do diretório d programa. Clique Cli nele l e “ok”. “ k” AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 59 Algoritmos •O 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 g avisa - Esse erro o programa - Exemplo: O correto t era SQRT (raiz ( i quadrada) d d ) e não ã SQR AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 60 Programação de fórmulas •Forma de programação mais simples •Necessita apenas da entrada das variáveis •Como Como programar a seguinte fórmula? z = xy + 4 x − 3 y + xy •Alguns passos de lógica devem ser seguidos AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 61 A Resolução •Primeira pergunta: O que o computador precisa para resolver? z = xy + 4 x − 3 y + xy a) precisa de x? Sim. b) precisa de y? Sim. c) precisa de z? Não. • A variável x é uma entrada do programa. p g • A variável y é outra entrada do programa. • A variável z é a saída do programa ( o resultado ) AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 62 Passos Lógicos z = xy + 4 x − 3 y + xy 1. 2. 3. Entre com o valor de x. O apóstrofe indica mensagem de texto Entre com o valor de y. Faça o computador mostrar a saída z. 4. O comando “input” é um comando de leitura de variável. AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 63 A execução z = xy + 4 x − 3 y + xy •As mensagens aparecem no comando de linha do matlab •É só p preencher,, clicar em “enter” e observar a saída. •Primeira entrada •Segunda entrada •Saída (resposta) AULA 1 - Prof. Dr. Marco Antonio Leonel Caetano 64