Académique Documents
Professionnel Documents
Culture Documents
Mini urso
Uma Introduo ao
MatLab
por
Janeiro 2013
MatLab
Janeiro/2013
Sumrio
Lista de Figuras
1 Introduo
2 Ajuda no MatLab
2.1
Comandos . . . . . . . . . . . . .
2.1.1 Comando help . . . . . .
2.1.2 Comando demo . . . . . .
2.2 Editor/Depurador de Programas .
2.3 Limitao de Memria . . . . . .
2.4 Arquivos .m . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Atribuio . . . . . . . . . . . . . . . . . . .
3.1.1 Comando who . . . . . . . . . . . . .
3.1.2 Comando whos . . . . . . . . . . . .
3.1.3 Comando
lear . . . . . . . . . . . .
3.1.4 Comando
l
. . . . . . . . . . . . .
3.2 Operaes Bsi
as: +, -, *, / . . . . . . . . .
3.3 Operador dois pontos ':' . . . . . . . . . . .
3.3.1 Outros Usos do Operador dois pontos
3.4 Cl
ulos Fundamentais e Matrizes Espe
iais
3.4.1 Constantes Predenidas . . . . . . .
4 Funes Elementares
4.1
Funes Bsi
as . . . . . . . . . . . .
4.1.1 Exemplos simples . . . . . . .
4.1.2 Nmeros Complexos . . . . .
4.1.3 Comandos de Converso . . .
4.2 Funes Trigonomtri
as . . . . . . .
4.3 Funes Hiperbli
as : Nomen
latura
.
.
.
.
.
.
ii
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
4
4
4
4
5
5
7
8
8
8
8
9
12
12
13
14
16
16
17
19
21
21
22
iii
SUMRIO
5 Controle de Fluxo
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
23
25
25
27
28
28
31
33
7 Medidas Estatsti as
35
8 Gr os
37
6.1
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
8.10
Mtodos Diretos . . . . . . .
9.1.1 Eliminao de Gauss
9.1.2 De
omposio LU . .
9.2 Mtodos Iterativos . . . . .
9.2.1 Mtodo PCG . . . .
9.2.2 Mtodo Minres . . .
9.2.3 Comando spy . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
37
37
38
39
40
40
41
42
42
43
43
44
45
46
46
46
47
48
48
49
50
50
51
52
53
55
12 Anlise Polinomial
57
iv
SUMRIO
59
64
66
13.1 Integrao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
13.2 Diferen
iao . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
15.1
15.2
15.3
15.4
Fatorao Triangular - LU . . . . . . . . . .
De
omposio - QR . . . . . . . . . . . . . .
De
omposio em Valores Singulares - SVD
Autovalores e Autovetores . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
66
66
67
67
16 Consideraes Finais
69
70
Lista de Figuras
5.1 Estruturas Condi
ionais: If-else-end . . . . . . . . . . . . . . . . . . . . . . . . . 28
5.2 Controle de Fluxo: If-else-end . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
5.3 Estruturas Condi
ionais: Swit
h-
ase-otherwise-end . . . . . . . . . . . . . . . . 30
7.1
8.1
8.2
8.3
8.4
8.5
8.6
8.7
8.8
8.9
9.1
10.1
10.2
10.3
10.4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
39
40
41
41
41
42
43
51
52
53
54
Captulo 1
Introduo
1.1 O que MatLab ?
Matlab(MATrix LABoratory) uma ferramenta
omputa
ional(software) que possui diversas fun
ionalidades numri
as, algbri
as e gr
as. O Matlab permite a resoluo de vrios
problemas matemti
os, sem requerer muito
onhe
imento de programao,
omo seria ne
essrio para resolver os mesmos problemas em linguagens de programao de baixo nvel,
omo
por exemplo C.
Os usos tpi
os para o Matlab in
luem:
Cl
ulos matemti
os;
Desenvolvimento de algoritmos;
Modelagem, simulao e
onfe
o de prottipos;
Anlise, explorao e visualizao de dados;
Gr
os
ient
os e da engenharia;
Desenvolvimento de apli
aes, in
luindo a elaborao de interfa
es gr
as
om o usurio.
1.2 Sintaxe
A sintaxe do Matlab diferente da sintaxe usada por ns no dia-a-dia, por motivos bvios,
omo podemos ver nos exemplos abaixo.
Lu
as Thunder
ats mudou sua foto do fa
ebook.
CAPTULO 1.
INTRODUO
Essa frase ambgua, e para um
omputador, que uma maquina, no possvel destinguir
o sentindo analisando o
ontexto.
Se vo
no
omer seu almoo, no
omer a sobremesa.
Se vo
no al
anar o total na primeira prova, no al
anar total no nal do trimestre.
Na primeira frase, esperado que se a pessoa
omer o almoo, ela
omer sobremesa, porm
na segunda frase, se no satisfeita a primeira
ondio, no se espera que a
ontea o
ontrrio.
Para a linguagem
omputa
ional, esse tipo de ambiguidade no pode o
orrer, portanto o "se"do
Matlab semelhante ao do segundo
aso, que, por sua vez, semelhante ao "se"matemti
o.
Andr atirou em Joo Pessoa.
A ambiguidade dessa frase
ausada pelo fato de uma
idade possuir um nome prprio,
pois no sabemos se Andr atirou estando em Joo Pessoa, ou em algum
om esse nome. Por
isso, no Matlab no se pode repetir nomes nem usar palavras reservadas.
Dessa forma, abordaremos adiante
omo nomear variveis e utilizar
omandos.
1.3 Toolboxes
O Matlab tanto um ambiente quanto uma linguagem de programao, e um dos aspe
tos
mais poderosos o fato de que a linguagem Matlab permite
onstruir suas prprias ferramentas
reutilizveis. O usurio pode fa
ilmente
riar suas prprias funes e programas espe
iais
em linguagem Matlab. A medida que se es
reve mais e mais funes para lidar
om
ertos
problemas naturalmente se levado a agrupar por
onvenin
ia, funes rela
ionadas entre
si em diretrios espe
iais. Isso nos introduz o
on
eito de Toolbox: uma
oleo de arquivos
para tratar
lasses espe
iais de problemas. As toolboxes so mais do que uma simples
oleo
de funes teis, elas representam os esforos de alguns dos maiores pesquisadores do mundo
em
ampos
omo
ontrole, pro
essamento de sinais e identi
ao de sistemas, dentre outros.
Novas toolboxes so
riadas a
ada ano, dentre alguns exemplos no Matlab tem-se:
Toolbox de Pro
essamento de Sinais;
Toolbox de Identi
ao de Sistemas;
CAPTULO 1.
INTRODUO
Toolbox de Otimizao;
Toolbox de Sistemas de Controle;
Toolbox de Controle Robusto;
Toolbox de Redes Neurais;
Toolbox Spline.
Captulo 2
Ajuda no MatLab
2.1 Comandos
2.1.1 Comando help
Uma vez ini
ializado, o Matlab, apare
er na janela de
omandos um prompt . O prompt
signi
a que o Matlab est esperando um
omando. Todo
omando deve ser nalizado te
landose Enter. No Matlab, pode-se obter ajuda sobre qualquer
omando ou funo. O
omando
help (sem o prompt ) mostra uma listagem de todos os pa
otes disponveis. Ajuda sobre um
pa
ote espe
o ou sobre um
omando ou funo espe
a obtida
om o
omando help
nome,(sem a vrgula) onde nome pode ser o nome de um pa
ote ou o nome de um
omando ou
funo.
CAPTULO 2.
AJUDA NO MATLAB
espe
os para depurar um programa. Para a
essar pela ajuda e
onhe
er estes
omandos
digite: help debug e em seguida pode-se fazer o help de qualquer um dos
omandos mostrados.
2.4 Arquivos .m
Os
omandos do MatLab so normalmente digitados na janela de
omando, onde uma ni
a
linha de
omando introduzida e pro
essada imediatamente. O MatLab tambm
apaz de
exe
utar sequn
ias de
omandos armazenadas em arquivos.
Os arquivos que
ontm as de
laraes do MatLab so
hamadas arquivos ".m", e
onsistem
de uma sequn
ia de
omandos normais do MatLab, possibilitando in
luir outros arquivos
".m"es
ritos no formato texto (ASCII).
Para editar um arquivo texto na janela de
omando do MatLab, sele
ione New M-File
para
riar um novo arquivo ou Open M-File para editar um arquivo j existente, a partir
do menu File. Os arquivos podem, tambm, ser editados fora do MatLab utilizando qualquer
editor de texto.
Captulo 3
Manipulao de Matrizes, Vetores e
Es
alares
Uma das prati
idades do MatLab que no se faz ne
essria a de
larao do tipo da
varivel se esta no for uma varivel global. Isso o
orre porque, para o MatLab, todas as
variveis
onstituem-se matrizes.
Por exemplo, ao denirmos a seguinte frase:
text = 'I Es
ola de Vero';
Automati
amente, a varivel text tratada
omo um vetor de 17 posies ou
omo uma
matriz linha de dimenses 1x17. De fato, para manipularmos o nosso vetor ou matriz, ao utilizarmos o
omando
text
Obteremos
omo sada:
text =
I Es
ola de Vero
Da mesma forma, se utilizarmos o
omando
text(3)
Obteremos
omo sada:
ans =
6
CAPTULO 3.
E
Se quisermos tratar a varivel
omo uma matriz, ao utilizarmos o
omando
text(1,3)
Obtemos
omo sada:
ans =
E
Podemos notar que, para a
essar apenas uma posio do vetor, ou matriz, basta que esta
seja identi
ada entre parnteses. Repare que a varivel ans (de answer) padro para o
MatLab e utilizada sempre que um resultado, que retornado por alguma funo, no foi
designado a nenhuma outra varivel.
3.1 Atribuio
Para atribuir um valor de retorno a uma varivel basta digitar o nome da varivel seguida
do sinal = esquerda da funo que retorna o valor ou
adeia de
ara
teres (string). Para
melhor demonstrar, temos os seguintes exemplos:
>> l a r a n j a s = 4 ;
>> bananas = 1 0 ;
>> p r e
o . l a r a n j a = 1 . 7 5 ;
>> p r e
o . banana = 2 . 3 ;
>> f r u t a s = l a r a n j a s + bananas ;
>> p r e
o . medio = ( l a r a n j a s p r e
o . l a r a n j a + bananas p r e
o . banana ) / f r u t a s ;
CAPTULO 3.
Bytes
8
8
8
552
Class
Attributes
double
double
double
stru
t
3.1.4 Comando
l
Se, alm de apagar todas as variveis, deseja-se, tambm, limpar a tela, o MatLab dispe o
omando
l
para tal.
CAPTULO 3.
1 1
2 1
1 2
B = [ 1 2 3 4 + <ENTER>
5 6 7 8 + <ENTER>
9 10 11 12
B=
1 2 3
4
5 6 7
8
9 10 11 12
C = [1 0 0; 0 1 0; 0 0 1
C=
1
0
0
0 0
1 0
0 1
J que qualquer dado numri
o
onsiderado um arranjo, os smbolos +, -, *, / so designados
omo operaes matri
iais ao passo que para operaes
om es
alares podem ser utilizados
os smbolos .- , .+ , .* , ./ . Quando o arranjo um nmero pode-se usar um ou outro smbolo
indistintamente. Usando as matrizes A, B e C denidas a
ima observem os seguintes exemplos:
A*C
ans =
CAPTULO 3.
2
1
1
10
1 1
2 1
1 2
Produtos entre matrizes de dimenses distintas so possveis desde que respeitadas as dimenses para o produto, por exemplo, A*B bem denida, j B*A no permitido dado que
o nmero de
olunas de B 4 e o nmero de linhas de A 3.
A*B
ans =
16 20 24
20 24 28
24 28 32
28
32
36
B*A
??? Error using ==> mtimes
Inner matrix dimensions must agree.
MAT = A.*C
MAT =
2
0
0
0 0
2 0
0 2
Isto
orresponde a um produto
omponente a
omponente, isto , a matriz MAT
ujas entradas so MAT (i,j) = A(i,j) C (i,j).
A+1
ans =
3 2 2
2 3 2
2 2 3
As formas A.+1, A(1,1).+1 no so validas ao passo que a forma 5.+1 a
eita.
CAPTULO 3.
11
CAPTULO 3.
2
1
1
12
1 1
2 0
1 2
4 5 6
v = 3: 1.5: 6
v=
3.0000 4.5000 6.0000
CAPTULO 3.
13
2
3
6
7
10 11
A matriz sub2 denida pelas entradas de B das linhas 2 e 3 inter
eptadas
om as
olunas
1 at 3.
sub2 = B(2:3,1:3)
sub2 =
5
9
6
7
10 11
CAPTULO 3.
14
a=
1
2
3
2 3
4 6
6 9
4 9
CAPTULO 3.
15
lo k : retorna a hora no formato de vetor : ano, ms, dia, hora, minuto, segundo;
Apesar das
ara
tersti
as espe
iais destas variveis elas no so proibidas no sentido de
poderem ser denidas pelo usurio. Se isto a
onte
er, o valor atual destas variveis ser aquele
denido pelo usurio. Depois de apli
ado o
omando
lear, sobre a "
onstante"redenida pelo
usurio, ela assumira o seu valor "default "
omo
onstante predenida pelo Matlab.
Por exemplo:
date
ans =
08-Jan-2013
date = 10
date =
10
lear date
date
ans =
08-Jan-2013
Captulo 4
Funes Elementares
Nesta seo, sero apresentados
omandos para efetuar
hamadas das funes matemti
as
elementares,
omo funes analti
as trigonomtri
as, exponen
iais, logartmi
as, que podem
ser usadas tanto em es
alares
omo em vetores e matrizes. No Matlab trabalha-se
om listas
numri
as, portanto para se
al
ular o valor de uma funo
onhe
ida ou denida, em uma
varivel x, deve-se
onhe
er o valor x ou a lista x. Se x um nmero a funo retornar um
nmero. Se x uma lista, a funo tambm retornara uma lista de valores, os
orrespondentes
valores da funo para
ada valor da lista. Por exemplo:
x = [.1 .2 .3;
sin(x) % (funo trigonomtri
a seno)
ans =
0.0998 0.1987 0.2955
Isto , [sin(.1)sin(.2)sin(.3)]. Ainda se x uma matriz qualquer o resultado de b = sin(x)
tambm uma matriz
ujas
omponentes so b(i,j) = sin(x(i,j)).
CAPTULO 4.
FUNES ELEMENTARES
17
a = -2.6;
A = [1 2 3;
B = [2 2 2;
C = [2.6 1.3 -3.2 3.5;
CAPTULO 4.
FUNES ELEMENTARES
18
1 -4 3
2 -3 4
x = sign(C) % sinal
x=
1
1 -1 1
CAPTULO 4.
FUNES ELEMENTARES
19
0 1
No
aso do argumento de entrada ser uma lista/matriz,
ada elemento da lista (ou matriz)
resposta e a solu
ao dada pela fun
ao que
orrespondente ao elemento na mesma posi
ao na
lista de entrada. Por exemplo:
rem( [3 3 3;4 4 4;5 5 5 , [1 2 3;1 2 3;1 2 3 )
ans =
0
0
0
1 0
0 1
1 2
CAPTULO 4.
FUNES ELEMENTARES
20
ans =
3.6056
onj(2+3*j);% o
omplexo
onjugado de 2+3*j, isto , 2-3*i
A forma polar de um
omplexo tambm pode ser obtida.
a = 1;
b 2;
x = a+b*i;
r = abs(x);
theta = angle(x); % retorna o ngulo polar do vetor (a,b) ou atan(b/a)
y = r*exp(theta*i); % forma polar
z = r*(
os(theta)+i*sin(theta)); % igual a y e igual a x (formas equivalentes de um
omplexo)
Exemplo simples de
l
ulo
om utilizao da funo tangente.
A = [-pi/5 , 0;1+2*i , 3*pi/2+0.001;
tan(A)
ans =
1.0e+02 *
-0.0073
0
0.0003 + 0.0101*i -10.0000
O primeiro valor (1.0e+02) indi
a que dever multipli
ar-se o nmero 100 a matriz 2x2 que
vem em seguida. Para aumentar a pre
iso na resposta numri
a aplique-se o
omando:
format long; % pre
iso da ordem 10-15
1/pi
ans =
0.31830988618379
CAPTULO 4.
FUNES ELEMENTARES
21
ans =
0.3183
CAPTULO 4.
FUNES ELEMENTARES
22
As funes
s
(x), se
(x),
ot(x), a
s
(x), ase
(x), a
ot(x) denem as funes
osse
ante,
se
ante e
otangente de x e suas inversas respe
tivamente.
Com denies equivalentes respe
tivamente para
s
h(x), se
h(x),
oth(x), a
s
h(x), ase
h(x)
e a
oth(x).
Captulo 5
Controle de Fluxo
As funes exe
utveis es
ritas na linguagem utilizada pelo Matlab esto implementadas
em arquivos
om extenso ".m". Suponha que o arquivo "exemplo.m"
ontenha uma srie de
linhas de
omandos ou funes do Matlab, ento quando este arquivo
hamado sem extenso
do prompt do Matlab:
exemplo + <ENTER>
o Matlab entender que este arquivo exe
utvel e assim
ada linha ser interpretada na
sequn
ia de a
ordo
om a sua funo.
Da mesma forma, um mtodo ou sub-rotina pode ser denido dentro de um arquivo
om
extenso ".m"
ontendo argumentos de entrada e de sada. Por exemplo,
ria-se o arquivo "
ir
um.m"
ontendo as seguintes linhas:
% Esta funo
al
ula o permetro de uma
ir
unfern
ia de
% raio R. Si R uma matriz,
ir
um(R) retornar uma matriz
%
ontendo os permetros das
ir
unfern
ias de raios iguais
% aos respe
tivos valores da matriz R
f unctionC = circum(R)
C = 2 pi R;
As linhas a
ima
orrespondem ao arquivo "
ir
um.m". Para utilizar est funo basta digitar:
ir
um(2)
ans =
23
CAPTULO 5.
CONTROLE DE FLUXO
24
12.5664
Em
aso de ser R um vetor:
R = [1 2 3;
ir
um(R)
ans =
6.2832 12.5664 18.8496
As primeiras linhas ini
iadas
om o smbolo %
onstituem uma valiosa fonte de informaes
a respeito da fun
ionalidade do arquivo. Para ter a
esso a elas no ne
essrio abrir o arquivo
om um editor, basta digitar:
help
ir
um
ento as primeiras linhas juntas de
omentrios sero mostradas. Usando lookfor
omo
exemplo, obtm-se a sada:
lookfor permetro
ir
um - Esta funo
al
ula o permetro de uma
ir
unfern
ia de
Este
omando mostra s a primeira linha do arquivo,
aso esta
ontenha a palavra permetro,
alem do nome do arquivo. Por isto importante do
umentar de forma pre
isa esta primeira
linha,
aso o nmero de funes venha a aumentar
onsideravelmente. No ne
essrio que o
nome do arquivo seja igual ao nome da "fun
tion"dentro do mesmo.
Quando a funo tem mais de um argumento de sada, digamos rea, volume, ento estes devem vir entre
ol
hetes, por exemplo, a seguinte funo denida no arquivo "
ilindro.m"
al
ula
a rea e o volume de um
ilindro.
% Cal
ula-se a rea e volume de um
ilindro
% de altura h e raio r
f unction[area, volume] = cilindro(h, r)
area = 2 pi r h + 2 pi r 2;
CAPTULO 5.
CONTROLE DE FLUXO
25
volume = pi r 2 h;
Para
hamar esta funo seja do "prompt"ou de outro exe
utvel ".m", basta digitar uma
hamada na forma exempli
ada a seguir:
[a, v] = cilindro(0.5, 1)
Des
rio
menor que
menor ou igual
maior que
maior ou igual
igual no sentido de
ondio/
omparao
no igual, distinto
CAPTULO 5.
CONTROLE DE FLUXO
26
1<2
ans =
1
Esta resposta indi
a que a
ondio 1<2 verdadeira. Se o retorno zero, isto indi
a que
a
ondio falsa. 1>2
ans =
0
No
aso do uso de arranjos: a = [1 2;3 4;
b = [0 2;4 -5;
a =b
ans =
1
1
0
1
1 0 1
Esta forma efetua uma
omparao
ara
tere por
ara
tere, posio a posio. Se as letras
so iguais retorna 1, se no retorna 0. Um
omando mais direto para saber se dois textos so
iguais na sua totalidade :
str
mp(texto1,'teste')
CAPTULO 5.
CONTROLE DE FLUXO
27
ans =
1
Isto , o
ontedo da varivel texto1 exatamente o
onjunto dos
ara
teres da palavra
teste.
Des
rio
e
ou
no
Por exemplo:
a = 2; b = 0;
= 1; % possvel denir variveis em uma mesma linha
a < b & b <
% equivale a questionar: a < b < c?
ans =
0
A resposta que a armao falsa. Para isso basta que seja a b ou que b c.
Outro exemplo:
(b == c | c < a) % pergunta: falso que b igual a
ou
menor que a?
ans =
0
CAPTULO 5.
CONTROLE DE FLUXO
28
If-else-end
Exer
io Resolvido:
Um problema muito
omum es
olher o material adequado para
er
ar um terreno. Se o
preo total da
er
a for menor que R$ 100,00,
onstrumos
om um material, e se for maior,
onstrumos
om outro. Como fazer um programa que fale qual material usar se tivermos o
valor do metro de
er
a e o permetro do terreno em metros?
Soluo:
CAPTULO 5.
CONTROLE DE FLUXO
29
f u n
t i o n M = d e
i d e m a t e r i a l ( pre
oMetro , p e r i m e t r o )
i f ( ( pre
oMetro p e r i m e t r o ) < 100)
M = 1;
else
M = 2;
end
A estrutura de
ondio if-else-end fun
iona
omo uma bifur
ao do uxo de exe
uo do
programa, abrindo duas possibilidades de
aminhos(
omandos),
omo pode ser visualizado a
seguir:
Swit h- ase-otherwise-end
O swit
h
ase um blo
o de
ontrole que fun
iona
omo um agrupamento de vrios ifs e
elses, que tenham relao entre si.
CAPTULO 5.
CONTROLE DE FLUXO
30
CAPTULO 5.
CONTROLE DE FLUXO
31
Fim
Esse exemplo seria para o
aso de quisermos
ortar todas as batatas, sem nos preo
uparmos
om a quantidade de batata a ser
ortada. Porm e se fosse de nosso interesse des
as
ar 100
batatas? Pediramos assim:
Fim
Como abstrao, enxergamos que em uma estrutura de repetio pre
isamos avisar para
o
omputador quando parar, seja quando atingir uma
ondio preestabele
ida ou quando
atingir uma quantidade predeterminada. Para o primeiro
aso temos a estrutura while, e para
o segundo temos a estrutura for.
While
n = 1024;
log = 0;
while (n > 1)
n = n/2;
CAPTULO 5.
CONTROLE DE FLUXO
32
l o g = l o g +1;
end
log =
10
For
Diferente do while, a estrutura de repetio for usada quando se sabe ao
erto o nmero
de repeties,
omo mostrado no exemplo a seguir:
% pren
her a matriz A NxN
N = 5;
f o r l i n h a = 1 :N
f o r
o l u n a = 1 :N
A( l i n h a ,
o l u n a ) = l i n h a+
o l u n a ;
end
end
A =
0
1
2
3
4
1
2
3
4
5
2
3
4
5
6
3
4
5
6
7
4
5
6
7
8
Captulo 6
Operaes Sobre Matrizes
O Matlab
onta
om algumas operaes espe
iais sobre matrizes que se tornam ne
essrias
quando se trabalha matemati
amente
om elas.
CAPTULO 6.
34
Captulo 7
Medidas Estatsti
as
No prximo exemplo
onstri-se uma matriz aleatoriamente onde as
olunas
orrespondem
as notas de uma turma de 13 alunos,
ada
oluna representa uma matria. As linhas representam as notas de
ada aluno.
% ex7
% Este exemplo
al
ula medidas estatsti
as relativas as notas
% de 6 matrias de uma turma de 13 alunos
f o r i =1:13 ,
f o r j =1:6 ,
TURMA( i , j )=100 rand ;
end
end
media_turma = mean (TURMA) ; % media por m a t r i a ( turma toda )
media_portugues = mean (TURMA( : , 3 ) ) ; % mdia das n o t a s da
o l u n a
[ nota_minima , numero_alunos = min (TURMA) ; % nota mnima de
ada m a t r i a
mat = TURMA( : , 1 ) ; % p r i m e i r a
o l u n a da m a t r i z TURMA
[ ordem_as
endente , num = s o r t ( mat ) ; % ordem a s
e n d e n t e do v e t o r mat
% num o nmero do a lu n o na l i s t a
[ nota_maxima , numero_alunos = max(TURMA) ; % nota mxima de
ada m a t r i a e
% o nmero do al u n o ( o p r i m e i r o que a
h a r )
35
CAPTULO 7.
MEDIDAS ESTATSTICAS
36
s t d ( mat ) ; % d e s v i o padro da p r i m e i r a m a t r i a
h i s t ( nota_minima ) ; % hi s to g ra ma (1 0 b a r r a s por d e f a u l t ) f i g u r a .
[ n ,m =h i s t ( nota_minima ) ; % n=a l t u r a , m =
e n t r o da b a r r a
h i s t ( nota_minima , 3 ) ; % hi s t ogr ama
om 3 b a r r a s
[ n ,m = h i s t ( nota_minima , 3 ) ;
Captulo 8
Gr
os
Para obter gr
os em 2D usa-se o
omando plot. Este
omando permite uma variedade
de argumentos de entrada. Estes argumentos permitem adi
ionar uma srie de opes sada
gr
a
omo ttulo para os eixos, ttulo para o gr
o, opes para o tipo de letra, tamanho,
ores. possvel a superposio de gr
os ou obter vrios gr
os em uma mesma janela. A
seguir sero exempli
ados estas opes,
om vrios gr
os.
37
CAPTULO 8.
GRFICOS
38
z =
os(x);
plot(x,y,'b:p',x,z,'
-',x,z,'m+');
t i t l e ( ' Funes T r i g o n o m t r i
a s ' , ' F on tS iz e ' , 1 4 , ' Fontweight ' , ' Bold ' ) ;
l e g e n d ( ' s i n (\ t h e t a ) ' , '
o s (\ t h e t a ) ' , ' tan (\ t h e t a ) ' , '
o t (\ t h e t a ) ' ) ;
CAPTULO 8.
GRFICOS
39
CAPTULO 8.
40
GRFICOS
CAPTULO 8.
41
GRFICOS
CAPTULO 8.
42
GRFICOS
CAPTULO 8.
43
GRFICOS
CAPTULO 8.
GRFICOS
44
x = p i / 2 : . 1 : p i / 2 ;
f o r
=1:20 ,
y = s i n (2 x+
p i / 1 0 ) ;
p l o t ( x , y , ' LineWidth ' , 1 8 ) ;
a x i s ([ p i /2 p i /2 1 1 ) ;
M(
) = g e t f r a m e ;
end ;
movie (M, 2 0 , 1 0 ) ;
A ltima linha de
omando signi
a que os gr
os armazenados em M so mostrados 10
vezes a uma taxa de repetio de 20 guras por segundo.
x = p i / 2 : . 1 : p i / 2 ;
y = p i / 2 : . 1 : p i / 2 ;
[ X,Y = meshgrid ( x , y ) ;
f o r
=1:20 ,
Z = s i n (2 X+
p i /10)+1.5
o s (2 Y+
p i / 1 0 ) ;
s u r f (X, Y, Z ) ;
M(
) = g e t f r a m e ;
end ;
movie (M, 2 0 ) ;
Captulo 9
Soluo de Sistemas de Equaes Lineares
Um sistema de equa
oes lineares se es
reve da forma Ax = b onde A e uma matriz
onhe
ida
de dimensoes nxm, geralmente quadrada (m=n), x e o vetor
oluna de in
ognitas e b e um
vetor
oluna de valores numeri
os. Caso A (quadrada) seja nao singular, isto e, existe uma
matriz denotada A1 tal que A A1 = A1 A = I , onde I e a matriz identidade. Entao
pela teoria o sistema apresenta uma uni
a solu
ao x. A matriz identidade e
ara
terizada por
Iii = 1eIij = 0, se i 6= j , isto , os valores da diagonal sao todos 1 e fora da diagonal os valores
sao zero.
Uma boa medida da "qualidade"de uma matriz dado pelo nmero de
ondio. O
omando
ond(A) retorna este nmero, se o nmero retornado grande, indi
ar que a matriz A
aproximadamente singular, o que ruim do ponto de vista numri
o. A pre
iso da soluo
numri
a utilizando A ser afetada.
Caso m < n, o sistema tem mais in
gnitas que equaes e existem innitas solues.
Neste
aso, pro
ura-se, s vezes, uma soluo que satisfaa a
ondio de minimizao da soma
das distn
ias aos hiperplanos denidos pelas equaes (mnimos quadrados). Caso m > n, o
sistema tem mais equaes que in
gnitas, ento o sistema sobre determinado e a soluo
geralmente no existe. O problema de mnimos quadrados no tem soluo ni
a (norma
Eu
lidiana):
minimize Norm(A x = b)
Se a soluo existe, esta se a
ha diretamente da seguinte maneira:
A x = b = x = A1 b
A inverso da matriz A do sistema nem sempre uma operao barata. Para matrizes
grandes ou
heias, prefere-se a utilizao de mtodos alternativos,
omo os mtodos de de
omposio de matrizes tais
omo LU, QR, Cholesky ou mtodos iterativos
omo minres, gmres
45
CAPTULO 9.
46
e outros (implementados no Matlab). Outro
uidado que deve ser tomado que os mtodos
de de
omposio no se apli
am a qualquer tipo de matriz. Por exemplo, para o mtodo de
Cholesky, a matriz do sistema deve ser denida positiva. Uma operao simples
omo:
A = [3 1 2;0 4 0;-1 -2 -3; % matriz no denida positiva
R =
hol(A); % mtodo de de
omposio de Cholesky
Retornar a seguinte mensagem de erro:
??? Error using ==>
hol
Matrix must be positive denite.
Para resolver o sistema utilizando mtodos de de
omposio, deve-se
ontar
om o algoritmo
que
al
ula a soluo baseado nas matrizes de
ompostas. J o mtodo iterativo,
onsiste no
l
ulo ou atualizao, a
ada passo, de matrizes e vetores envolvidos no algoritmo que aproxima
a soluo. Geralmente utilizam-se produtos vetor-vetor, matriz-vetor e
al
ula-se uma norma
no erro da aproximao, tentando atingir uma tolern
ia preestabele
ida.
A = [1 2 1;2 1 2;1 2 2;
b = [1;0;-1; %vetor
oluna
B = inv(A); % inverte uma ni
a vez
C = A -1; % forma alternativa para inverter A
x = C*b; %
aso b mude C
ontinua o mesmo
9.1.2 De omposio LU
CAPTULO 9.
47
>> A = [ 1 2 2 ; 2 1 2 ; 2 2 1 ;
>> [ L , U, P = l u (A) ;
Esta simples funo retornar 3 matrizes 3x3. Uma matriz triangular inferior L, uma
triangular superior U e uma matriz de permutao P, de forma que L*U = P*A. Para resolver
o sistema, foi utilizado o seguinte mtodo:
f u n
t i o n x = solve_LU (L , U, P , b )
= P b;% permutao l a d o b : PA x = L U x = P b
% substituio triangular inferior : L y =
y = zeros (n , 1 ) ;
y (1) =
( 1 , 1 ) /L ( 1 , 1 ) ;
f o r i =1:n ,
soma = 0 . 0 ;
f o r j =1:( i 1) ,
soma = soma+L( i , j ) y ( j ) ;
y ( i ) =
( i ) soma ;
end
end
% substituio triangular inferior U x = y
x = zeros (n , 1 ) ;
x ( n , 1 ) = y ( n , 1 ) /U( n , n ) ;
f o r i=n : 1 : 1 ,
soma = 0 . 0 ;
f o r j =( i +1): n ,
soma = soma+U( i , j ) x ( j ) ;
x ( i ) = ( y ( i ) soma )/U( i , i ) ;
end
end
end
CAPTULO 9.
48
CAPTULO 9.
49
O primeiro teste retornou os seguintes resultados. A varivel ag = 0 indi
a que o mtodo
onvergiu dentro do nmero de iteraes desejado atingindo a tolern
ia desejada, no
aso, em
10 iteraes.A norma do resduo relativo foi:
kb A xk
= 3.5881e 009
kbk
Captulo 10
Ajuste de Curvas e Interpolao
Este tipo de ferramentas til quando se dispe de um
onjunto des
ontnuo de dados
(valores numri
os pontuais), e se pro
ura traar uma
urva ou superf
ie (funo
ontnua)
que
ontenha estes pontos.
Existem diferentes
urvas que podem ser utilizadas para interpolar estes pontos. Podem ser
usados distintos graus para o polinmio que interpola, ou ainda podem ser usados polinmios
por partes. Quando se usam polinmios por partes pode a
onte
er que a
urva que interpola
os pontos tenha derivada
ontnua ou no, naqueles pontos
onhe
idos. Naturalmente surge
a questo de que modelo mais apropriado para interpolar os dados. O analista numri
o
deve saber de
idir sobre esta questo, j que o uso de um modelo ou de outro a
arretar uma
resposta diferente. Nem sempre de um polinmio de grau maior ser obtida uma resposta mais
pre
isa.
Caso o analista
onhea a priori o
omportamento do seu modelo ele poder usar esta
informao para a es
olha do grau de interpolao. Caso
ontrrio ele dever pro
urar obter
maior quantidade de medies experimentais para obter um
omportamento mais apurado na
zona de interesse no domnio do problema.
50
CAPTULO 10.
51
CAPTULO 10.
52
mesh(X,Y,Z);
xlabel('E I X O X');
ylabel('E I X O Y');
zlabel('E I X O Z');
CAPTULO 10.
53
CAPTULO 10.
54
xlabel('X');
ylabel('Y');
grid;
Captulo 11
Leitura e Es
rita de Arquivos de Dados
Pode-se ler um arquivo de dados que
ontenha apenas nmeros usando o
omando load. Um
arquivo
om qualquer extenso, por exemplo, "matriz.dat", que
ontenha nmeros em formato
de vetor ou matriz pode ser lido
om o
omando load. O Matlab
ria uma varivel de nome
matriz
omo sendo vetor ou matriz da mesma dimenso daquela que foi lida.
Por exemplo, se o
ontedo do arquivo "matriz.dat":
1
5
2 3 4
6 7 8
Depois de lido o arquivo
om o
omando load,
ria-se a varivel matriz
omo sendo uma
matriz 2x4:
load matriz.dat;
matriz
matriz =
1
5
2 3 4
6 7 8
O arquivo no deve
onter letras ou
ara
teres entre aspas. Os nmeros devem estar dispostos em forma de matriz. Para salvar as variveis ou dados em geral usa-se o
omando save.
Exemplo:
55
CAPTULO 11.
56
lear;
x = [0 1 2 3 4 5;
y = sqrt(2)*eye(3);
z = rand(2);
save dados x y z; % salvar os dados x,y e z dentro do arquivo 'dados.mat'
save dados2.txt x y z -as
ii; % salva em formato txt, 8 digitos
save dados3.txt x y z -as
ii -double; % salva em formato txt
om 16 digitos
Captulo 12
Anlise Polinomial
Para denir um polinmio basta es
rever a lista referente aos
oe
ientes deste polinmio.
Por exemplo para trabalhar
om o polinmio f (x) = 3x4 0.5x3 + x 5.2 no Matlab dena-se
a lista:
f = [3,-0.5, 0, 1,-5.2;
Cada
oe
iente deve apare
er em ordem de
res
ente a partir da maior poten
ia no nula
deste polinmio, e quando a poten
ia no existe deve-se preen
her
om zero,
omo o
aso do
termo x2 . Para avaliar este polinmio f usa-se o
omando polyval tanto para valor simples
omo para listas.
% ex 12.1
f = [3,-0.5,0,1,-5.2; x = 1; polyval(f,x) % valor f(1)
x = [0 1 1.1 1.2; % redenio de x
y = polyval(f,x) % lista de valores f(xi)
orrespondente a
ada valor da lista x
g = [1 0 -3 -1 2.4; % polinmio g(x) = x4 3x2 x + 2.4
m =
onv(f,g) % produto dos polinmios f e g
[q,r = de
onv(f,g); % diviso polinomial f/g
rts = roots(f) % razes ou zeros do polinmio f
f = poly(r) %
oe
ientes do polinmio
ujas razes so os elementos de r
f = [1 -2 3;
df = polyder(f) %
oe
ientes do polinmio 2x-2 derivada de f (x) = x2 2x + 3
x = -5:0.1:7;
yf = polyval(f,x) % valores de f relativos a x
ydf = polyval(df,x) % valores da derivada de f em x
plot(x,yf,x,ydf) % gr
o de f e da sua derivada
57
CAPTULO 12.
ANLISE POLINOMIAL
58
legend('f','df');
title('Funo e a sua derivada: f = x2-2x+3 ; df = 2x-2');
Captulo 13
Integrao e Diferen
iao
Existem mtodos que trabalham
om aproximao numri
a e outros
om funes analti
as.
possvel no Matlab trabalhar
om algoritmos numri
os e algumas vezes tambm
om mtodos
simbli
os. No
aso de integrao e diferen
iao existem
omandos para trabalhar
om ambos
os mtodos.
13.1 Integrao
No Matlab existe o
omando int que
al
ula a integral indenida de uma funo analti
a
om respeito a sua varivel simbli
a. Primeiro deve-se denir a varivel independente
omo
sendo simbli
a, veja exemplo a seguir.
59
CAPTULO 13.
INTEGRAO E DIFERENCIAO
60
>> i n t ( x1 l o g (1+x1 ) , 0 , 1 ) % i n t e g r a no i n t e r v a l o [ 0 , 1
ans =
1/4
>> i n t ( 4 x t , x , 2 , s i n ( t ) ) % i n t e g r a no i n t e r v a l o [ 2 , s i n ( t )
ans =
2 t (
o s ( t )^2 + 3)
f (x)dx
Exemplo:
a = 0;
b = 1;
O arquivo fun
.m dene a funo a ser integrada,
omo dado a seguir.
% arquivo fun
.m
CAPTULO 13.
INTEGRAO E DIFERENCIAO
61
CAPTULO 13.
INTEGRAO E DIFERENCIAO
62
Para trabalhar tanto simbli
a
omo numeri
amente utiliza-se o
omando di.
Exemplos:
>>
>>
>>
>>
syms x ; % d e
l a r a x s i m b l i
o
d f = d i f f ( ' x^ 2 ' , x ) ; % d e r i v a s i m b o l i
a m e n t e d f
d f =2 x ;
d i f f ( '
o s ( ax ) ' , x )
ans =
a s i n ( a x )
Observe que a foi tratada
omo
onstante. Para permitir que
os(a*x) seja derivvel
om
respeito a a, deve-se primeiramente de
larar a
omo sendo simbli
o.
>> syms a ;
>> h = '
o s ( a x ) ' ;
>> d f a = d i f f ( h , a )
ans =
x s i n ( a x )
Numeri
amente a diferen
iao
al
ula-se
omo a diferena entre dois pontos adja
entes
quando estes se aproximam. Para tal utiliza-se o
omando di
al
ulando diferenas entre valores adja
entes. O prximo exer
io exempli
a o
l
ulo da derivada numri
a e
ompara-se
om a derivada analti
a.
x = ( 1 : 1 / 1 5 : 1 ) ; % 30 d i v i s e s do i n t e r v a l o [ 1 , 1
f = x .^ 5 3 x . ^4 11 x . ^3 + 27 x . ^ 2 + 10 x 2 4 ;
df_an = 5 x . ^4 12 x . ^3 33 x .^ 2 + 54 x + 1 0 ; % d e r i v a d a a n a l t i
a
d f = d i f f ( f ) . / d i f f ( x ) ; % d e r i v a d a numri
a de f
omo aproximao
% t a n g e n t e a
urva f em p on tos a d j a
e n t e s
xd = x ( 2 : l e n g t h ( x ) ) ; % Dado que o v e t o r d i f e r e n a d f tem um e l e m e n to a
CAPTULO 13.
INTEGRAO E DIFERENCIAO
63
% menos e as d im e n s es de x e d f devem
o i n
i d i r
p l o t ( x , f , ' r ' , xd , df , ' b ' ,x , df_an , ' k ')
l e g e n d ( ' f ( x ) ' , ' { d f /dx} numri
o ' , ' { d f /dx } a n a l t i
o ' ) ;
xlabel ( 'x ' ) ;
y l a b e l ( ' f ( x ) e { d f /dx } ' ) ;
t i t l e ( ' Po l i n m i o e sua de ri v ad a ' ) ;
A quarta linha do arquivo a
ima mostra
omo usar o
omando di para
al
ular numeri
amente a derivada. O gr
o mostra as
urvas do polinmio f e as derivadas analti
a e
numri
a. A pre
iso do resultado numri
o depende do nmero de divises
onsiderados ou
de quo prximo esto os pontos, no
aso da primeira gura, foram tomados 30 divises do
intervalo [-1,1. J na outra gura, mostrada a mesma situao anterior, mas agora foram
onsideradas 100 divises no intervalo. Per
ebe-se
laramente a diferena de pre
iso entre os
asos
onsiderados.
Captulo 14
Equaes Diferen
iais Ordinrias
As funes ode45, ode23, ode113, ode15s, ode23s, ode23t, ode23tb permitem resolver problemas a valores ini
iais para equaes diferen
iais ordinrias (uma varivel independente) por
vrios mtodos.
Os
omandos ode23 e ode45 so baseados no mtodo de Runge-Kuta. Ambos possuem os
mesmos tipos de argumentos, ode23 usado para equaes de segunda e ter
eira ordem, ode45
utilizado para equaes de quarta e quinta ordem.
O exemplo a seguir apresenta uma equao diferen
ial de primeira ordem
uja soluo analti
a
onhe
ida. A equao diferen
ial uma de primeira ordem (a derivada de maior ordem
1):
y = g1 (x, y) = 3x2 , [2, 4]
Condio Ini
ial: y(2) = 0.5
Soluo Analti
a: y = x3 7.5
CAPTULO 14.
65
anl_y = x . ^3 7 . 5 ; % s o l u o a n a l t i
a
p l o t ( x , num_y, ' r : + ' , x , anl_y , ' b ' ) ; % g r f i
o das s o l u e s a n a l t i
a p e l o mtod
t i t l e ( ' S o l u o ODE' ) ;
x l a b e l ( 'X ' ) ;
ylabel ( 'y = f (x ) ');
l e g e n d ( ' Runge Kuta ' , ' S o l u o a n a l t i
a ' ) ;
grid ;
anl_ynum_y % e r r o a b s o l u t o
ometido
No
omando ode23, [2,4 o intervalo onde pro
ura-se a soluo, 0.5 a
ondio ini
ial
no ponto x = 2. A sada do
omando
orresponde a um
onjunto de
oordenadas, os quais
representam os pontos, no exemplo atual (x, numy ), da funo y = f (x) soluo numri
a da
equao diferen
ial. O nmero de pontos a determinar
al
ulado pelo mtodo do Matlab.
Pode ser usado mais um parmetro referente tolern
ia que est rela
ionada
om o tamanho
do passo. A tolern
ia "default" 0.001 para ode23 e 0.000001 para ode45. O erro ponto a ponto
ometido pelas solues analti
a e numri
a,
omo mostrado pela diferena anly numy ,
da ordem 1013 ,
onforme veri
ado pela superposio dos pontos
urva na gura a seguir.
Captulo 15
De
omposio e Fatorao de Matrizes
Existem muitos mtodos e t
ni
as numri
as que utilizam de
omposio e fatorao de
matrizes,
omo por exemplo, a resoluo de sistemas lineares. A de
omposio LU serve, por
exemplo, para determinar o determinante de uma matriz grande, ou a matriz inversa.
15.2 De
omposio - QR
Nesta de
omposio Q uma matriz ortonormal e R uma matriz triangular superior. A
propriedade de Q ser ortonormal indi
a que:
QT Q = I
66
CAPTULO 15.
67
Isto quer dizer que Q e a sua transposta QT sao inversas. As linhas da matriz Q possuem
a seguinte propriedade: denote por qi a linha i de Q, entao qi qjT = ij , isto , o produto
es
alar de duas linhas distintas nulo(vetores ortogonais) e o produto es
alar de uma linha por
si mesma 1 (vetor de norma 1). O mesmo apli
a-se as
olunas de Q.
Este mtodo usado para resolver um sistema indeterminado Ax = B resolvendo-se
Rx = QT B , onde A = QR . No Matlab esta de
omposio obtida assim:
[Q,R = qr(A); % fatorao QR
Logo a determina
ao destes esta asso
iada a resolu
ao de um sistema linear de equa
oes. A
primeira vista uma solu
ao trivial deste sistema e x = 0, = 0 . Mas podem existir valores nao
nulos que tambem resolvem o sistema. No Matlab os autovalores e autovetoers sao en
ontrados
om os
omandos:
lambda = eig(A);% lambda: vetor
ontendo os autovalores de A
CAPTULO 15.
68
Ou em termos de vetores:
A vi = vi dii , i = 1, 2, ..., n
De outra forma no Matlab A V (:, i) deve ser igual a V (:, i) D(i, i),para i = 1, 2, ..., n .
Captulo 16
Consideraes Finais
Alm do abordado nessa apostila, o Matlab apresenta ainda muitas outras funes, alm de
que para problemas mais espe
os existem vrios toolboxes
om outras ferramentas.
As funes e os mtodos abordados nessa apostila foram es
olhidos para que houvesse a
melhor
ompreenso das ferramentas gr
as, numri
as, analti
as e de implementao de
algoritmos que o Matlab possui, no tempo e espao disposto.
Quem entender o
ontedo presente neste material j possui
apa
idade para trabalhar
om
as prin
ipais ferramentas do Matlab e autonomia su
iente para
ontinuar o estudo a
er
a
deste ambiente.
Para
on
luir, vale a pena lembrar que este estudo pretende apresentar o Matlab ao pesquisador
omo uma ferramenta de ajuda
ient
a, e que um estudo apurado depender ne
essariamente da dedi
ao pesquisa na rea de atuao de
ada usurio.
69
70