Introdução ao MATLAB
O MATLAB é um programa cálculo numérico que pode ser usado interactivamente. A sua estrutura de
dados fundamental é a matriz, que pode ter elementos reais ou complexos. Embora na sua versão base o
MATLAB já possua um vasto conjunto de funções de carácter genérico, existem várias bibliotecas de
funções adicionais (designadas por toolboxes) que expandem as suas capacidades em domínios de
aplicação mais específicos.
1. Variáveis e expressões
No MATLAB todas as variáveis são identificadas por um nome que é formado por um ou mais símbolos
alfanuméricos, não podendo o primeiro ser um dígito. É também possível utilizar o símbolo _ como parte
do identificador de uma variável.
Para criar a variável x com o valor 2 podemos escrever:
» x=2
e o MATLAB responde com
x =
2
Para criar a variável y com o valor (complexo) 2+i podemos escrever:
» y =2+i
y =
2.0000 + 1.0000i
Note-se que o MATLAB inicializa as variáveis i e j com a raiz quadrada de –1. Para calcular o valor
z = x ⋅ y − 4 y + y 3 escrevemos:
» z=x*y-4/y+y^3
z =
4.4000 +13.8000i
Para obter informação sobre as operações elementares que podem ser usadas em expressões podemos usar
o comando help ops.
2. Funções
Entre as funções base do MATLAB incluem-se as funções trigonométricas, exponenciais e logarítmicas.
Para determinar o valor de uma função num dado ponto há apenas que indicar qual a função e o ponto em
causa. Assim, se quisermos calcular sin 0.5 teremos simplesmente de escrever:
» sin(0.5)
ao que o MATLAB responde com
ans =
0.4794
Se nada for dito em contrário o MATLAB atribui o resultado da última operação à variável ans. Se
quiséssemos guardar o valor de sin 0.5 na variável a, teríamos de escrever:
(ACM, 1999) FEUP - DEEC
1
Teoria dos Sistemas
» a=sin(0.5);
Uma vez a expressão foi terminada com o carácter ; o MATLAB não mostra o seu resultado (esta
possibilidade é particularmente útil quando estamos a efectuar cálculos intermédios envolvendo grande
quantidade de dados e não necessitamos de saber quais os seus valores).
Para obter uma listagem e descrição das funções elementares do MATLAB usa-se o comando help
elfun.
3. Vectores
A forma mais simples de criar vectores é simplesmente listar os seus elementos. Para tal é apenas
necessário usar os caracteres [ e ] para sinalizar o início e o fim do vector. Criemos então o vector u:
» u=[1 0 3 5 –1 4]
u =
1
0
3
5
-1
4
A criação de vectores de pontos igualmente espaçados é feita de uma forma muito simples. Se quisermos
criar um vector v com pontos de 0 a 10 igualmente espaçados de 2 unidades, fazemos simplesmente:
» v=0:2:10
v =
0
2
4
6
8
10
Se quisermos somar os vectores u e v (podemos fazê-lo pois têm a mesma dimensão) temos simplesmente
de fazer:
» u+v
ans =
1
2
7
11
7
14
Se quisermos multiplicar o vector u por 0.4 temos apenas de fazer:
» 0.4*u
ans =
0.4000
0
1.2000
2.0000
-0.4000
1.6000
Para determinar o valor de uma função em todos os elementos de um vector basta indicar o vector como
argumento da função. Assim se pretendermos calcular a função coseno nos pontos correspondentes aos
elementos do vector v, basta efectuar:
» cos(v)
ans =
1.0000
-0.4161
-0.6536
0.9602
-0.1455
-0.8391
3. Gráficos
Para desenhar um gráfico de uma função real de variável real, teremos de definir dois vectores, um com
os valores da variável independente e outro com os valores da função calculados em cada um desses
pontos. Assim se quisermos desenhar o gráfico da função seno no intervalo [0,10] teremos de definir:
» x=0:0.05:10;
» y=sin(x);
(ACM, 1999) FEUP - DEEC
2
Teoria dos Sistemas
Para desenhar o gráfico usaremos o comando:
» plot(x,y)
Após este comando o MATLAB abre uma janela onde é mostrado o gráfico da função.
O comando help graphics permite listar as funções gráficas disponíveis.
4. Matrizes
O modo mais simples de definir uma matriz é indicando os seus elementos. Estes deverão estar
compreendidos entre os caracteres [ e ] e são listados linha a linha; cada linha da matriz é terminada com
o carácter ; ou com ENTER. Na verdade os vectores (linha) já apresentados não são mais do que matrizes
com apenas uma linha. Criemos então as matrizes A e B:
» A=[0 2 1; 3 4 5]
A =
0
3
2
4
1
5
» B=[0 1 0; 2 3 4]
B =
0
2
1
3
0
4
Se quisermos somar as matrizes A e B faremos simplesmente:
» A+B
ans =
0
5
3
7
1
9
Se quisermos calcular a matriz C = A ⋅ A T devemos fazer:
» C=A*A’
C =
5
13
13
50
Note-se que no caso geral de uma matriz com elementos complexos, o operador apóstrofe fornece a
matriz transposta conjugada. Em tal caso dever-se-á utilizar o operador .’ (ponto-apóstrofe) para
determinar a matriz transposta.
É também possível a partir de duas matrizes de iguais dimensões obter outra cujos elementos sejam os
produtos ou quocientes dos elementos das matrizes originais. Para tal usam-se os operadores .* e ./.
Assim, se quisermos multiplicar a matrizes A e B elemento a elemento:
» A.*B
ans =
0
6
2
12
0
20
A expressão C^3 fornece a potência de ordem 3 da matriz (quadrada) C:
» C^3
(ACM, 1999) FEUP - DEEC
3
Teoria dos Sistemas
ans =
10265
38272
38272
142745
A expressão B.^3 fornece uma matriz com as potências de ordem 3 dos elementos da matriz B:
» B.^3
ans =
0
8
1
27
0
64
Existem operações que permitem seleccionar um ou mais elementos de uma matriz. Por exemplo, o
elemento da linha 2 e coluna 3 da matriz A, obtém-se fazendo:
» A(2,3)
ans =
5
Para obter os elementos da primeira linha de B deve-se fazer:
» B(1,:)
ans =
0
1
0
Para obter os elementos da segunda coluna de A faz-se:
» A(:,2)
ans =
2
4
Para além de todas estas operações sobre matrizes, existe um vasto leque de funções especialmente
dedicadas à manipulação de matrizes. Uma listagem e descrição destas funções pode ser obtida por
intermédio dos comandos help elmat e help matfun. Uma função bastante útil é a função inv
que permite calcular inversa de uma matriz quadrada:
» D=inv(C)
ans =
0.6173
-0.1605
-0.1605
0.0617
A função eig calcula os valores próprios de uma matriz:
» eig(C)
ans =
1.5144
53.4856
Refira-se que esta função permite também obter vectores próprios de uma matriz. Uma descrição
detalhada do seu funcionamento obtém-se fazendo help eig.
A função size retorna um vector (linha) em que o primeiro elemento é o número de linhas e o segundo o
número de colunas de uma matriz passada como argumento:
(ACM, 1999) FEUP - DEEC
4
Teoria dos Sistemas
» size(A)
ans =
2
3
A função eye aceita como argumento um inteiro positivo e retorna a matriz identidade correspondente. A
função zeros retorna uma matriz com todos os elementos nulos e a função ones retorna uma matriz
com todos os elementos iguais a um; em ambas, os argumentos definem os números de linhas e de
colunas da matriz a construir.
5. Polinómios
Embora o MATLAB não permita trabalhar directamente com polinómios, dispõe de um conjunto de
funções dedicadas à manipulação de polinómios. Uma listagem e descrição destas funções pode ser obtida
fazendo help polyfun. No MATLAB um polinómio numa variável, por exemplo, x é representado
por uma vector linha cujos elementos são os coeficientes das sucessivas potências de x, listados da mais
alta potência até ao termo independente. Assim, o polinómio p( x) = x 4 + 10 x 3 + 35 x 2 + 50 x + 24 será
representado por:
» p=[1 10 35 50 24]
p =
1
10
35
50
24
A função roots permite calcular as raízes de um polinómio:
» raizes=roots(p)
raizes =
-4.0000
-3.0000
-2.0000
-1.0000
A função poly permite obter um polinómio a partir de um vector (coluna) com as suas raízes. O
polinómio retornado tem o coeficiente da mais alta potência unitário:
» poly(raizes)
ans =
1
10.0000
35.0000
50.0000
24.0000
Esta função quando aplicada a uma matriz quadrada retorna o seu polinómio característico (sempre com o
coeficiente da mais alta potência unitário). Assim o polinómio característico da matriz C será dado por:
» poly(C)
ans =
1.0000
-55.0000
81.0000
Para somar ou subtrair dois polinómios basta somar os vectores com os respectivos coeficientes. No
entanto estes vectores terão de ter o mesmo número de elementos. Se tal não acontecer ter-se-á de
aumentar o vector de menor dimensão com elementos nulos. Para efectuar a soma r ( x) = p( x ) + q( x) ,
onde q( x) = −10 x 2 + 20 x − 24 , deveremos fazer:
» q=[–10 20 –24];
(ACM, 1999) FEUP - DEEC
5
Teoria dos Sistemas
» r=p+[0 0 q]
r =
1
10
25
70
0
Para multiplicar dois polinómios utiliza-se a função conv. O produto m( x ) = p( x) ⋅ q ( x) determina-se do
seguinte modo:
» m=conv(p,q)
m =
-10
-80
-174
-40
-80
-720
-576
A função deconv realiza a divisão entre polinómios, fornecendo os polinómios quociente e resto. Assim
os polinómios l (x) e n(x ) tais que p( x) = l ( x) ⋅ q ( x) + n( x ) , onde o grau de n(x ) é inferior ao de q(x ) ,
obtêm-se fazendo:
» [l,n]=deconv(p,q)
l =
-0.1000
-1.2000
-5.6600
0
0
n =
0
(ACM, 1999) FEUP - DEEC
6
134.4000 -111.8400
Teoria dos Sistemas
Download

Introdução ao MATLAB