Sie sind auf Seite 1von 43

INTRODUOAOMATLAB

AurlioLimaArajo
Email:aaraujo@ipb.pt

PROGRAMA
Introduo.
Vectoresematrizes.
Polinmios.
Grficos2De3D.
Programao.
Anlisenumrica.
Ajuda.

INTRODUO
OQueoMatlab?,MATrixLABoratory
O MATLAB um programa para realizar clculos
numricos com vectores e matrizes. Como caso
particular pode tambm trabalhar com nmeros
escalares, tanto reais como complexos. Uma das
capacidades mais atractivas a de realizar uma
ampla variedade de grficos em duas e trs
dimenses.

Introduo_____________________________________

Os elementos bsicos do Matlab, como qualquer outra


linguagem de programao, so: constantes, variveis,
operaes,expressesefunes.
Constantesnumricas:
Nmerosinteiros:23548
Nmerosreais:2.35.248.45
Mximode16dgitossignificativos
UtilizandoaletraEnacontinuaodeumn
compontodecimal[2.2250e3081.7e+308].
Nmeroscomplexos:2+3i4*ji,j=(1)
Operaesaritmticaselementares:
Soma:+
Multiplicao:*
Exponenciao:^
Subtraco:
Diviso:/
Primeiroexponenciaes,depoisdivisese
multiplicaeseporltimosomasesubtraces.
4

Introduo_____________________________________

Variveis:aetiquetaqueidentificaumaporode
memria;
OMatlabdiferenciaentremaisculaseminsculas
Para ver as variveis definidas num determinado
instanteescrevese:
>>who
ou
>>whos
Paraeliminaralgumavarivelexecutase:
>>clearvariable1variable2
Expresses numricas: so um conjunto de
nmeros, funes e variveis previamente definidas,
relacionados todos eles por operadores aritmticos.
Se uma expresso demasiado grande indicase a
suacontinuaomediantetrspontos(...).
5

Introduo_____________________________________

Formatos: por defeito o Matlab tem formato short mas


podeseescolherentreosseguintesformatos:
>>formatlong(14dgitossignificativos)
>>formatshort(5dgitossignificativos)
>>formatshorte(notaoexponencial)
>>formatlonge(notaoexponencial)
>>formatrat(aproximaoracional)
VariveispredefinidasemMatlab:
i=(1)pi=
Inf=NaN=clculosindefinidos
eps=<nque+outron=nvrgulaflutuante2.22e16
date=valordadataactual
rand=geranmerosaleatrios[01]
realmin=<n+
realmax=>n+

Introduo_____________________________________

FunesdoMatlab:

nome(argumento)

sqrt(x)raizquadrada
abs(x)mdulodex
conj(z)conjugadodeumcomplexo
real(z),imag(z)parterealeimaginriadez,
respectivamente
exp(x)calculaex,sendoxrealoucomplexo
sin(x)asin(x)[/2/2] cos(x)acos(x)[0]tan(x)
atan(x)[/2/2]angle(z)log(x)(embasee)log10(x)
rats(x)rem(x,y)restodex/yround(x)sign(x)

Comandosdeajuda:
help
lookfor
whatficheiros.me.matdodirectrioactual
dirficheirosdodirectrioactual

Introduo_____________________________________

typenome_ficheiroMostraocontedodoficheiro
deletenome_ficheiroApagaoficheiro
cdmudadedirectoria
pwdindicaadirectoriaactual
whichnome_ficheiroindicaadirectoriaondeest
! Abre uma janela de MSDOS que se fecha quando
regressamosaoMatlab
startup.mficheirodearranqueaoexecutaromatlab.
Para guardar num ficheiro os comandos que se
executamnumasesso:
>>diarynome_ficheiro
...
>>diaryoff
8

Introduo_____________________________________
diarytema1.dia
clear
Exerccio1.1Calcularovalordaexpresso:
42 . 1768234

J=

2 10 10247

Exerccio1.2Calcularovalordaexpresso:
H=

9 . 810 14 5 . 876105
9 . 98710 5 10 6

Eescreveroresultadoempelomenos2formatos
Exerccio1.3Calcular

I=

3 sen 32 15 '
42 . 13

Exerccio1.4SegundoHilleLounasmaa,aequaoda
curvadeinversodohlio P=21 . 05 . 44 T 0 . 132 T 2
OndeapressoPvemdadaematmosferasea
temperaturaTemKelvin.Calcularovalordapressoa
umatemperaturade293K.Calcularovalorda
temperaturaparaumapressode1N/m2.
Nota:1N/m2=9.265*106atm

Introduo_____________________________________

diaryoff
dir
typetema1.dia

10

VECTORESEMATRIZES
Asmatrizessootipofundamentalde
estruturaemMatlab.
A=[135;692;487]

A^2+3*A

A=

ans=

135
692
487

427961
8614268
92164106

det(A)
ans=

11

MATrixLABoratory
dadossomatrizes
regrasdalgebralinear

Vectoresematrizes_______________________________

Osvectorespodemservectoreslinhaouvectorescoluna
Vectoreslinha:oselementosdeumamesmalinhaesto
separadosporespaosouvrgulas,
>>v=[234]
Vectores coluna: os elementos de uma mesma coluna esto
separadosporpontoevrgula(;).
>>w=[2;3;4;7;9;8]
A dimenso de um vector obtmse pelo comando length
(nomedovector)sub_w=w(i:k:j)

12

Criaodevectores:
Especificandooincrementodassuascomponentesv=a:h:b;
Especificandoasuadimensolinspace(a,b,n)seseomiten
toma100pordefeito;oincrementok=(ba)/(n1)
Com componentes logaritmicamente espaados logspace
(a,b,n) gera um vector linha de n pontos logaritmicamente
espaadosentre10ae10b.Seseomiteovalorden,tomapor
defeito50

Vectoresematrizes_______________________________

Operaescomescalares:
v+kadio
vksubtraco
v*kmultiplicao
v/kdivideporkcadaelementodev
k./vdividekporcadaelementodev
v.^kpotenciao:cadacomponentedevelevadoak
k.^vpotenciao:kelevadoacadacomponentedev
Operaesentrevectores:
v+wadio
vwsubtraco
v.*w multiplicao: cada elemento de v pelo correspondente
dew
v./wdividecadaelementodevpelocorrespondentedew
v.^w potenciao: cada componente de v elevado ao
correspondentedew

13

Produto escalar de vectores v*w calcula o produto escalar


devporw

Vectoresematrizes_______________________________

FunesMatlabespecficasparavectores:
sum(v)soma
prod(v)produto
v'transposiodevectores(linhascolunas)
dot(v,w)produtoescalardevectores
cross(v,w)produtovectorialdevectores
[y,k]=max(v)valormximodascomponentesdeumvector
(kindicaaposio)omesmoparamin(v)(valormnimo)

14

Vectoresematrizes_______________________________

Exemplo:Clculodeerrosrelativos
Suponhamos que para resolver uma equao diferencial
ordinriausamos:
Um mtodo analtico mediante o qual sabemos que a
soluonumintervalo[0,1]y(x)=x2+cos(x).
Um mtodo numrico para aproximar a soluo no
intervalo[0,1]comparmetrodediscretizao0.2

15

ngulo(radianos)

Soluoaproximada

1.0030

0.2

1.0234

0.4

1.0825

0.6

1.1869

0.8

1.3342

1.5415

Vectoresematrizes_______________________________

