Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Mini Curso MATLAB GET EP1
Apostila Mini Curso MATLAB GET EP1
Introduo ao MATLAB
Sumrio:
Introduo ..........................................................................................................................3
Objetivos.............................................................................................................................3
Histrico..............................................................................................................................3
Layout .................................................................................................................................4
Help ....................................................................................................................................9
Dados ................................................................................................................................ 10
Funes ............................................................................................................................. 17
Grficos ............................................................................................................................. 20
Programao ..................................................................................................................... 24
Introduo
O MATLAB, abreviao para MATrix LABoratory, um software com linguagem simples
e direta, que realiza clculos de engenharia, e por isso possui uma ampla biblioteca de funes
matemticas pr-definidas. Essas funes permitem que problemas de programao sejam
resolvidos de maneira muito mais simples do que com outras linguagens computacionais.
Objetivos
Esta apostila tem como objetivo introduzir o MATLAB como ferramenta de
programao computacional, usando como base o clculo de matrizes. Alm disso, apresenta
algumas de suas aplicaes nesta rea e exemplos para melhor fixao do contedo.
Histrico
A linguagem foi desenvolvida na dcada de 70 por Clever Moler, ento presidente do
departamento de Cincias da Computao da Universidade do Novo Mxico. Pela simplicidade
e facilidade de uso, foi aderida por muitas universidades e logo se destacou na comunidade
matemtica.
Em 1984, em parceria com Steve Bangert e o engenheiro Jack Little, a MathWorks
(detentora dos direitos autorais) foi fundada e o MATLAB foi reescrito na linguagem C.
Por ser um ambiente integrado de modelagem de sistemas e algoritmos, ideal para
implementao de projetos complexos, a ferramenta se tornou um produto lder na rea de
computao numrica e cientfica.
Layout
Pode-se dizer que o MATLAB possui cinco janelas principais. Duas nas quais o usurio
trabalha: Command Window e Editor. E trs que mostram dados importantes: Command
History Window, Workspace e Figure. A seguir, uma descrio detalhada de cada janela.
Command Window
a janela dos clculos e da programao. Nesta janela, so inseridos os dados,
que so interpretados pelo programa, e ento os resultados so retornados. Caso o
usurio queira, esta janela tambm mostra o desenvolvimento dos clculos realizados,
mostrando os valores de cada varivel, aps terem sido executadas as aes
referentes a elas.
Editor
a janela onde so criados cdigos que podem ser salvos como arquivos do
MATLAB. a janela mais utilizada, uma vez que nela podem ser digitados cdigos
completos para s depois serem rodados na Command Window. Alm disso, com o
modo Debug, que ser explicado mais adiante, pode-se rodar o cdigo linha por linha,
para ver todos os passos realizados pelo programa.
Workspace
O workspace mostra todas as variveis utilizadas recentemente e seus
respectivos tipos e valores. Com ele, possvel verificar se alguma varivel teve seu
valor modificado quando o cdigo foi rodado, e assim encontrar eventuais erros na
programao.
Figure Window
A Figure Window a janela que exibe grficos. Estes podem ser criados em
duas ou trs dimenses. Mais adiante, ser explicado como plotar grficos em duas
dimenses.
Help
O comando help consiste em uma ferramenta de ajuda sobre todas as funes,
comandos e operadores existentes no MATLAB. Para acessar, basta digitar na Command
Window:
>>help funo/comando/operador
A partir do comando dado, aparecem informaes sobre o termo pesquisado.
Primeiramente, fornecida uma definio. Em seguida, so dados exemplos de uso e todas as
possibilidades de aplicao, bem como informaes sobre tpicos relacionados pesquisa.
A seguir, tem-se um exemplo do comando help close.
Dados
A linguagem
guagem do MATLAB, chamada M-cdigo
M cdigo simples e objetiva, o que torna a
declarao de dados muito prtica. A unidade fundamental uma matriz (array), a qual se
trata da organizao de elementos distribudos
di
em linhas e colunas.
Um escalar uma matriz de dimenses 1x1 e um vetor uma matriz de uma nica
dimenso (linha ou coluna). Os ndices dos elementos so sempre iniciados com 1.
Executar um arquivo
Existem duas maneiras de executar um arquivo salvo, a primeira delas
selecionando o que se deseja executar e em seguida clicar em F9 ou na barra de menu
em Text>Evaluate Selection.
A segunda opo pelo nome que foi dado ao arquivo: basta digit-lo na
janela de comando e em seguida apertar Enter, e o arquivo ser executado.
Criando Dados
Declarar uma varivel no MATLAB muito simples, basta digitar o nome
desejado e o valor a ser atribudo a essa varivel. Caso se deseja que a varivel ainda
no tenha um valor atribudo, basta declar-la como vazio.
>>x=[];
No necessrio declarar o tipo de varivel, o prprio programa a identifica.
Ao declarar uma matriz utiliza-se espao para separar elementos de uma
mesma linha e ponto e vrgula (;) para colunas.
>>nome_da_varivel=[dados];
Exemplo:
>> a=10;
>> c=[1 2 3];
No exemplo acima, ao final da linha de cdigo h o ponto e vrgula (;). Tal
mecanismo utilizado caso no seja necessrio exibir seu processamento na linha
abaixo. A seguir, um exemplo em que o desenvolvimento mostrado:
>> m=[ 1 5 10; 2 10 30]
m=
1
5 10
2 10 30
Para acessar um elemento de uma matriz, basta digitar o nome da varivel
seguido dos ndices da linha e coluna desejada. Pode-se tambm acessar todos os
elementos de determinada linha ou coluna, como nos exemplos a seguir:
>> matriz1=[ 2 3 6 7; 8 6 4 0; 5 1 3 9]
matriz1 =
2
>> matriz1(1,4)
ans =
7
>> matriz1(3,:)
ans =
5
>> matriz1(end,end)
ans =
9
>> matriz1(3,end)
ans =
9
>> matriz1(:,3)
ans =
6
4
3
H outras formas de inicializao de matrizes, duas delas so apresentadas
abaixo:
>>nome_da_varivel
nome_da_varivel = primeiro:incremento:ltimo
>>nome_da_variavel=linspace
nome_da_variavel=linspace (primeiro,ltimo,nmero de elementos)
Exemplos:
>> a=1:2:10
a=
1
>> b=linspace(2,10,5)
b=
2
8 10
Exemplos:
>> a=[1 2 3];
>> b=[ 2 4 6];
>> c=a/b
c=
0.5000
>> c*a
ans =
0.5000 1.0000 1.5000
>> a= [1 2; 3 4]
a=
1
>> a^2
ans =
7 10
15 22
Existem alguns comandos especiais para operaes com matrizes. Veja a tabela
abaixo:
Elemento a elemento:
elemento As operaes so feitas elemento a elemento de
matrizes quadradas. Para isto, basta colocar o sinal de ponto (.) antes do sinal
da operao
rao desejada. Exemplo:
E
>>a =
1
>> a.*b
ans =
5 134
300 12
Operadores relacionais: Os operadores relacionais so utilizados quando se
necessita conhecer algum tipo de relao entre elementos seja de uma matriz,
vetor ou escalar. Os dados so retornados em forma de matriz, com 0 para
falso e 1 para verdadeiro.
Exemplo:
>> d= [12 56 78]
d=
12 56 78
>> d>e
ans =
1
>> B
B=
3
>> C=[A B]
1
>> C=[A;B]
C=
1
3
2
4
3
5
>> D=[B(1,1);A(1,2)]
D=
3
2
Funes
Como j foi mencionado anteriormente, existem inmeras funes pr-definidas
pr
no
MATLAB. Nesta seo sero apresentadas algumas delas e suas principais aplicaes, alm de
como devem ser manipuladas.
Funes de inicializao de matrizes
O software apresenta funes que possibilitam inicializar matrizes com zeros,
ums, identidade, entre outras. Essas funes esto reunidas na tabela abaixo.
Funes Exponenciais
Funes Trigonomtricas
Funes Complexas
As funes derivada (diff) e integral (int) merecem ateno especial por sua
grande aplicao na matemtica. Como j foi dito, necessrio declarar a funo sobre
a qual se deseja calcular a operao como char. Veja os exemplos abaixo:
>> f=x^2+3
f=
x^2+3
>> derivada=diff(f)
derivada =
2*x
f=
3*x^2 - 15*x + 18
integral =
x^3-15/2*x^2+18*x
Funes Aleatrias
As funes aleatrias so aquelas capazes de gerar uma determinada
quantidade de nmeros aleatoriamente. possvel limitar o intervalo em que so
gerados e tambm o tipo de nmero gerado. Tais funes esto descritas abaixo com
sua nomenclatura:
Grficos
Os grficos no MATLAB podem ser criados em duas ou trs dimenses, utilizando-se de
vrios comandos diferentes. Eles utilizam pontos discretos para o desenho. Ou seja, par de
pontos nicos pelos quais a linha do grfico ir passar. Portanto, quanto mais pontos
fornecidos ao programa, melhor ser a visualizao da curva desejada. A seguir, o passo a
passo pra a criao de grficos em duas dimenses e algumas funes que podem ser
utilizadas, a partir do comando plot.
Como plotar o grfico
Primeiramente, deve-se criar dois vetores que armazenem, respectivamente,
os valores das variveis X e Y que sero os eixos do grfico. Ento, o comando a ser
dado :
>> plot(x,y,Opes de Estilo)
O campo Opes de Estilo diz respeito cor da linha, do tipo de tracejado e da
marcao dos pontos dos vetores. Ao digitar, help plot, pode-se visualizar todas as
opes de estilo existentes no programa e seus respectivos comandos.
Pode-se tambm omitir uma das variveis e/ou a opo de estilo, como no
caso abaixo.
>>plot(y)
Nesta situao, ele plota o grfico na forma padro, que utilizando um vetor
contendo 1, 2, 3, 4... para a varivel que est faltando, e a cor do grfico preto, com a
linha contnua e sem marcao dos pontos.
Figure: esse comando abre uma nova Figure Window, onde o prximo grfico
plotado ser mostrado.
>>figure
Hold on / Hold off : o comando hold on fixa a ltima Figure Window gerada, e
todos os plots a partir dele at o comando hold off so gerados na mesma
janela. Ou seja, ele possibilita que vrias curvas sejam mostradas num mesmo
grfico.
>>hold on
>>plot(x,y)
>>plot(w,z)
>>hold off
No exemplo acima, os grficos com eixos x e y, e o com eixos w e z, so
gerados na mesma janela.
>>plot(x,y)
>>subplot(a,b,p)
>>plot(w,z)
No caso acima, o comando subplot divide a Figure Window em a por b grficos
e plota a prxima curva no p-simo grfico.
Comandos auxiliares
Existem alguns comandos para serem utilizados em Figure Windows que
ajudam a melhorar a aparncia dos grficos e auxiliam na identificao dos dados.
Dentre eles, pode-se destacar: title, xlabel, ylabel e text.
>>title(titulo desejado)
Xlabel: O comando xlabel permite que o eixo das abscissas do grfico seja
identificado.
>>xlabel(identificao abscissas)
Ylabel: O comando ylabel permite que o eixo das ordenadas do grfico seja
identidifcado.
>>ylabel(identificao ordenadas)
>>text(x,y,texto desejado)
Programao
Para implementar cdigos completos e criar programas que sejam funcionais,
necessria a utilizao de alguns recursos que o MATLAB fornece. So os operadores lgicos,
os comandos de limpeza, a indentao, os processos iterativos, a criao de funes
personalizadas, o tempo de simulao e o modo Debug. A seguir, cada um dos recursos
mencionados sero explicados.
Operadores Lgicos
So os operadores de comparao. Eles podem ser usados para relacionar
duas ou mais variveis, ou ento para realizar testes. A tabela abaixo exibe todos os
operadores usados no MATLAB.
Operador
Significado
<
Menor que
<=
Menor ou igual a
>
Maior que
>=
Maior ou igual a
==
Igual a
~=
No igual
&
Operador e
Operador ou
Operador no
Comandos de Limpeza
Ao programar, para facilitar o entendimento do cdigo quando rodado na
Command Window, existem os recursos de limpeza da tela e das variveis. So eles:
clc, clear all e close all.
Clc: Ao digitar o comando clc na Command Window, ele limpa todos os dados
inseridos anteriormente, porm sem apag-los da memria.
>>clc
Clear all: O comando clear all limpa todos os valores das variveis que foram
armazenados anteriormente.
>>clear all
Close all: O comando close all fecha todas as Figure Windows abertas.
>>close all
Indentao
O recurso da indentao permite que o cdigo digitado no Editor seja
organizado, de acordo com os espaamentos das margens de cada linha, a fim de
torn-lo mais claro para o usurio. Ele tem como base a hierarquizao dos comandos
utilizados. Para indentar um cdigo, basta selecion-lo, clicar com o boto direito do
mouse e escolher a opo Smart Indent.
Processos Iterativos
Os processos iterativos so aqueles que limitam o cdigo em partes, e
necessitam de condies iniciais ou finais para que aquele trecho seja executado. Eles
so divididos em quatro: If/If-else, While, For e Switch-case.
if(condio1)
expresses1;
elseif(condio2)
expresses2;
else
expressesn;
end
while(condio)
expresses;
end
switch varivel
case a
expresses;
case b
expresses;
case c
expresses;
otherwise
expresses;
end
Criao de Funes
O MATLAB possui uma biblioteca extensa de funes, porm o usurio
tambm pode criar suas prprias funes. Geralmente, esse recurso utilizado
quando uma parte do cdigo repetida vrias vezes. Por isso, criar uma funo com
determinado trecho deste cdigo, o torna menor e mais fcil de ser visualizado.
Cada funo criada deve possuir sua prpria janela do Editor. E esse arquivo
deve sempre ser salvo na mesma pasta que contm o cdigo todo. O formato que esta
funo deve ser criada :
function sada = nome_da_funo(entrada)
expresses;
O nome_da_funo deve ser sempre escrito em letras minsculas e sem
espaos. Alm disso, ao salvar o arquivo do Editor, este deve possuir o mesmo nome
da funo criada, uma vez que ao chamar esta funo durante o cdigo, ele ira buscar
na pasta pelo arquivo que possui aquele nome. Os dados de entrada da funo so os
parmetros que sero passados do cdigo para a funo e que sero utilizados por ela.
Caso exista mais de um dado de entrada, eles devem ser separados por vrgulas,
dentro dos parnteses. E o dado de sada o valor que a funo retorna e que ser
armazenado pela varivel que chamou a funo.
Pode-se tambm criar uma funo que no retorna nenhum valor. Ela apenas
executa o trecho de cdigo correspondente. Seu formato deve ser:
function nome_da_funo(entrada)
expresses;
Tempo de Simulao
Um recurso bastante til do MATLAB o chamado Tic Toc. Ele calcula e
mostra ao programador o tempo em que determinado trecho demorou para ser
executado. Como de interesse do programador deixar o programa cada vez mais
rpido, o Tic Toc permite essa anlise. Seu formato :
tic
trecho do cdigo desejado
toc
O resultado deste comando mostrado na Command Window.
Modo Debug
O modo Debug, que pode ser utilizado no Editor, permite que o programador
acompanhe a execuo de determinado trecho do seu cdigo, linha por linha. Desta
forma, pode-se visualizar exatamente todos os passos que o programa segue,
facilitando a correo de erros eventuais. Alm disso, ao posicionar a seta do mouse
sobre cada varivel durante o modo Debug, pode-se ver seu valor e
consequentemente, suas mudanas ao longo da execuo.
Para rodar um programa no modo Debug, deve-se seguir alguns passos: