MATLAB
BÁSICO
Prof.
Alberto Adade Filho (ITA/CTA)
16. Funções Matemáticas do MATLAB |
i. Elemento a Elemento |
Certas funções do MATLAB operam essencialmente sobre escalares mas operam sobre cada elemento quando aplicados a uma matriz. Entre as mais comuns estão:
abs - valor absoluto ou magnitude do complexo
sqrt - raiz quadrada
real - parte real
imag - parte imaginária
conj - complexo conjugado
gcd - maior divisor comum
lcm - mínimo múltiplo comum
rem - calcula o resto de uma divisão
round - arredonda para o inteiro mais próximo
fix - arredonda para menor (em direção a zero)
floor - arredonda em direção a -¥
ceil - arredonda para maior (em direção a +¥ )
rat - aproximação racional
sin , sinh - seno, seno hiperbólico
cos , cosh - coseno, coseno hiperbólico
tan , tanh - tangente, tangente hiperbólica
asin , asinh - arco seno, arco seno hiperbólico
acos , acosh - arco coseno, arco coseno hiperbólico
atan2 - arco tangente nos quatro quadrantes
exp - exponencial (base e)
log - logarítmo natural
log10 - logarítmo base 10
sign - função sinal (retorna 1, -1 ou 0, se o argumento for positivo, negativo ou igual a zero, respectivamente)
Exs.
A = [ 1 2 3; 4 5 6]
B = fix(pi*A)
B =
3 6 9
12 15 18
C = cos(pi*B)
C =
-1 1 -1
1 -1 1
[round(-2.3) fix(-2.3) floor(-2.3) ceil(-2.3) ]
ans =
-2 -2 -3 -2
ii. Vetores |
Outras funções operam essencialmente sobre vetores, mas se o argumento for uma matriz elas atuam a cada coluna, produzindo um vetor linha com os resultados de sua aplicação.
max - maior valor
min - menor valor
mean - média (valor médio)
std - desvio padrão
sum - soma dos elementos
prod - produto dos elementos
sort - classifica em ordem crescente
Ex.
A = [ 1 2 3; 4 5 6; 7 8 0 ];
mean(A)
ans =
4 5 3
Algumas funções lógicas e relacionais mais comuns são:
any - any(x) retorna 1 se qualquer dos elementos do vetor x for não nulo e 0 caso contrário.
all - all(x) retorna 1 se todos os elementos de x forem diferentes de zero.
find - find(x) retorna os índices dos elementos não nulos de x.
OBS. Se x for uma matriz, retorna os índices dos elementos não nulos empilhando x por coluna. |
finite - finite(x) retorna 1s para os elementos de x que forem finitos.
isnan - isnan(x) retorna 1s para os elementos de x que forem NaN.
isinf - isinf(x) retorna 1s para os elementos de x que forem ¥ .
OBS 1. Redução à uma condição escalar sobre uma matriz pode ser realizada como no seguinte exemplo: any(any(x)). |
OBS 2. Operação a cada linha (em vez de a cada coluna) pode ser obtida com o uso de transpostas, por exemplo, mean(x). |
Exs:
a = [ 1 2 3 ] b = [ 1 4 6]
find (b>2)
ans =
2 3
finite(a)
ans =
1 1 1
iii. Funções de Matrizes |
O poderio do MATLAB assenta-se sobre o grande número de funções disponíveis para argumentos do tipo matriz. Algumas das mais úteis estão relacionadas a seguir.
inv - inversa
det - determinante
size - retorna as dimensões da matriz
norm - norma (norma-1, norma-2, norma-F, norma-¥ )
rank - determina o posto
cond - determina o número de condição da matriz (medida quantitativa de quão mal condicionada é a matriz)
eig - calcula autovalores e autovetores
svd - calcula decomposição em valores singulares
poly - retorna coeficientes do polinômio característico
qr - fatoração QR
rref - forma escalonada por linha (row echelon) reduzida
expm - exponencial de matriz
sqrtm - raiz quadrada de matriz
Algumas funções pedem múltiplos argumentos de entrada, por exemplo,
teta = atan2 (v,u)
Outras retornam dois ou mais valores de saída, por exemplo,
[V,D] = eig(A)
retorna uma matriz D diagonal com os autovalores de A na diagonal principal, e a matriz V de autovetores normalizados, correspondentes aos autovalores de A.
A = [ 1 2 3; 4 5 6; 7 8 0]
[V,D] = eig(A)
V =
1.0000 0.4238 -0.3142
-0.8810 1.0000 -0.4418
0.1246 0.9046 1.0000
D =
-0.3884 0.0000 0.0000
0.0000 12.1229 0.0000
0.0000 0.0000 -5.7345
Outro exemplo é,
[y,k] = max(X)
que retorna o valor máximo y encontrado no vetor X e o índice k do elemento correspondente. Outro exemplo ainda é,
[m,n] = size(A)
que retorna as dimensões m (linhas) e n (colunas) da matriz A.
É interessante notar que algumas dessas funções podem ser usadas com menos variáveis de saída. Por exemplo,
z = eig(A)
retorna um vetor coluna z contendo os autovalores de A.
Ao concluir esta seção, acrescenta-se que o MATLAB Básico possui um conjunto bem extenso (vide Anexo) de funções nas categorias: matemática elementar, construção de matrizes, cálculo matricial, análise de dados, decomposições e fatorações de matrizes, polinomiais, processamento de sinais. Essas funções são fornecidas como funções intrínsecas ou como M-files. Toolboxes especializados ampliam esses recursos e o usuário também pode criar novas funções.