Paradefinirumamatriznonecessrioestabelecerdeantemooseutamanho
(de facto, podese definir um tamanho e mudlo posteriormente). O MATLAB
determinaonmerodelinhasedecolunasemfunodonmerodeelementos
que se utilizam. As matrizes definemse por linhas; os elementos de uma mesma
linha esto separados por espaos ou vrgulas, ao passo que as linhas esto
separadas por ponto e vrgula (;). Por exemplo, o seguinte comando define uma
matrizAdedimenso(3x3):
A=[123;456;789]
Arespostadoprogramaaseguinte:
A=
123
456
789
matriz transposta: Em MATLAB o apstrofo (') o smbolo de transposio
matricial.
matrizinversa:AinversadeAcalculasecomafunoinv():
B=inv(A).

16

Vectoresematrizes_______________________________

Em MATLAB acedese aos elementos de um vector pondo o ndice entre


parntesis(porexemplox(3)oux(i)).Oselementosdasmatrizesacedemsepondo
osdoisndicesentreparntesis,separadosporumavrgula(porexemploA(1,2)ou
A(i,j)).Asmatrizessoarmazenadasporcolunas(apesardeseintroduziremporlinhas)e
tendoemcontaistopodeseacederaqualquerelementodeumamatrizcomums
subndice. Por exemplo, se A uma matriz (3x3) obtmse o mesmo valor
escrevendoA(1,2)ouA(4).
OsoperadoresmatriciaisemMATLABsoosseguintes:

+adio
subtraco
*multiplicao
'adjunta(transpostaoutranspostaconjugada)
^potenciao
\divisoesquerda
/divisodireita
.*produtoelementoaelemento
./e.\divisoelementoaelemento
.^elevaraumapotnciaelementoaelemento

17

Vectoresematrizes_______________________________

diag(A)Obtenodadiagonaldeumamatriz.sum(diag(A))calcula
otraodamatrizA
diag(A,k)extraiaksimadiagonal.
norm(A) norma de uma matriz, calcula o mximo dos valores
absolutosdoselementosdeA
Geraodematrizes:
Matrizdezeros,zeros(n,m)
Matrizdeuns,ones(n,m)
Matrizidentidadeeye(n,m)
Matrizdeelementosaleatriosrand(n,m)
Matrizescomdiagonaldadadiag(v),diag(v,k)
[XY]colunas,[X;Y]linhas

18

Vectoresematrizes_______________________________

Desde a verso 5 que o Matlab admite variveis


subindiciadasmultidimensionalmente
a=ones(2,2,3)
a(:,:,1)=11
a(:,:,2)=11
a(:,:,3)=11
11
11
11
Matrizes esparsas so aquelas que tm grande
qantidadedeelementosnulos
>>a=sparse(i,j,c,m,n)
mindicalinhas,ncolunas,cvectorquecontmos
elementos no nulos e i,j so dois vectores que
indicamaposiodecadaelementodec
paravisualizaramatrizinteira>>full(a)
[i2,j2,c2]=find(a)
19

Vectoresematrizes_______________________________

Exemplo1:Tomemosaseguintematriz

12
7
0
0
0

4
3
0
0
0

0
0
0
13
2

0
0
0
11
7

0
8
0
0
4

E trabalhemos com ela como uma matriz esparsa.


Parataldefinimosovectordeelementosnonulos,
o vector definido pelas linhas e o vector definido
pelascolunas.

20

Vectoresematrizes_______________________________

m=[12,4,7,3,8,13,11,2,7,4];
f=[1,1,2,2,2,4,4,5,5,5];
c=[1,2,1,2,5,3,4,3,4,5];
a=sparse(f,c,m,5,5)
full(a)
m1=[12,7,4,3,13,2,11,7,8,4];
f1=[1,2,1,2,4,5,4,5,2,5];
c1=[1,1,2,2,3,3,4,4,5,5];
b=sparse(f1,c1,m1,5,5];
full(b)
a=sparse(f,c,m)
s=a+b
p=a*b
[f2,c2,m2]=find(p)
e=full(sparse(f2,c2,m2))

21

Vectoresematrizes_______________________________

Exerccio2.1Dadososvectoresdefinidosporx=(1,4.5,7.8)e
y=(sen(90),cos(45),0).Realizarosclculosseguintes:
x+y;produtoescalardexpory;calcularonguloformadopor
ambososvectores.
Exerccio 2.2 Para um laboratrio compramse os materiais
especificadosnatabelaseguinte:

22

Ref.artigo

Preo

Quantidade

1520

1146

200

1621

3450

250

1428

6225

150

1429

7100

150

1628

8500

100

Utilizarvectoreseoprodutodevectoresparacalcularocusto
decadaprodutoeototalapagar(atabeladepreosnoinclui
IVA,devendoportantoaplicarseataxade19%.

Vectoresematrizes_______________________________

Exerccio2.3Dadasasmatrizesaeb,calcular:a+b,

a+0, inversa de b. Comprovar que o produto de


matrizes no comutativo. Seleccionar a submatriz
deaformadapelaprimeracolunaeterceiralinhaea
submatriz de b formada pela segunda e terceira
colunasecalcularoproduto

1 2 3
a= 2 3 4
4 2 5

4 2 1
b= 2 0 4
1 2 5

Exerccio 2.4 Utilizar matrizes para construr uma tabela


que contenha: Na 1 coluna a varivel graus celsius no
intervalo[0100]comumpassode2.Na2colunaoseu
valor em graus Fahrenheit e na 3 em Kelvin. Como
guardarianumficheiroatabelaanterior?

23

9celsius
32
5

Vectoresematrizes_______________________________

Exerccio2.5Considereseamatriztridiagonalaijdefinida
por:
aij=

i,sei=j
j,sei=j+1
j,sei=j1
0,nosrestantescasos

Introduzir a matriz no espao de trabalho como matriz


esparsaparan=10

24

POLINMIOS
OspolinmiossorepresentadosemMatlabporum
vector linha de dimenso n+1 sendo n o grau do
polinmio.
Dadoumpolinmio

x3+2x
esterepresentasecomo
>>pol1=[1020]
para o clculo das razes de um polinmio existe o
comandoroots:
>>raizes=roots(pol1)
produzumvectorcoluna,enquantopol1umvector
linha
25

Polinmios______________________________________

Umpolinmiopodeserreconstrudoapartirdassuasrazes
comocomandopoly
>>p=poly(raizes)(dumvectorlinha)
Nocasoemqueoargumentodepolysejaumamatriz
obteramoscomoresultadoopolinmiocaractersticoda
matriz.Assimsequeremoscalcularosvaloresprpriosda
matrizbastacalcularasrazesdopolinmiocaracterstico.
Exemplo1:
pol2=[2401];%definiodopolinmio2x3+4x2+1
raizes=roots(pol2)%clculodassuasrazes
pol2_n=poly(raizes)%reconstruodopolinmio
real(pol2_n)%oqueacontece?

26

Exemplo2:
A=[123;234;425];p=poly(A)%pol.caracterstico
roots(p)%valoresprpriosdeA

Polinmios______________________________________

Para calcular o valor de um polinmio p num ponto dado x basta


utilizarocomandopolyval
>>y=polyval(p,x)
Exemplo3:
p=[1111]%definiodopolinmiox3x2x+1
polyval(p,2)
Exemplo4:
x=2:0.1:2;
Y=polyval(p,x);
Para multiplicar e dividirpolinmios temos oscomandos especiais
conv(p1,p2)edeconv(p1,p2)

27

Exemplo5:
p1=[1,2,1];p2=[1,1];p3=conv(p1,p2)
p4=deconv(p3,p2)
[p4,r]=deconv(p3,p2)%restodadiviso

Polinmios______________________________________

Para conhecer o resto da diviso de polinmios basta


escrever
>>[p4,r]=deconv(p3,p2)
Ocomandoresidue,permiteoclculododesenvolvimento
emsriedefracessimplesdoquocientep1/p2.
p2deveterrazesreais
Oformatodocomando:>>[r,p,k]=residue(p1,p2)
onde:
r=vectorcolunacomosnumeradores
p=vectorcolunacomasrazesdodenominador
k= vector linha com os coeficientes do polinmio
independente.

r 1
p1 x
rn
=

k x
p2 x x p 1
x p n
28

Polinmios______________________________________

>>[p1,p2]=residue(r,p,k)fazaoperaoinversa
Exemplo6:
Decomporemfracessimplesoquociente
x 3 x 2 1
x 3 3 x 2 4

p1=[1101]
p2=[1304]
[r,p,k]=residue(p1,p2)
rats(r)

x 3 x 2 1

35
13
1
=

1
3
2
2
9 x1
x 3 x 4 9 x2 3 x2
[pol1,pol2]=residue(r,p,k)
29

Polinmios______________________________________

Para calcular a derivada de um polinmio temos o


comando,
>>polyder(p)
Exemplo7:
Dadoopolinmiox3+6x2+1asuaderivada
p=[1,6,0,1];
d=polyder(p)%3x2+12x

30

Polinmios______________________________________

Exerccio3.1Consideremosopolinmiop(x)=x1.Calcular
p(x)3 e identificar o polinmio obtido e calcular as suas
razes
Exerccio3.2 Segundo Hill e Lounasmaa, a equao da
curvadeinversodohlioP=21+5.44T0.132T2 ondeP
vemdadaematmosferaseTemKelvin.
a)Calcularovalordapressoaumatemperaturade
268.25C.
b) Calcular o valor da temperatura para uma presso de
3N/m2.Nota1N/m2=9.265e6atm.
Exerccio3.3CalcularasoluogeraldaEDO
y(5)y(4)+2y2y+yy=0

