Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducaoao Matlab
Introducaoao Matlab
Afonso Paiva
ICMC-USP
MATrix LABoratory um software para computao cientfica resolve numericamente problemas matemticos de forma rpida e eficiente possui uma famlia de pacotes especficos (toolboxes):
otimizao redes neurais processamento de imagens simulao de sistemas, etc.
O que o MATLAB?
workspace
diretrios
histrico
janela de comandos
Anatomia da interface
Variveis no MATLAB
variveis so alocadas na memria ao serem declaradas nomes de variveis so sensveis a letras maisculas e minsculas vetores e matrizes devem ser declarados entre [ ] elementos de uma mesma linha numa matriz so separados por espao(s) ou vrgula ponto-e-vrgula(;) indica o final de uma linha de uma matriz ou expresso
Vetor linha:
>> A = [1 2 3 4];
Vetor coluna:
>> B = [1; 2; 3; 4]; % ou >> B = A';
Exemplos
Matriz:
>> A = [1 2 3; 4 5 6; 7 8 9]
1 2 3 A= 4 5 6 7 8 9 1 4 7 B= 2 5 8 3 6 9
Matriz transposta:
>> B = A'
Exemplos
Smbolo + * / ^
Operadores matemticos
1 2 A= 3 4
5 6 B= 7 8
>> C2 = A*B C2= 19 22 43 50 >> C3 = A/B % = A*inv(B)
C3= 3.0000 -2.0000 2.0000 -1.0000
>> C0 = A+B
C0 = 6 8 10 12
>> C1 = A-B
C1= -4 -4 -4 -4
Exemplos
Smbolo .* ./ .^
Operadores ponto-a-ponto
1 2 A= 3 4
5 6 B= 7 8
>> C2 = A.^B C2= 1 64 2187 65536 >> C3 = A.^3
C3= 1 8 27 64
>> C0 = A.*B
C0 = 5 12 21 32
>> C1 = A./B
C1= 0.2000 0.3333 0.4286 0.5000
Exemplos
ou
>> A = 1:9
>> v=[2:2:10]
v= 2 4 6 8 10
Exemplos
>> A (3)
1 2 3 B= 4 5 6 7 8 9
>> B (2,3)
ans= 6
Manipulao de matrizes
Manipulao de matrizes
Manipulao de matrizes
Manipulao de matrizes
1 2 3 A= 4 5 6 7 8 9
>> B = A(1:2,2:3) % ou B = A([1 2],[2 3]) B= 2 5 3 6
Manipulao de matrizes
1 2 3 A= 4 5 6 7 8 9
>>d =diag(A)
d= 1 5 9
Manipulao de matrizes
% numero de colunas
>> length(A) % retorna o numero de linhas ou de colunas ans = 4 >> v= 1:7; >> size(v) ans = 1 7
% nmero de colunas
Comando
det(A) [V,D] = eig(A) inv(A) rank(A) max(A) min(A) norm(A,1) norm(A, 'fro') norm(A,inf)
Descrio
calcula o determinante da matriz determina os autovetores e autovalores de A calcula a inversa da matriz determina o posto linha ou coluna de A retorna um vetor com o mximo de cada coluna A retorna um vetor com o mnimo de cada coluna A calcula a norma coluna calcula a norma de Frobenius calcula a norma linha
Funes matriciais
>> A = [ 1 7 3; -6 2 1; 9 2 -2]; >> det(A) ans = -117 >> I = inv(A) I= 0.0513 -0.1709 -0.0085 0.0256 0.2479 0.1624 0.2564 -0.5214 -0.3761 >> max(A) ans = 9 7 3
>> norm(A,1) ans = 16 >> norm(A,inf) ans = 13 >> norm(A,' fro ') ans = 13.7477
Exemplos
Comando
A = rand(m,n) A = eye(n) A= ones(m,n) A= zeros(m,n)
Descrio
gera matriz com elementos aleatrios gera matriz identidade gera matriz com todos elementos iguais a 1 gera matriz com todos elementos iguais a 0
Matrizes especiais
Funo sin(x) cos(x) tan(x) asin(x) acos(x) atan(x) exp(x) log(x) log10(x)
Descrio seno cosseno tangente arco-seno arco-cosseno arco-tangente exponencial logaritmo natural logaritmo na base 10
Funo abs(x) ceil(x) floor(x) round(x) sign(x) sqrt(x) gcd(x,y) lcm(x,y) rem(x,y)
Descrio valor absoluto arredondamento na direo de mais infinito arredondamento na direo de menos infinito arredondamento para o inteiro mais prximo funo sinal raiz quadrada mximo divisor comum dos inteiros x e y mnimo mltiplo comum dos inteiros x e y resto da diviso de x por y
Valor varivel padro usada para resultados 3.14159 26535... preciso de mquina infinito not a number menor nmero de ponto flutuante maior nmero de ponto flutuante unidade imaginria ( i= j=
1 )
Variveis especiais
Workspace do MATLAB
Comando
format short format long format short e format long e format short g format long g format hex format bank format rat 50.833
Exemplo
50.83333333333334 5.0833e+01 5.083333333333334e+01 50.833 50.83333333333333 40496aaaaaaaaaab 50.83 305/6
Observaes
5 dgitos 16 dgitos 5 dgitos+expoente 16 dgitos+expoente melhor entre short - short e melhor entre long - long e hexadecimal 2 dgitos decimais aproximao racional
Para mudar o padro de formato de nmeros no MATLAB, basta ir em File > Preferences.
Formatos de nmeros
Parte real de z
Parte imaginria de z
Nmeros complexos
Mdulo de z
Argumento de z
Complexo conjugado
Nmeros complexos
A x = b
Como encontrar a soluo x no MATLAB?
Sistemas lineares
= x A b
>> A = [ 1 2 3; 4 5 6; 7 8 0]; >> det(A) %primeiro vamos ver se o sistema tem soluo nica ans = 27 >> b = [366; 804;351]; >> x = inv(A)*b x= 25.0000 22.0000 99.0000
Sistemas lineares
Outra maneira utilizar a decomposio LU, representada no MATLAB pelo operador de diviso esquerda (\):
Sistemas lineares
No MATLAB , um polinmio representado por um vetor linha contendo seus coeficientes em ordem decrescente. Exemplo:
x 4 12 x3 + 25 x + 116
Polinmios
Polinmios
Multiplicando p e pd:
Polinmios
Ajuste de curvas:
x=0:.1*pi:2*pi; x = x'; y = sin(x); p = polyfit(x,y,4) % aproxima o seno por um polinmio de grau 4
Avaliando o polinmio p:
Polinmios
Operadores relacionais
Operadores lgicos
>> 2 + 2 == 4 ans = 1 % verdadeiro >> 10 > 100 ans = 0 % falso >> A = [1 2; 3 4]; >> B = 2*ones(2); >> A == B ans = 0 1 0 0
Exemplos
>> x | y ans = 1 1 0 1
Exemplos
programas muito mais simples: escrita mais rpida e com menos erros versatilidade, mais fcil de adaptar a diferentes tipos de dados agiliza os comandos mais digitados uma linguagem interpretada pode ser criada utilizando qualquer editor de texto possui interface com C/C++
Programao em MATLAB
if : cria caminhos alternativo no programa if ( condio1 ) instrues1 elseif ( condio2 ) instrues2 else instrues3 end
Controladores de fluxo
Exemplo com if: x=rand(1); y=rand(1); if (x < y) disp('y eh maior do que x') else disp('x eh maior do que y') end
Controladores de fluxo
Mais um exemplo com if: x=rand(1); if ( ( x>=1 ) && ( x<=3 ) ) disp('x estah entre 1 e 3') end
Controladores de fluxo
for : permite que um comando ou um grupo de comandos se repitam for varivel = expresso instrues end
Controladores de fluxo
Exemplo com for: n=3; A = zeros(n); for i = 1:n A(i,i) = 2*i; end
Controladores de fluxo
while : permite que um ou mais comandos sejam repetidos enquanto a expresso de controle for verdadeira while ( condio ) instrues end
Controladores de fluxo
Controladores de fluxo
input recebe dados atravs do teclado, que podem ser ou no armazenados em uma varivel break encerra um lao mais interno controlado pelo comando for pause pra a execuo do programa at que uma nova tecla seja pressionada
podemos criar novas funes ou scripts MATLAB possui um editor prprio e um debugger comentrios comeam por % ao se criar uma funo ou script ela dever ser definida no path
Arquivos .m
scripts : executam os argumentos diretamente, automatizando uma srie de comandos funo : argumentos podem ser passados para a funo, havendo uma manipulao de variveis
function [res1,res2,...] = nome_da_funo (arg1,arg2,...) % comentrio para help lista de procedimentos da funo
Arquivos .m
Exemplo de hipotenusa.m:
Scripts
Exemplo de fatorial.m: function f = fatorial(n) % Calcula o fatorial de n f=1; for i=1:n f = f*i; end
Funes
MATLAB Central
http://www.mathworks.com/matlabcentral
Repositrio de arquivos .m
Grficos no MATLAB
>> >> >> >> >> >> >> >> >> >> >> >>
Grficos 2D
>> >> >> >> >> >> >> >> >> >> >> >>
Grficos 2D
Grfico de torta
>> pie(x,x==max(x));
Grficos 2D
Smbolo r g b c m y k w
Smbolo . o x + * s d ^ p h
Smbolo : -. --
Tipo de linha linha contnua linha pontilhada traos e pontos linha tracejada
Grficos 3D
Curvas no espao
>> t = 0:pi/50:10*pi; >> plot3(sin(t),cos(t),t)
Faixas no espao
>> x=linspace(0,2*pi,30); >> ribbon(x,sin(x))
Grficos 3D
Superfcies
[X,Y] =meshgrid(-8:0.5:8,-8:0.5:8); r =sqrt(X.^2+Y.^2)+eps; Z = sin(r)./r; subplot(221) mesh(X,Y,Z); subplot(222) surf(X,Y,Z); subplot(223) hold on mesh(X,Y,Z); meshc(X,Y,Z) hold off subplot(224) contour(X,Y,Z)
>> >> >> >> >> >> >> >> >> >> >> >> >> >>
Grficos 3D
http://www.mathworks.com/access/helpdesk/help/techdoc /ref/ref.shtml
http://www.mathworks.com/access/helpdesk/help/techdoc /matlab.shtml