Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Fundamentos
O MATLAB trabalha com um unico tipo de dado, que é a matriz retangular de números
reais ou complexos. Em particular estas matrizes podem ser somente uma coluna ou
uma linha, ou seja, vetores.
1.1 Entrando matrizes simples
A = [ 1 2 3
4 5 6
7 8 9 ]
Se r = [ 10 11 12 ], fazendo A = [A ; r ] produz
A =
1 2 3
4 5 6
7 8 9
10 11 12
A =
1 2 3 10
4 5 6 11
7 8 9 12
Se A = [ 1 2
3 4]
1
1
3
1.3 Comandos e Variáveis
ou simplesmente,
expressão
Para evitar que uma expressão seja mostrada na tela sempre que for avaliada,
acrescente ao final da expressão ';' (ponto-e-vírgula).
Quando o comando não couber em uma linha, basta colocar '...' (tres pontos)
e continuar na outra linha. Exemplo:
Nomes de variáveis e funções são formados por letra seguido de até 18 letras
ou números. Letras minúsculas são diferentes de letras maiúsculas, de modo que a
variável 'a' é diferente da variàvel 'A'.
1.4 Obtendo informações do espaço de trabalho
O comando who mostra quais variáveis foram definidas durante a sessão. O comando
whos mostra as seguintes informações:
Name Size Total Complex Sparsity
A 3 by 3 9 No Full
ans 1 by 1 1 No Full
Grand Total is (10*8) = 80 bytes
s = 1/0 produz
2
Divisão por zero
s =
inf
s = 0/0 produz
s =
NaN
1.6 Números e matrizes complexas
A = [ 1 2; 3 4] + i*[5 6; 7 8]
ou
A = [1+5*i 2+6*i; 3+7*i 4+8*i ] (Não tem espaço em branco entre os digitos
de um numero)
O comando format permite mudar a forma como os números de uma matriz são
mostrados na tela. (Não é alterado a representação interna, que está sempre em precisão
dupla). Se todos os elementos da matriz são inteiros exatos não é mostrado nenhuma
casa decimal.
Os formatos possíveis para x = [4/3 1.2345e-6] são:
Para sair do MATLAB digite quit ou exit. Neste caso para salvar todas as
variáveis do espaço de trabalho, digite save e será gerado um arquivo matlab.dat,
que pode ser recuperado na proxima seção com o comando load. Para salvar em (ou carregar
de) outro arquivo digite save arquivo (ou load arquivo). Para salvar apenas a variável
X no arquivo temp digite save temp X.
3
2. Operações com matrizes.
2.1 Transposição.
A = [ 1 2 ; 3 4 ]
B = A'
produz
A = 1 2 B = 1 3
3 4 2 4
2.2 Adição e Subtração (+,-)
C = A + B
produz
C = 2 5
5 8
Estas operações também podem ser aplicadas no caso de escalares, e neste caso
o escalar é somado ou subtraído de cada elemento da matriz.
C = 2 + A
produz
C = 3 4
5 6
2.3 Multiplicação de Matrizes (*)
3.14 * A
produz
ans = -3.14
0
6.28
2.4 Divisão de Matrizes (/,\)
expm(A) eA
logm(A) log A
sqrtm(A)
poly polinomio caracteristico
4
det determinante
trace traço (soma dos elementos da diagonal)
kron delta de Kronecker
3 Operações com Array
A comparação produz uma matriz de 0 e 1, que pode ser melhor visualizada usando
o format +.
3.5 Operadores Logicos
& And
| Or
~ Not
5
isglobal detecta variáveis globais.
3.6 Funções Matematicas Elementares
abs, angle, sqrt, real, imag, round, fix, floor, ceil, sign, ...
3.7 Funções matemáticas especiais.
bessel
gamma
rat aproximação racional.
erf error function
inverf
4. Manipulação de Matrizes e Vetores.
X = inicio:incremento:fim
Exemplos:
x = 0:pi/4:pi produz x= 0.0 0.78 1.57 2.35 3.14
y = 6:-1:1 produz y= 6 5 4 3 2 1
z = 1:5 produz z= 1 2 3 4 5
(incremento foi omitido)
Exercício: x = (0.0:0.2:3.0)';
y = exp(-x).* sin(x);
[ x y ]
produz ans = 0 0
0.2 0.16
: :
Exercício:
B(:,[3 5 10]) = A(:,1:3) copia as 3 colunas de A nas colunas 3, 5 e 10 de B.
6
A(:,n:-1:1) reverte as colunas de A.
v=2:2:6;
w=[3 1 4 1 6];
A(v,w)
A=[1 2; 3 4; 5 6]
b=A(:)
produz
A = 1 2 b = 1
3 4 2
5 6 3
4
5
6
Exercício: explicar
L = X(:,3) > 100; compara cada elemento da coluna 3 com 100 e devolve 1 se
é verdadeiro ou 0 caso contrario.
X = X(L,:); coloca em X as linhas cuja terceira coluna seja maior que 100.
4.4 Matrizes Vazias
X = [] x tem dimensão 0x0. Não ocupa espaço de memória. Estas matrizes existem
no workspace e podem ser testados com a função exist.
É útil para remover linhas e colunas de uma matriz. Exemplo: A(:,[2 4])=[]
deleta as colunas 2 e 4 da matriz A.
4.5 Matrizes especiais. (utilizadas em Algebra LInear).
Exercício:
ones(3), ones([1 2]), ones([ 1 2; 3 4])
eye(5)
rand(4)
4.6 Construindo matrizes maiores.
7
C = [A eye(4); ones(A) A^2]
produz
C = A eye(4)
ones(A) A^2
4.7 Manipulação de Matrizes.
Funções de Matrizes são que tem como argumento matrizes e retornam matrizes
como resultado de alguma operação. Algumas destas funções estão baseadas no LINPACK
e EISPACK. Estão divididas em quatro grupos:
Fatoração Triangular
Fatoração Ortogonal
Decomposição em Autovalores
Decomposição em Autovetores
6.1 Fatoração Triangular (Fatoração LU)
Decompor uma matriz quadrada como o produto de duas matrizes (uma permutação
de uma trinagular inferior e outra uma matriz triangular superior). Estas matrizes
são usadas como base para a solução de sistemas de equações lineares.
Dado o sistema Ax= b então x = A\b. Usando a decomposição LU o mesmo sistema linear
8
de equações é resolvido como:
y = L\b; x =U\y
6.2 Fatoração Ortogonal (Fatoração QR)
8. Função FUNÇÃO
Uma função FUNÇÃO é uma função que pode ser aplicada à outra função matemática.
Uma função matemática pode ser representada em MATLAB, por exemplo:
function y = forca(x)
y = sin(x .^ 2) + cos(x) .^ 2;
Integração Numérica:
quad Regra de Simpson quad('forca',0,1)
quad8 Regra de Newton
9
fmin minimo de uma função de 1 variável.
fmins minimo de uma função de várias variáveis.
fsolve solução de um sistema de equações não-lineares.
fzero zero de uma função de uma variável.
Equações Diferenciais:
ode23 Runge-Kutta de segunda/terceira ordem.
ode45 Runge-Kutta-Fehlberg de quarta/quinta ordem.
9. Gráficos
Y = [ 1 2 5 7 10];
plot(Y)
title('titulo')
xlabel('tempo')
ylabel('forca')
text(5,10,'potencia') coloca a palavra 'potencia' nas coordenadas (5,10)
gtext('potencia') coloca 'potencia' posicionando com o mouse.
grid
As marcas podem ser combinadas com cores para traçar o gráfico. Exemplo:
plot(x,Y,'c+') produz um gráfico na cor cyan com marcas '+'.
Cores
amarelo y
magenta m
cyan c
vermelho r
10
verde g
azul b
branco w
preto k
9.3 Múltiplos Gráficos.
[1] Y é uma matriz e X é um vetor, então plot(X,Y) produz uma curva para cada coluna
de Y e o vetor X com tipo de linha diferente.
[3] Se X e Y são ambas matrizes do mesmo tamanho, então plot(X,Y) produz uma curva
com cada coluna de X versos outra coluna de Y.
for i=1:n
for j=1:n
A(i,j) = 1/(i+j-1);
end
end
A
Seja t = -1
0
1
3
5
n = max(size(t));
for j=1:n
for i=1:n
A(i,j) = t(i)^(n-j);
end
end
for v = expressão
comandos
end
10.2 Comando WHILE
n = 1;
while prod(1:n) < 1.e100, n=n+1; end
11
n
while expressão
comandos
end
10.3 IF e BREAK
if n < 0
A = negative(n)
elseif rem(n,2)==0
A = even(n)
else
A = odd(n)
end
while 1
n = input('Entre n, negativo sai. ');
if n <= 0, break, end
while n > 1
if rem(n,2)==0
n=n/2
else
n=3*n+1
end;
end
end
11. M-Files: Scripts e Funções
Exemplo:
% Calcular números de Fibonacci
f = [ 1 1]; i=1;
while f(i) + f(i+1) < 1000
f(i+2) = f(i) + f(i+1);
i=i+1;
end
plot(f)
11.2 Arquivos de Funções
12
Exemplo:
function y=mean(x)
[m,n] = size(x);
if m==1
m=n;
end
y = sum(x)/m;
Eemplo:
function [mean,stdev] = stat(x)
[m,n] = size(x);
if m==1
m=n;
end
mean = sum(x)/m;
stdev = sqrt(sum(x .^ 2)/m - mean .^ 2);
Observações:
* Quando um arquivo de função é chamado pela primeira vez, os comandos são compilados
e colocados em memória, de modo que estão sempre prontos para executar. E permanecem
assim enquanto durar a sessão MATLAB.
* O comando what mostra todos os M-files que estão disponíveis no diretório corrente.
O comando type mostra o conteudo do arquivo na tela.
13
comandos MATLAB
diary off
12.2 Rodando programas externos.
* O comando diary pode ser usado para salvar pequenas matrizes, que podem ser
recuperadas com um editor de texto qualquer.
14
MATLAB Exercícios
1 - Fundamentos
15
3 - Operações com Array
16
uma função MATLAB ?
6 - Funções de Matrizes
17
5. Com a ajuda dos comandos axis e hold modifique as escalas
em x e y e veja o efeito.
10 - Controle de Fluxo
18
i = find(Y > 8.0);
Y(i) = 10*ones(i)
1 1
f(x) = ----------------- + --------------- - 6
2 2
(x-.3) + 0.01 (x - .9) + 0.04
x=-8:.5:8;
y=x';
X=ones(y)*x;
Y=y*ones(x);
R=sqrt(X .^ 2 + Y .^ 2) + eps;
Z=sin(R) ./ R;
mesh(Z)
19
12. Compare os tempos de execução dos trechos de programa
apresentados na seção 11.6.
20