Exerccio3.4Calcularointegral I =

31

x 4 2 x1
dx
x1

Polinmios______________________________________

Exerccio3.1
p=[11];
q=conv(p,p)
q=conv(q,p)
raizes=roots(q)
formatshort
real(raizes)
Exerccio3.2
a)pressao=[0.1324.5521.0];
pressao0=polyval(pressao,273.15268.25)
b)pressao1=3*9.265e006;
pressao(3)=pressao(3)pressao1
temp=roots(pressao)
32

Polinmios______________________________________

Exerccio3.3
formatlong
p=[112211];
raizes=roots(p)
der_p=polyder(p)
polyval(der_p,round(raizes(2)))
Asoluoexacta:
y(x)=c1ex+c2sen(x)+c3cos(x)+c4xsen(x)+c5xcox(x)
dsolve(D5yD4y+2*D3y2*D2y+Dyy=0,x)

33

Polinmios______________________________________

Exerccio3.4
numerador=[10021];
denominador=[11];
[cociente,resto]=deconv(numerador,denominador)
I =

int((x^4+2*x+1)/(x1))

34

4
x 4 x3 x2
x x x3
dx = 3 x4 ln x1
x1
4
3
2
3

EQUAESLINEARES
Dado um sistema algbrico de equaes lineares da
forma Ax=b, resolvloemos por mtodos clssicos e
comfunesprpriasdoMatlab
Algunscomandoscujosargumentossomatrizeseque
soteisparaaresoluodesistemas:
>>det(A)%determinantedeumamatrizquadrada
>>inv(A)%inversadeumamatrizquadrada
>>rank(A)%rankdeumamatriz(ordemdomaiormenor
comdeterminantenonulo)
Exemplo1:
x=ones(4,4);v=[2222];y=x+diag(v)
rank(y)
35

Equaeslineares________________________________

Paraverseumsistemacompatvel
Ax=bcompatvelse
>>rank(A)rank([A,b])
Nmerodecondiodeumamatriz
>>cond(A)
este nmero indica a sensibilidade da soluo de um
problema em ordem a variaes relativas nos dados
deentrada.(arelaoentreomaioreomenorvalor
singulardamatriz,deveserprximode1)
36

Equaeslineares________________________________

ExemplosderesoluodeumsistemaAx=b:
RegradeCramer
Exemplo2:DadoumsistemaAx=b
A=[1,2,3;2,3,4;4,2,5]
b=[4;5;1];
%comprovamosqueamatriznosingular
det(A)
D1=A;D1(:,1)=b
D2=A;D2(:,2)=b
D3=A;D3(:,3)=b
x=[det(D1);det(D2);det(D3)]/det(A)
37

Equaeslineares________________________________
AsoluoporCramertediosaepoucoeficaz.
Umaprimeirapossibilidademaiscmoda.
Seamatrizquadradaeoseudeterminantediferente
dezero:
Ainv=inv(A)
Yosistemaseresolveriacomo
x=Ainv*b
Outrasoluoseriautilizaradivisomatricial
Outrasoluo
X=A\b
A\b, produz um resultado mesmo que a matriz no seja
quadradaenoinvertvel.
Por exemplo se o sistema sobredeterminado (mais
equaes que incgnitas) calculase a soluo que
minimiza a norma 2 de Axb (soluo de mnimos
quadrados)

38

Equaeslineares________________________________

Commatrizesesparsas
Exemplo3: Consideremos uma matriz tridiagonal de
dimenso 32 com a diagonal principal identicamente
igual a 4 e as diagonais superior e inferior iguais a 2, e
estudamos a variao no nmero de operaes a
realizar consoante tratemos a matriz como cheia ou
esparsa.AoresolverosistemaAx=b,comb=d=[1:32];
%defineseadiagonalinferior
diag=sparse(2:32,1:31,2*ones(1,31),32,32)
%defineseadiagonalprincipal
a=sparse(1:32,1:32,4*ones(1:32));
%constriseamatriztridiagonalesparsa
a=a+diag+diag;
%constriseamatrizcheia
b=full(a)
39

Equaeslineares________________________________

%defineseosegundomembro
d=[1:32];
Valoresevectoresprpriosdeumamatriz.
>>eig(A)(vectorcoluna)
>>[V,D]=eig(A)

40

Equaeslineares________________________________

Exerccio4.1
ConsidereamatrizA.CalcularodeterminantedamatrizA.Resolver
osistema,sendobumvectorcolunaiguala
(123)
A=

6
7
4

18
2
10

2
4
6

SubstituirnamatrizAoelementodalinha1coluna3por10efazer
omesmo.
Exerccio 4.2 Dada a matriz M, comprovar o teorema de Cayley
Hamilton:Todaamatrizraizdoseupolinmiocaracterstico
M=

41

1
1
3

1
2
0

2
0
1

Equaeslineares________________________________

Exerccio4.3
Considere a matriz A. Calcular os seus valores e
vectoresprprios
A=

1
2
4

Exerccio4.1
A=[6182;724;4106];
d=det(A)
b=[1;2;3];
sol=A\b
A(1,3)=10
d=det(A)
sol=A\b
A*solb

42

2
5
10

0
1
1

Equaeslineares________________________________

Exerccio4.2
M=[112;120;301];
poly(M)
M^3+4*M+13*eye(3)
Exerccio4.3
A=[120;251;4101];
[V,D]=eig(A)
diag(D)

43

Das könnte Ihnen auch gefallen