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
Download

AULA 1