Você está na página 1de 10

Introdução ao MATLAB

O MATLAB, Laboratório de Matrizes, é uma poderosa ferramenta para computação numérica e


visualização gráfica destinado a aqueles utilizadores, fundamentalmente das áreas das
engenharias e ciências, que precisam de um ambiente potente para realizar cálculos
matemáticos, desenvolver algoritmos, modelação, simulação de protótipos, etc. O MATLAB está
dotado de um sistema interactivo e uma linguagem de programação. Alem de bibliotecas para
cálculos aritméticos básicos, o MATLAB ainda oferece um grande número de ferramentas
especializadas (tool-boxes) para a resolução de problemas em áreas específicas, tais como
estatística, programação linear, sistemas de controlo, etc. Por tudo isto, o MATLAB permite
solucionar muitos problemas numéricos com um esforço muito menor do esforço que seria
necessário para escrever um programa em uma linguagem de programação de alto nível como
o Pascal, C, etc.

Baseado em matrizes que não requerem dimensionamento, um dos objectivos principais do


MATLAB é proporcionar ao utilizador uma solução simples e eficiente de muitos problemas
computacionais que envolvem matrizes e vectores.

1. Ficheiros do Matlab: M-ficheiros

M-Ficheiros – são ficheiros do MATLAB com extensão “.m” que contêm programas (scripts) e funções
que podem ser chamados e executados na janela de comandos do MATLAB.

‰ programas – utilizados para armazenar comandos do MATLAB


‰ funções – utilizados para armazenar funções e procedimentos

2. Ambiente de trabalho em MATLAB

‰ Janela de comandos:

Existem dois modos de utilização:


1. modo imediato - para entrar variáveis e executar os comandos do MATLAB
2. modo de execução de funções - para executar procedimentos e programas
armazenados em M- ficheiros
Nota: utilize o comando cd para mover-se para a directoria onde se encontra o M-ficheiro e
introduza logo o nome do ficheiro para começar a sua execução.

‰ Janela de edição: para a edição dos M-ficheiros

‰ Janela de gráficos: para a visualização e impressão de gráficos

3. Traço do programa
ƒ diary <filename> → redirecciona a informação de saída para um ficheiro
ƒ diary on/off → activa/ desactiva o traço do programa

4. Ajuda

ƒ HELP topic – dá ajuda no tópico


ƒ HELP word - onde 'word' é um nome de um ficheiro. Visualiza o primeiro comentário no M-
ficheiro 'word.m'.

Gladys Castillo Jordán 1


5. Comandos de visualização e informação
ƒ ; coloca-se no final da linha para suprimir a repetição (echo) do comando
ƒ , coloca-se no final da linha se deseja-se a repetição (echo) do comando
ƒ % comentário
ƒ format short visualiza 4 lugares decimais
ƒ format long visualiza 14 lugares decimais
ƒ who lista todas as variáveis
ƒ what lista os ficheiros
ƒ clear apaga o espaço de trabalho
ƒ clear variables apaga as variáveis
ƒ clear functions apaga as funções
ƒ clc limpa o display
ƒ clg limpa o gráfico

6. Comandos para atribuir valores ás variáveis

>> x = 2;
>> y = x^2 -3*x + 2;

7. Programação em MATLAB
‰ Programas (script) - um conjunto de comandos e instruções em MatLab armazenadas
num M-Ficheiro

% <program-name>
{<specification-statements>}
{<executable-statements>}

‰ Funções

function [lista de parâmetros de saída] = nome (lista de parâmetros de entrada)


{<instruções para declaração de variáveis>}
{<instruções de execução>}

Example 7.1 : Implemente a função sroot para determinar as raízes de um número pelo
método de Newton. Grave esta função no M-ficheiro sroot.m

function r = sroot(A)
% Método de Newton para determinar A
p0 = 1; % valor inicial
for k=1:50,
p1 = (p0+A/p0)/2;
disp(p1);
if abs(p1-p0)/p1 < eps, break, end;
p0 = p1;
end

Executando a função sroot na janela de comandos do MATLAB, obtém-se:

» sroot(5)

3
2.33333333333333
2.23809523809524
2.23606889564336
2.23606797749998
2.23606797749979
2.23606797749979

Gladys Castillo Jordán 2


Example 7.2: Escreva as seguintes funções no editor do MATLAB e grave-as nos ficheiros
f.m and G.m:

function y = f(x)
y = exp(-x./10) + sin(x);

function W = G(Z) % Z is a 1 by 2 vector


x = Z(1);
y = Z(2);
W = [x.^2-y.^2 2*x.*y];

Execute as funções f e G na janela de comandos. Obtém-se:

» f(pi/2)

ans =
1.85463599915323

» G([2 1])
ans =
3 4

8. Matrizes

Todas as variáveis em MATLAB são tratadas como matrizes (arrays). Um escalar é considerado uma
matriz de um por um.

8.1. Inicialização: uma matriz (array) pode ser inicializado com zeros, uns ou com valores aleatórios

» Z = zeros(1,5) % Inicializa um vector como linha com zeros.

Z=
0 0 0 0 0

