Você está na página 1de 23

MATLAB

Dicas iniciais de utilizao em mtodos numricos para engenharias


O objetivo apresentar ao usurio iniciante do MATLAB, noes bsicas de
utilizao deste programa.

MATLAB uma abreviao para MATrix LABoratory. Trata-se de um ambiente de alto


nvel que possui ferramentas avanadas de anlise e visualizao de dados.

Mais do que um aplicativo, o MATLAB tambm possui caractersticas de


linguagem de programao.

A programao em ambiente MATLAB dispensa tarefas como declarao de


variveis, alocao de memria, utilizao de ponteiros, necessrias durante
a utilizao de linguagens de programao como C ou Fortran.

As funes matemticas j existentes no MATLAB so otimizadas,


programadas em linguagem MATLAB e esto agrupadas de acordo com a
rea de interesse em toolboxes.
No MATLAB os nomes das variveis devem ser palavras nicas, sem a
incluso de espaos e no devem conter acentos. As regras bsicas para
nomes de variveis so apresentadas na Tabela.
Caso o usurio necessite apagar alguma varivel da memria do MATLAB,
isto pode ser realizado utilizando-se o comando clear.

Se a necessidade do usurio for de apagar todas as variveis que esto


sendo utilizadas deve-se utilizar o comando clear all.

Se por outro lado, o usurio deseja a listagem de todas as variveis que esto
sendo utilizadas, basta utilizar o comando who.

Todo o texto depois do sinal de percentagem (%) considerado comentrio.


O usurio pode interromper a execuo do MATLAB, a qualquer momento,
pressionando o Crtl-c.

Para limpar o workspace o usurio deve utilizar o comando clc.


Trabalhando com vetores e matrizes

O MATLAB manipula vetores de uma maneira simples e intuitiva. Considere que


se deseja calcular a funo:

y = sen(x) em 0

O primeiro passo criar um vetor com todos os valores de x para os quais se


deseja calcular y.

Uma vez definido o vetor, calcula-se os valores correspondentes de y.

Ex: x=[0 0.1*pi 0.2*pi 0.3*pi 0.4*pi 0.5*pi 0.6*pi 0.7*pi 0.8*pi 0.9*pi pi]

y = sin(x)
Para se resgatar um determinado elemento do vetor, basta indicar entre parnteses
a localizao do mesmo.

Ex: x(11), x(9) ...

Para ter acesso a blocos de componentes ao mesmo tempo, o MATLAB utiliza a


notao de dois pontos.

Ex: x(1:5) - componentes de x, do primeiro ao quinto elemento.

Componentes de x, iniciando de um valor n e indo at o final. Ex: x(5:end)

componentes de x, iniciando de n, contanto regressivamente de um em um e


parando no primeiro.

Ex: x(5:-1:1)
Construindo vetores

Existem formas para construo de vetores que dispensam a tarefa de digitar termo
a termo. So elas:
Cria um vetor que comea em zero e vai at o valor , incrementado 0,1*.
Ex: x=(0:0.1:1)*pi
cria um vetor que comea em zero e vai at o valor com 11 elementos
utilizando a funo linspace.
Os argumentos desta funo so:

linspace(primeiro_valor, ultimo_valor, numero_de_valores).


Ex: linspace(0,pi,11)

Cria um vetor em escala logartmica que comea em 100 e vai at o valor 102
com 11 elementos utilizando a funo logspace

logspace(primeiro_expoente, ultimo_expoente, numero_de_valores).


Ex: logspace(0,2,11)
At agora foram construdos apenas vetores linhas.

Todavia, muitas vezes se faz necessria a utilizao de vetores colunas.

A maneira mais direta de construo de um vetor coluna especificando


elemento por elemento e separando os valores com ponto e vrgula:
Ex: a=[1; 2; 3]

Uma alternativa a esta proposta transpor um vetor linha, j especificado,


transformando-o em um vetor coluna:
Ex: a=1:3
b=a'
Construindo matrizes

Para a construo de matrizes no MATLAB utilizam-se ponto e vrgula para


separar os elementos de uma linha da outra.

Ex: g=[1 2 3 4; 5 6 7 8]

Quando se deseja multiplicar duas matrizes, elemento por elemento, deve-se


utilizar o smbolo de multiplicao escalar pontuada (.*). O ponto que precede o

asterisco, smbolo padro de multiplicao, diz ao MATLAB para fazer a


multiplicao elemento por elemento. A multiplicao sem o ponto significa
multiplicao matricial. Ou seja:
g=[1 2; 5 6];
h=[1 1; 2 2];
g.*h

Para a diviso de matrizes, elemento por elemento, deve-se utilizar o smbolo


de diviso escalar pontuada ./.
A Tabela fornece ainda a listagem de alguns comandos teis de manipulao
matricial.
Realizando operaes matriciais
A Tabela fornece as principais funes matriciais existentes no MATLAB
Trabalhando com polinmios

No MATLAB, um polinmio representado por um vetor linha contendo seus


coeficientes em ordem decrescente.

Por exemplo, o polinmio 4 12 3 + 25 + 116 representado da seguinte forma:

p=[1 -12 0 25 116]


Confeccionando grficos
Grficos bidimensionais

Uma das funes que o MATLAB possui para elaborao de grficos a funo
fplot. Este comando calcula a funo a ser representada e certifica-se de que
suas propriedades estejam bem representadas. Como entrada, o fplot precisa
saber a funo a representada (como varivel string) e o domnio do grfico.

Ex: f='2*exp(-x).*sin(x)';
fplot(f,[0 8])
0.7

0.6

0.5

0.4

0.3

0.2

0.1

-0.1
0 1 2 3 4 5 6 7 8
Outra funo utilizada para confeccionar grficos bidimensionais, onde f = f(x), a
funo ezplot.

Esta funo tambm tem como argumentos de entrada uma funo string e um
intervalo de variao. Se f = f(x,y), o comando ezplot representa a funo
considerando f(x,y)=0.
Ex: ezplot('x^3 + y^3 -5*x*y + 1/5',[-3,3])
x 3 + y 3 -5 x y + 1/5 = 0
3

O comando mais comum utilizado para 1

elaborao de grficos bidimensionais no 0

y
MATLAB o comando plot. -1

-2
Esse comando cria grficos de vetores de dados
em eixos adequados e conecta os pontos a -3
-3 -2 -1 0
x
1 2 3

linhas retas. Por exemplo: 1

0.8

0.6

Ex: x=linspace(0, 2*pi, 30);


0.4

0.2

y=sin(x); 0

plot(x,y) -0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7
possvel utilizar o comando plot para traar mais de um grfico no mesmo
sistema de eixos. 1

0.8

Ex: x=linspace(0, 2*pi, 30); 0.6

y=sin(x); 0.4

z=cos(x);
0.2

plot(x,y,x,z) -0.2

-0.4

-0.6

-0.8

-1
0 1 2 3 4 5 6 7

Durante a confeco de um grfico no MATLAB , o usurio pode escolher a cor e


o estilo das linhas bem como o marcador utilizado.

O usurio pode ainda modificar a cor de fundo do grfico utilizando o comando


colordef. Neste caso, sugere-se ao usurio consultar o help na rea de
trabalho do MATLAB ( help colordef).

O comando grid on adiciona linhas de grade ao grfico nas posies dos


eixos que h marcadores.

O comando grid off remove as linhas de grade. Vale ressaltar que o


MATLAB comea sempre com grid off Para grficos bidimensionais.
A Tabela mostra os cdigos utilizados e o exemplo abaixo evidencia a utilizao dos
mesmos.

Para atribuir nomes aos eixos, pode ser utilizado os comandos comando
xlabel e ylabel.
Ex: x=linspace(0, 2*pi, 30);
O comando title adiciona um ttulo ao grfico. y=sin(x);
1
grfico
plot(x,y,'r-.>')
0.8

0.6
grid on
0.4

0.2
xlabel('x')
ylabel('seno(x)')
seno(x)

-0.2

-0.4 title('grfico')
-0.6

-0.8 grid off


-1
0 1 2 3 4 5 6 7
x
Iniciando um programa
Todos os comandos descritos anteriormente podem ser utilizados durante a
elaborao de um programa em MATLAB.

Antes de comear a programar, voc deve escolher qual o diretrio de trabalho.

A programao em MATLAB realizada atravs da elaborao de arquivos tipo


m.

Uma vez escolhido o diretrio de trabalho, voc deve abrir um arquivo m


seguindo o seguinte caminho: File New M-file.

Neste arquivo deve ser escrito o programa.

Uma vez escrita a rotina a ser executada, deve-se salvar o arquivo.

Para rodar a rotina, deve-se digitar o nome do arquivo tipo m no workspace do


MATLAB.

O MATLAB possui diversas funes que so particularmente apropriadas para o


uso em arquivos tipo m.
Estas funes so apresentadas na Tabela

Utilizando a funo for

Os loops for possibilitam que uma srie de comandos seja repetida por um
nmero de vezes fixo e predefinido.

Vale ressaltar que o comando for no pode ser encerrado atribuindo-se


valores ao contador (no exemplo n) dentro do loop.
Ex: clear all
for n=1:10
x(n)=n/2;
n=10; % ao final do primeiro clculo de x n = valor
maximo
end
x
Ex2: clear all
for n=1:5
for m=5:-1:1
A(n,m)=n^2+m^2;
end
disp(n)
end

Utilizando a funo while

Os loops while executam um grupo de comandos um nmero indefinido de


vezes.

Ex: clear all


n=1;
while n<10
x(n)=1;
n=n+1;
end
x
Utilizando a funo if-else-end

Quando aes devem ser executados condicionalmente, com base em um teste


relacional, so utilizados comandos if-else-end.

Como no comando for, possvel utilizar vrios comandos if-else-end


simultaneamente.
Ex1: clear all
macas=10; custo=macas*10;
if macas>5
custo=0.8*custo; % desconto de 20%
end
custo

Ex2: clear all


m=5
if m==10;
disp('m igual a 10');
elseif m<10;
disp('m menor que 10');
else m~=10;
disp('m diferente de 10');
end
Resolvendo um sistema de equaes algbricas

No MATLAB a funo utilizada para resolver sistemas de equaes


algbricas no lineares denominada fsolve e se localiza no toolbox de
otimizao.

Para maiores detalhes a respeito desta funo, sugere-se consultar o help


digitando help fsolve na pgina principal do MATLAB.
Exemplo: Eliminao de Gauss: