1. Fundamentos
A =
1 2 3
4 5 6
7 8 9
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
1
4 5 6 11
7 8 9 12
Se A = [ 1 2
3 4]
1
3
variável = expressão
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:
2
1.5 Números e expressões aritméticas
s = 1/0 produz
Divisão por zero
s =
inf
s = 0/0 produz
s =
NaN
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:
3
format + ++
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.
2.1 Transposição.
A = [ 1 2 ; 3 4 ]
B = A'
produz
A = 1 2 B = 1 3
3 4 2 4
C = A + B
produz
C = 2 5
5 8
C = 2 + A
produz
C = 3 4
5 6
4
2.3 Multiplicação de Matrizes (*)
3.14 * A
produz
ans = -3.14
0
6.28
expm(A) eA
logm(A) log A
sqrtm(A)
poly polinomio caracteristico
det determinante
trace traço (soma dos elementos da diagonal)
kron delta de Kronecker
5
3.4 Operações relacionais.
& And
| Or
~ Not
abs, angle, sqrt, real, imag, round, fix, floor, ceil, sign, ...
6
3.7 Funções matemáticas especiais.
bessel
gamma
rat aproximação racional.
erf error function
inverf
X = inicio:incremento:fim
Exemplos:
x = 0:pi/4:pi produzx= 0.0 0.78 1.57 2.35 3.14
y = 6:-1:1 produzy= 6 5 4 3 2 1
z = 1:5 produzz= 1 2 3 4 5
(incremento foi omitido)
Exercício: x = (0.0:0.2:3.0)';
y = exp(-x).* sin(x);
[ x y ]
produzans = 0 0
0.2 0.16
: :
4.2 Subscritos
Exercício:
B(:,[3 5 10]) = A(:,1:3) copia as 3 colunas de A nas colunas 3, 5 e 10 de
B.
v=2:2:6;
w=[3 1 4 1 6];
7
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.
Exercício:
ones(3), ones([1 2]), ones([ 1 2; 3 4])
8
eye(5)
rand(4)
produz
C = A eye(4)
ones(A) A^2
5 Análise de Dados
6. Funções de Matrizes
Fatoração Triangular
Fatoração Ortogonal
Decomposição em Autovalores
9
Decomposição em Autovetores
y = L\b; x =U\y
6.4 Autovalores
10
rcond estimativa da condição.
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
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)
11
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
Tipo de Linha
sólida-
tracejada --
pontilhada :
mista -.
Tipo de Marca
ponto .
circulo o
marca-x x
sinal + +
sinal * *
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
verde g
azul b
brancow
preto k
[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.
12
for i=1:n, x(i)=0, end
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
n = 1;
while prod(1:n) < 1.e100, n=n+1; end
n
while expressão
comandos
end
10.3 IF e BREAK
if n < 0
A = negative(n)
13
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
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)
Exemplo:
function y=mean(x)
[m,n] = size(x);
14
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.
12 Arquivos
15
texto. (Por default gera um arquivo de nome diary na area do usuario).
* O comando diary pode ser usado para salvar pequenas matrizes, que podem ser
recuperadas com um editor de texto qualquer.
16
MATLAB Exercícios
1 - Fundamentos
17
3. Usando a matriz A do exercício 1, calcule A^p para p
inteiro e fracionario.
18
5. Execute C = [A eye(4); ones(A) A^2] onde A=magic(4).
6 - Funções de Matrizes
8 - Função FUNÇÃO
19
1.
10 - Controle de Fluxo
20
11 - M-files, scripts e Funções
21
com distribuição normal.
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)
22
isto no manual do MATLAB.
23