matlab - matrix laboratory matlab - matrix laboratory adaptado de profa. carla salso freitas e...
TRANSCRIPT
MATLAB - MATLAB - Matrix LaboratoryMatrix LaboratoryAdaptado de Profa. Carla Salso Freitas
e profa. Luciana NedelPor Profa. Patrícia Jaques
2
MATLABMATLAB
• Software para análise numérica• Problemas expressos numa forma mais próxima da
notação matemática• Interpreta comandos do usuário dados na janela de
comando. Experimente: >>sqrt(64) • Elemento básico de informação: MATRIZ• Ótima performance• Alto nível
3
Pacotes científicosPacotes científicos
• MATLAB (www.mathworks.com)– linguagem de programação– ambiente para desenvolvimento– sistema gráfico– funções matemáticas
4
IntroduçãoIntrodução
• Trabalha apenas com um tipo de objeto: Matrizes• ex: a= 6
• Vetores são matrizes 1xN ou Nx1 ex: A=[1,2,3]• Entrando com uma matriz (3 maneiras):
>>A = [1 2 3
4 5 6
7 8 9]
>>A = [1 2 3;4 5 6;6 7 8] através de um arquivo
(ex: gera.m)
>>gera
5
MatrizMatriz
• A = [1 2 3; 4 5 6;7 8 9]
1 2 3
4 5 6
7 8 9
Diferencia maiúsculas de minúsculas!
6
IntroduçãoIntrodução
• Se no final da linha for colocado um “;”, o Matlab executa o comando mas não mostra o resultado
>>A = [1 2 3;4 5 6;7 8 9]>>B = [1 2 3;4 5 6;7 8 9];
• Elementos das matrizes podem ser uma expressão>>x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2]resulta em: x = -1.3000 1.4142 23.0400
• Elementos são referenciados por índices entre parênteses: x(1) = 5
resulta em: x = 5 1.4142 23.0400Índices começam em 1
7
Acessando um elemento da MatrizAcessando um elemento da Matriz
• A = [1 2 3; 4 5 6;7 8 9]
1 2 3
4 5 6
7 8 9
1 2 3
1
2
3
1
2
3
4
5
6
7
8
9
A(2,1)=10
A(2)=1010
linhacolun
a
8
IntroduçãoIntrodução
• Grandes matrizes podem ser geradas a partir de pequenas:>> r=[10 11 12];O comando abaixo anexa à matriz A o vetor r
>> A = [1 2 3;4 5 6;7 8 9]
>>Y=[A;r]Y=
1 2 34 5 67 8 910 11 12
A
r
9
IntroduçãoIntrodução
• Pequenas matrizes podem ser extraídas de grandes matrizes usando “:”(deLinha:ateLinha,deColuna:ateColuna)>>J=Y(1:3,:)
a partir da linha 1, seleciona 3 linhas e todas as colunas
A=1 2 34 5 67 8 9
10 11 12
k=Y(1:2,3:3)SELECIONA AS LINHAS DE 1 A 2 E A COLUNA 3
10
Variáveis e informações da área de trabalhoVariáveis e informações da área de trabalho
• Variáveis são declaradas na forma:– variável = expressão– “ans” (answer) variável default caso um nome seja
omitido.
11
Variáveis e informações da área de trabalhoVariáveis e informações da área de trabalho
• O comando “who” lista as variáveis da área de trabalho
• “whos” mostra detalhes sobre as variáveis• clear;• clear var;
• Teclas para retomar comandos digitados anteriormente
12
Números e expressões aritméticasNúmeros e expressões aritméticas
• Notação decimal convencional• Ex:
3 -99 0.000019.6374586 1.602E-20 6.06375e23
• Operadores:^ exponenciação/ divisão à direita\ divisão à esquerda* multiplicação+ adição- subtração
13
Formatos de saídaFormatos de saída
• O comando format modifica o modo como os valores são mostrados
• formatshort (default) 1.3333short e 1.3333e+000long 1.33333333333333long e 1.33333333333333e+000hex 40040000000000000rat 4/3bank 1.33
• Exemplo: • >>a=2/3• >>format bank• >>a
14
HelpHelp
• O comando de ajuda “help” fornece informações sobre os tópicos
• help <tópico> -> mostra comandos relacionados ao tópico
• help <comando> -> mostra detalhes sobre o comando
• Exemplo:• >> help format
• Look for parteDoComando (usado qdo nao se sabe o nome exato do comando)
15
Operacões com matrizesOperacões com matrizes
• Transposta indicada pelo caracter apóstrofo '.A=[1 2 3;4 5 6;7 8 9];B=A'B= 1 4 7 2 5 8 3 6 9
• http://pt.wikipedia.org/wiki/Determinante• det(A)
– Determinante da matriz A.• inv(A)
– Inversa da matriz A
1 2 34 5 67 8 9
1 4 72 5 83 6 9
A A’
16
Operações com matrizesOperações com matrizes
• Adição e subtração indicada pelos sinais “+” e “-” respectivamente.
C=A+B;
• Essas operações só são definidas para matrizes com a mesma dimensão.
• B=A+A’
1 2 34 5 67 8 9
1 4 72 5 83 6 9
A A’
+2 6 106 10 1410 14 18
B
=
17
Operações com matrizesOperações com matrizes
• Multiplicação indicada por “*”.• Só é válida quando a 2a. dimensão da 1a. matriz for
igual a 1a. dimensão da 2a. matriz.• mxn e nxp
• Ex: >> A*B
18
Operações com matrizesOperações com matrizes
• A multiplicação de escalar por matriz e vice-versa também é válida.
• Ex: >> B=2*A
1 2 34 5 67 8 9
2 4 68 10 1214 16 18
A B
=2*
19
Operações com conjuntosOperações com conjuntos
• São operações aritméticas realizadas elemento por elemento da matriz.
• Usa-se os mesmos caracteres das operações usuais precedidos por um ponto (“.*”, “./”, “.\”, “.^”)
• Exemplo:• Crie duas matrizes quadradas a e b• Faça:• >>a*b (multiplica as matrizes)• >>a.*b (multiplica os elementos da mesma posicao)
20
Manipulação de vetores e matrizesManipulação de vetores e matrizes
• Gerando vetores: a declaração • >>x = 1:5 • gera o vetor linha • x = 1 2 3 4 5 . (incremento de 1)
21
Manipulação de vetores e matrizes Manipulação de vetores e matrizes
• Elementos das matrizes: utiliza-se índices entre parênteses.– >>– >>A(3,3) = A(1,3) + A(3,1)
A = 1 2 3 4 5 6 7 8 10
– A(2,1) = 4– A(1:2, 2:3) = 0 elementos A(1,2), A(1,3), A(2,2), A(2,3) são
zerados.– A(:,3) = 0 elementos da terceira coluna são zerados.– A(1:2,3) especifica uma submatriz 2x1 com os 2 primeiros
elementos da terceira coluna de A resposta (MATRIZ ORIGINAL): 3
6
22
Funções EscalaresFunções Escalares
• As funções escalares mais comuns são:
– sin - seno – asin - arcoseno – abs - valor absoluto – round - arredonda – cos - cosseno – acos - arco cosseno – log - log natural
– sqrt - raíz quadrada – floor - arredonda na direção
de menos infinito – tan - tangente – atan - arco tangente – rem - resto da divisão
ex: rem(10,3)– sign - função sinal – ceil - arredonda na direção
de mais infinito
23
Funções VetoriaisFunções Vetoriais
• Outros exemplos de funções vetoriais são:
– max(a) encontra o valor máximo– sum(a) soma os elementos– median(a) mediana – any(a) true se existe um elemento diferente de zero– min(a) menor valor– prod(a) produto dos elementos – all(a) true se todos os elementos são diferentes de zero– sort(a) ordena em ordem crescente
• Exemplo:
– max(a)
24
Arquivos mArquivos m
• são arquivos que contém comandos do MATLAB• 2 passos:
– criar arquivo .m usando um editor de texto ou: • edit nome do arquivo ou File New M-File• digitar código do script.• File Save As - escolher diretório corrente ou que esteja
presente no search path do MATLAB.– chamar o arquivo m da linha de comando, ou de outro
arquivo m.• nome do arquivo
25
Controle de fluxoControle de fluxo
Laço for>> for i=1:5
x(i)=i^2;end
x = 1 4 9 16 25
>> for i=1:5 for j=1:5
a(i,j)=i+j; b(i,j)=i-j;
end end
c=a+b;
b = 0 -1 -2 -3 -4 1 0 -1 -2 -3 2 1 0 -1 -2 3 2 1 0 -1 4 3 2 1 0
a = 2 3 4 5 6 3 4 5 6 7 4 5 6 7 8
5 6 7 8 9 6 7 8 9 10
26
Controle de fluxoControle de fluxo
• Laço whilea = 1; b = 15;
while a<b clc ; a = a+1; b = b-1 ; end disp(‘fim do loop’)
• if for i = 1:5 for j = 1:5 if i == j A(i,j) = 2; else if abs(i-j) == 1 A(i,j) = -1; else A(i,j) = 0; end end endend
27
Arquivos mArquivos m
• Exemplo 1 script– criar arquivo– digitar código
• clear• clc• A = [1 2 3; 4 5 6; 7 8 9]• B = A’
– salvar como inicio.m– executar na janela do MatLab
• >> inicio
• Comentários:– % comentário de linha– texto apos o % na mesma linha não será executado
28
Outros comandosOutros comandos
• Entrada de dados: Receber um dado numérico do usuário– <variável> = input('<mensagem>');– Exemplo:
• n1 = input('Digite um numero: ')• Entrada de dados: Receber um dado texto do usuário
– <variável> = input('<mensagem>', 's')– Exemplo:
• n1 = input('Digite seu nome: ', 's')• Mostrar um texto ou conteúdo de uma variável:
– disp('<mensagem>');– Exemplo:
• disp('Total calculado: ');• disp(soma);
• Limpar a tela– Exemplo:
• clc;
» n1=input ('digite seu nome ', 's');Vania» fprintf (1, 'Oi %s', n1)Oi Vania»
Exercicios Parte IIExercicios Parte II
30
Resolvendo Equações PolinomiaisResolvendo Equações Polinomiais
• Achar raízes de um polinômio:• 4x²=0 tem duas raízes nulas.
– >>p=[4 0 0]– >>r=roots(p)
• 4x²+5=0 não tem raízes reais.– >>p=[4 0 5]– >>r=roots(p)
• 4x²-12x=0 tem duas raízes reais: x'=3, x"=0– >>p=[4 -12 0]– >>r=roots(p)
r = 0 0
r = 0 + 1.1180i 0 - 1.1180i
r = 0 3
31
Resolvendo Equações PolinomiaisResolvendo Equações Polinomiais
• x4 - 12x3 + 0x2 + 25x + 116=0>>p=[1 -12 0 25 116]r=roots (p)
r = 11.7473 2.7028 -1.2251 + 1.4672i -1.2251 - 1.4672i
• Construir polinômio a partir de suas raízes:>> pp = poly(r)pp = 1.0000 -12.0000 -0.0000 25.0000 116.0000
32
AtividadeAtividade
• Exemplo: – f(x) = 3*x^4-0.5.*x^3+x-5.2 (x assume valores escalares)
• p = [3 -0.5 0 1 -5.2];• f = polyval(p,x);
• Digitar estes comandos e observar a saída:– p=[1 4 -7 -10];– x = linspace(-1,3); % gera 100 ptos entre -1 e 3– v=polyval(p,x) % gera f(x) para cada x contido no vetor x– plot(x,v); title('Figure 19: x{^3} + 4x{^2} - 7x - 10');xlabel('x')