» W = zeros(3,1) % Inicializa um vector como coluna com zeros.

W=
0
0
0

» M = ones(2,4) % Inicializa uma matriz de 2 linhas e 4 colunas com uns.

M=
1 1 1 1
1 1 1 1

» size(M) % Devolve a dimensão de uma matriz: # de linhas, # de colunas

ans =
2 4

8.2. Vectores: podem ser entrados e armazenados como uma matriz de uma linha ou uma coluna

» V = [1,2,3,4]

V=
1 2 3 4

Gladys Castillo Jordán 3


» length(V) % o cumprimento de um vector V

ans =
4

» sum(V) % a soma dos elementos de V

ans =
10

» mean(V) % a media aritmética dos elementos de V

ans =
2.5000

Podem ser criados vectores utilizando o operador “:” (colon)

» X = 1:20; % um vector(lista) com números inteiros desde 1 até 20.


» Y = X.^2; % um vector(lista) com cada número elevado ao quadrado.
» Y(10:20) % visualiza os últimas 11 elementos.

ans =
100 121 144 169 196 225 256 289 324 361 400

» x=1:4:20; % um vector com números inteiros desde 1 to 20, com incremento 4.

x=

1 5 9 13 17

8.3. Matrizes

» A = [1 2 3 4,
5 6 7 8,
9 10 11 12];

» A(1,3) % seleccionar um elemento da matriz

ans =
3

» A(2:3, 1:2) % seleccionar uma sub-matriz

ans =
5 6
9 10

Outras operações sobre matrizes:

♦ inv → inversa
♦ A’ → transposta
♦ rank → característica
♦ det → determinante
♦ eig → valores e vectores próprios
♦ norm → norma
♦ rand → elementos aleatórios
♦ eye → matriz de identidade
♦ rot90 → rotação dos elementos da matriz
♦ fliplr → inverter matrix left-to-right
♦ flipud → inverter matrix up-and-down

Gladys Castillo Jordán 4


♦ diag → extrair diagonal
♦ tril → lower triangular part
♦ triu → upper triangular part

Exemplo: matriz transposta

» A = [1 2,
3 4];
» C = inv(A) % determina a matriz inversa
C=
-2.0000 1.0000
1.5000 -0.5000

9. Operadores
‰ Operadores aritméticos

+ Adição
- Subtracção
* Multiplicação
/ Divisão
^ Potência

‰ Operadores aritméticos sobre matrizes

.+ Somar por elemento


.- Subtrair por elemento
.* Multiplicação por elemento
./ Divisão por elemento
.^ Potência por elemento

» A = [1 2,
3 4];
» A^2 % o quadrado da matriz

ans =
7 10
15 22

» A.^2 % o quadrado de cada elemento da matriz.


ans =
1 4
9 16

‰ Operadores Relacionais

ƒ == → igual a
ƒ ~= → não igual a
ƒ < → menor que
ƒ > → maior que
ƒ <= → menor ou igual a
ƒ >= → maior ou igual a

‰ Operadores Lógicos

ƒ ~ → Not
ƒ & → And
ƒ | → Or

Valores booleanos
1 True
0 False

Gladys Castillo Jordán 5


10. Instruções de Controlo para programação em MatLab
‰ IF – ELSEIF – ELSE - END

if (<expresão-lógica#1>),
{<instruções executáveis>}
elseif (<expresão-lógica#2>),
{<instruções executáveis>}
….
else
{<instruções executáveis>}
end

‰ Ciclos
‰ FOR

for variável = expressão


{<instruções executáveis>}
end

break → interrompe o ciclo

Exemplo 10.1:
for k=1:100,
x=sqrt(k);
if x>5, break, end
end

Exemplo 10.2:

For loop
sum1 = 0;
for k = 1:1:10000,
sum1 = sum1 + 1/k;
end

» sum1

sum1 =
9.78760603604434

Exemplo 10.3:

sum2 = 0;
for k = 10000:-1:1,
sum2 = sum2 + 1/k;
end

» sum2

sum2 =
9.78760603604439

Exemplo 10.4:

for j = 1:5,
for k = 1:5,
A(j,k) = 1/(j+k-1);
end
end

»A % uma matriz de Hilbert de dimensão 5x5 será visualizada

Gladys Castillo Jordán 6


‰ WHILE

while <expressão>
{ <instruções executáveis>}
end

Exemplo 10.5:

m = 10;
k = 0;
while k<=m
x = k/10;
disp([x, x^2, x^3]); % uma tabela de valores vai ser visualizada
k = k+1;
end

‰ Pause : esta instrução gera uma pausa na execução do programa

11. Gráficos

‰ função plot( ) - gera gráficos em R2


ƒ plot(x,y) → desenha um gráfico que passa pelos pontos (x(i),y(i))
ƒ plot(y) → desenha um gráfico que passa pelos pontos (i,y(i))
ƒ plot(x,y, S) → S é um string que define o color e tipo da linha.
S pode estar formado por o primeiro elemento que identifica a cor da linha e o segundo
que identifica o tipo de linha:
cor : y – amarelo; m – magenta, c - azul celeste; r - vermelho; g – verde;
b - azul ; w – branco; k- preto
tipo de linha: . ; -; o ; : ; x; -. ; + ; --; * ; s - quadrado; d –diamante; v;
^ ; <; >; etc.

Por exemplo, plot(x1,y1,’r*’, x2,y2, ‘g’, x2,y2,’:’) → desenha três gráficos com
diferentes cores e formatos de linhas.

Example 11.1: Escreva um programa em MatLab que construa o gráfico da função y=sin(x), para
x ∈ [0, Π] com passo Π /8 . Grave o programa num ficheiro com o nome PlotSin.m

O Matlab permite rapidamente avaliar funções num largo conjunto de dados. Por exemplo, se
X=[-1 0 1], então sin(X) produz o resultado [sin(-1) sin(0) sin(-1)]. Similarmente se
X=0:pi/8:pi então Y=sin(X) produz uma matriz Y da mesma dimensão que X com os
correspondentes valores de sin(x).

% PlotSin – construi o gráfico da função y=sin(x)

X = 0:pi/16:pi;
Y = sin(X);
figure(1); clf;
hold on;
axis([-0.2 3.2 -0.1 1.1]); % define os eixos de coordenadas
plot([-0.2 3.2],[0,0],[0,0],[-0.1 1.1]); % desenha os eixos
plot(X,Y); % desenha o gráfico
xlabel('x');
ylabel('y');
title('Graph of y = sin(x)');
grid;
hold off;

Gladys Castillo Jordán 7


Execute o programa PlotSin. O seguinte gráfico será visualizado:

Comentários: O comando plot requer dois vectores de igual comprimento.

X=
0 0.3927 0.7854 1.1781 1.5708 1.9635 2.3562 2.7489 3.1416
Y=
0 0.3827 0.7071 0.9239 1.0000 0.9239 0.7071 0.3827 0.0000

Example 11.2: Escreva um programa em MatLab que construa o gráfico do polinómio

p(x) = x5 – 10 x4 + 35 x3 – 50 x2 + 24.

Grave o programa num ficheiro com o nome PlotPoly.m

figure(1);clf;
C = [1 -10 35 -50 24]; % define um vector com os coeficientes do
polinómio
X=-0.2:0.1:4.2; % define as abcissas
Y=polyval(C,X); % polyval - função que avalia um polinómio

axis([-0.2 4.2 -2.3 4.3]); % define os eixos


plot([-0.2 4.2],[0,0],[0,0],[-2.3 4.3]); % desenha os eixos
plot(X,Y); % desenha o gráfico
hold on;
xlabel('x');
ylabel('y');
title('Gráfico de um polinómio');
grid;

Execute o programa PlotPoly. O seguinte gráfico será visualizado:

Gladys Castillo Jordán 8


Example 11.3: Escreva um programa em MatLab onde o utilizador pode entrar a função para construir
o gráfico.

Sugestão: A função f pode ser definida como texto, por exemplo, se f=’sin(x)’, então pode ser usado o
comando:

fplot (f, [0,10])

12. Outras funções do MatLab

‰ Funções Matemáticas

ƒ cos(x) → cosine (radians)


ƒ sin(x) → sine (radians)
ƒ tan(x) → tangent (radians)
ƒ exp(x) → exponential exp(x)
ƒ acos(x) → inverse cosine (radians)
ƒ asin(x) → inverse sine (radians)
ƒ atan(x) → inverse tangent (radians)
ƒ log(x) → natural logarithm base e
ƒ log10(x) → common logarithm base 10
ƒ sqrt(x) → square root
ƒ abs(x) → absolute value
ƒ round(x) → round to nearest integer
ƒ fix(x) → round towards zero
ƒ floor(x) → round towards -ì
ƒ ceil(x) → round towards +ì
ƒ sign(x) → signum function
ƒ cosh(x) → hyperbolic cosine
ƒ sinh(x) → hyperbolic sine
ƒ tanh(x) → hyperbolic tangent
ƒ acosh(x) → inverse hyperbolic cosine
ƒ asinh(x) → inverse hyperbolic sine
ƒ atanh(x) → inverse hyperbolic tangent
ƒ real(z) → real part of complex number z
ƒ imag(z) → imaginary part of complex number z
ƒ conj(z) → complex conjugate of the complex number z

Gladys Castillo Jordán 9


ƒ angle(z) → argument of complex number z
ƒ rem(p,q) → remainder when p is divided by q

‰ Funções para Análise de Dados

ƒ Max → maximum value


ƒ Min → minimum value
ƒ Mean → mean value
ƒ Median → median value
ƒ std → standard deviation
ƒ sort → sorting
ƒ sum → sum the elements
ƒ prod → form product of the elements
ƒ cumsum → cumulative sum of elements
ƒ cumprod → cumulative product of elements
ƒ diff → approximate derivatives (differences)
ƒ hist → histogram
ƒ corrcoef → correlation coefficients
ƒ cov → covariance matrix

Bibliografia:
ƒ NUMERICAL METHODS using MATLAB Programs, (c) John H. Mathews, Kurtis D. Fink,Prentince
Hall, 1999

Gladys Castillo Jordán 10

Você também pode gostar