Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Matlab
Apostila Matlab
Apostila de Matlab
Agosto de 2010
_______________________________________________________________________________
SUMRIO
1. INTRODUO
1.1 Vantagens do Matlab
1.2 Desvantagens do Matlab
4
4
5
2. O AMBIENTE MATLAB
2.1 Comand Window
2.2 Workspace
2.3 Current Directory
2.4 Command History
5
6
6
7
8
4. OPERAES ARITMTICAS
9
10
6. OPERADORES LGICOS
12
7. OPERADORES RELACIONAIS
12
8. CLCULO MATRICIAL
8.1 Elementos de uma Matriz
8.2 Soma e Subtrao
8.3 Multiplicao de uma Matriz por um Escalar
8.4 Multiplicao entre Matrizes
8.5 Diviso Direta de Matrizes
8.6 Potnciao
8.7 Transposta de uma Matriz
8.8 Determinante
8.9 Inversa da Matriz
8.10 Autovalores e Autovetores
8.11 Matriz escalonada reduzida
8.12 Posto de uma Matriz
8.13 Nmeros e Matrizes Complexas
8.14 Matriz diagonal ou diagonal de uma matriz
8.15 Matrizes Triangulares
8.16 Matriz Identidade
8.17 Matriz Composta por Elementos Unitrios
8.18 Matriz Nula (composta por elementos nulos)
8.19 Matriz Aleatria
13
13
14
15
15
16
16
17
17
18
18
19
19
20
21
21
22
22
23
23
_______________________________________________________________________________ 2
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
9. GERANDO VETORES
24
9.1 O Comando linspace
25
10. ARQUIVOS M DE COMANDOS
26
28
28
29
30
32
33
35
35
38
40
42
48
14. POLINMIOS
14.1 Razes
14.2 Multiplicao
14.3 Adio
14.4 Diviso
14.5 Clculo de Polinmios
14.6 Derivada de Polinmios
14.7 Derivada de um Produto de Polinmios
14.8 Derivada de um Quociente de Polinmios
49
49
50
51
51
52
52
52
53
54
74
_______________________________________________________________________________ 3
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
1. INTRODUO
MATLAB (abreviatura de Matrix Laboratory Laboratrio de Matrizes) um
programa d ecomputador de uso especfico, otimizado para executar clculos cientficos e
de engenharia. Ele nasceu como um programa para operaes matemticas sobre
matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexvel
capaz de resolver essencialmente qualquer problema tcnico.
Seus elementos bsicos so matrizes que no requerem dimensionamento. Ele
permite
implementar e
rpida e
Vantagens do Matlab
O Matlab tem muitas vantagens, em comparao com linguagens computacionais
de
Plataforma:
tem
suporte
em
diferentes
sistemas
_______________________________________________________________________________ 4
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
e) Interface Grfica de Usurio: tem ferramentas que permitem a um
programador construir interativamente uma interface grfica de usurio (GUI
Graphical User Interface) para seus programas. Com este recurso, o
programador capaz de projetar programas sofisticados de anlise de dados,
os quais podem ser operados por usurios relativamente inexperientes.
1.2
Desvantagens do Matlab
O Matlab tem duas desvantagens principais. Primeiro, uma linguagem interpretada,
por isso pode ser mais lento que linguagens compiladas. Esse problema pode ser
diminudo pela estruturao apropriada dos programas Matlab para otimizar o
desempenho do cdigo vetorizado.
A segunda desvantagem o custo: uma cpia completa do Matlab de cinco a dez
vezes mais cara que um compilador convencional C ou Fortran.
2. O AMBIENTE MATLAB
A unidade fundamental de dados em qualquer programa Matlab a matriz, que
uma coleo de valores de dados organizados em linhas e colunas, determinada por um
nome nico. At mesmo escalares so tratados como matrizes em Matlab, eles so
simplesmente matrizes co apenas uma linha e uma coluna.
No Matlab, os arquivos de comando tem extenso .m (M-files) e os arquivos de
dados binrios default tem extenso .mat (Mat-files).
No Windows, o Matlab instalado com os seguintes diretrios:
BIN
DEMOS
demonstrao em HTML
EXTERN
HELP
JAVA
diretrio temporrio
TOLLBOX
toolboxes do Matlab
WORK
diretrio de trabalho.
_______________________________________________________________________________ 5
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Figura 1 Ambiente Matlab janelas: Comand Window, Workspace, Current Directory e Command History.
2.1
Comand Window
a rea de trabalho onde os comandos (as instrues) so digitados;
As operaes podem ser realizadas e seus resultados so mostrados;
Tambm nessa janela que se pode executar um arquivo m-file;
O prompt >> indica que o programa est pronto aguardando uma instruo;
Com as teclas (seta para cima) e (seta para baixo) possvel recuperar
todos os comandos j digitados.
2.2
Workspace
_______________________________________________________________________________ 6
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
a rea na qual so exibidas todas as variveis definidas na rea de trabalho;
Essa janela possui quatro colunas indicando o nome, dimenso, nmero de bytes e
a classe de cada varivel;
As variveis podem ser editadas e visualizadas nessa prpria janela, basta dar um
click-duplo para edit-las;
H um menu flutuante que possvel:
Open abrir a janela;
Graph criar grficos a partir dos dados contidos na varivel;
Select All selecionar todas as variveis;
Import Data importar variveis de um arquivo para o workspace;
Save Selection As salvar as variveis selecionadas em um arquivo;
Save Workspace As salvar todas as variveis do workspace em um arquivo;
Copy copiar a varivel para a rea de transferncia de dados do Windows;
Delete apagar a varivel do workspace;
Clear Workspace apagar todas as variveis do workspace;
Rename renomear a varivel.
2.3
Current Directory
rea onde exibida uma lista dos arquivos contidos no diretrio corrente.
_______________________________________________________________________________ 7
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
2.4 Command History
rea onde ficam armazenadas todas as instrues executadas no MATLAB.
4. OPERAES ARITMTICAS
As expresses podem ser construdas usando os operadores aritmticos usuais:
_______________________________________________________________________________ 8
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
resulta em:
x =
-1 0 1
_______________________________________________________________________________ 9
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
mostra aproximadamente 4 dgitos decimais ou usam notao cientfica. Por exemplo, a
matriz:
x = [4/3 1.2345e-6]
0.0000
5.1
Resultados
4 dgitos decimais (formato-padro)
14 dgitos decimais
5 dgitos mais expoente
5 dgitos no total, com ou sem expoente
15 dgitos mais expoente
15 dgitos no total, com ou sem expoente
Formato monetrio
Exibio hexadecimal de bits
Razo aproximada entre inteiros pequenos
Exemplo
12,3457
12,34567890123457
1,2346e+001
12,346
1,234567890123457e+0001
12,3456789012346
12,35
4028b0fcd32f707a
1000/81
O Comando disp
O comando disp exibe o contedo de uma varivel, mas, ocultando o nome da
Toda vez que um comando disp executado, a sada que ele produz mostrada
numa nova linha. Por exemplo:
% A varivel A inicializada com uma matriz 2x3
A=[5 9 1; 7 2 4]
A =
5
7
9
2
1
4
_______________________________________________________________________________10
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
% O comando disp utilizado para exibir a matriz A
disp(A)
5
7
9
2
1
4
O cdigo abaixo ensina como utilizar os comandos input e disp em uma rotina para
calcular a soma entre 3 nmeros. Ao final da soma o a rotina exibe um texto juntamente
com o resultado da soma.
_______________________________________________________________________________11
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
6. OPERADORES LGICOS
Um operador lgico examina senteas verdadeiras/falsas e produz resultados
verdadeiro (1) ou falso (0), de acordo com a funcionalidade do operador. Por exemplo, o
operador lgico AND resulta 1 (verdadeiro) se, e somente se, todas as senteas
envolvidas na operao forem verdadeiras. Tanto os operadores lgicos quanto
relacionais podem ser utlizados em expresses matemticas ou, como ser visto adiante,
serem combinados a outros comando para controlar ou tomar deciso sobre o fluxo do
programa.
7. OPERADORES RELACIONAIS
O operador relacional compara dois nmeros determinando se oresultado da senta
de comparao verdadeiro (V) ou falso (F). Por exemplo (5<8 V), ou seja, se a
sentea for verdadeira o valor retornado 1. Caso contrrio, o valor retornado 0.
_______________________________________________________________________________12
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
8. CLCULO MATRICIAL
As matrizes em Matlab podem ter uma ou mais dimenses. Matrizes unidimensionais
podem ser visualizadas como uma srie de valores colcoados em uma linha ou em uma
coluna, como um nico ndice para selecionar os elementos individuais da matriz.
O Matlab permite a criao de matrizes com tantas dimenses quanto necessrio
para um dado problema. Essas matrizes tm um ndice para cada dimenso, e um
elemento individual selecionado pela especificao de um valor para cada ndice.
8.1
4.3266
7.5000
Elementos individuais de uma matriz podem ser referenciados com seus respectivos
ndices entre parnteses. No exemplo anterior, para referenciar o segundo elemento do
vetor x:
x(2)
ans =
4.3266
_______________________________________________________________________________13
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Analogamente em uma matriz, com linha e coluna determinada tenho um elemento.
Seja:
x=[1 2 3;4 5 6;7 8 9]
x =
1
4
7
2
5
8
3
6
9
>>
%% extrair o elemento da linha 2 e coluna 3
x(2,3)
ans =
6
Soma e Subtrao
Os smbolos + e - denotam adio e subtrao de matrizes. A operao definida
2
4
1
2
3
4
2
5
5
8
B=A'
B =
C=A+B
C =
_______________________________________________________________________________14
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
0
3
8.3
3
6
A
A =
1
3
2
4
2
6
4
8
3
9
6
12
2*A
ans =
D=3*A
D =
8.4
2
4
1
2
3
4
5
11
11
25
B
B =
A*B
ans =
_______________________________________________________________________________15
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
8.5 Diviso Direta de Matrizes
Existem dois smbolos para diviso de matrizes no MATLAB "\" e "/". Se A uma
matriz quadrada no singular, ento A\B e A/B correspondem respectivamente a inv(A)*B
e A*inv(B), por exemplo:
A=[1 2; 3 4]
A =
1
3
2
4
B=[5 6; 7 8]
B =
5
7
6
8
-3
4
-4
5
A\B
ans =
A/B
ans =
3.0000
2.0000
-2.0000
-1.0000
8.6
0.3333
0.5000
Potnciao
A expresso A^p eleva A p-sima potncia e definida se A matriz quadrada e
2
4
A^3
_______________________________________________________________________________16
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
ans =
37
81
54
118
8.7
8
64
2
4
3
4
8.8
Determinante
Para calcularmos o determinante de uma matriz utilizamos o comando det(matriz).
2
1
4
1
5
3
6
5
_______________________________________________________________________________17
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
7
2
1
8
2
1
9
4
1
9
0
2
0
9
3
8.9
Inversa da Matriz
Para calcularmos a inversa de uma matriz utilizamos o comando inv(matriz).
0.2489
-0.3799
0.1048
0.0393
-0.0175
0.0227
0.1022
0.0201
-0.0175
-0.0367
0.0157
0.0707
0.0908
-0.1659
0.0515
-0.4079
1.6646
-1.2454
0.0830
0.2742
-1
1
0.4472
0.8944
_______________________________________________________________________________18
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
%% autovalores associados a matriz A
D =
3.0000
0
0
-1.0000
2
1
8
2
1
4
1
9
4
1
5
3
9
0
2
6
5
0
9
3
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
rref(A)
ans =
1
0
0
0
0
2
4
1
8
16
3
0
1
0
2
3
0
rref(A)
ans =
1
0
0
_______________________________________________________________________________19
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
posto da matriz, que nada mais do que a quantidade mxima de linhas linearmente
independentes da matriz.
A=[1 2 8; 2 4 16; 0 1 3]
A =
1
2
0
2
4
1
8
16
3
0
1
0
2
3
0
rank(A)
ans =
2
rref(A)
ans =
1
0
0
2.0000 + 6.0000i
4.0000 + 8.0000i
_______________________________________________________________________________20
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
A =
1.0000 + 5.0000i
3.0000 + 7.0000i
2.0000 + 6.0000i
4.0000 + 8.0000i
-1
0
2
0
0
0
0
0
0
3
0
0
0
0
0
0
1
0
0
0
0
0
0
-1
0
0
0
0
0
0
4
_______________________________________________________________________________21
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
A =
3
4
6
11
1
2
5
-3
1
11
1
0
5
-3
1
0
1
2
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
1
0
0
0
0
0
1
0
0
0
0
0
1
0
0
0
0
0
1
eye(5,8)
ans =
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
_______________________________________________________________________________
ones(5,5)
ans =
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
ones(5,8)
ans =
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0.276922984960890
0.046171390631154
0.097131781235848
0.823457828327293
0.694828622975817
0.317099480060861
_______________________________________________________________________________23
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
ans =
-0.432564811528221
-1.665584378238097
0.125332306474831
0.287676420358549
-1.146471350681464
1.190915465642999
1.189164201652103
-0.037633276593318
0.327292361408654
9. Gerando Vetores
O dois pontos ( : ) um caracter importante no MATLAB. Escrevendo:
x=1:8
x =
1
2.5000
4.0000
5.5000
7.0000
0.2000
0.4000
1.8000
2.0000
0.6000
0.8000
2.8000
3.0000
1.0000
1.2000
1.4000
1.2094
1.2332
1.2320
Columns 12 through 16
2.2000
2.4000
2.6000
1.1135
1.1667
_______________________________________________________________________________24
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Columns 12 through 16
0.9193
0.7662
0.5898
0.3958
0.1909
1.0000
1.0174
1.0597
1.1135
1.1667
1.2094
1.2332
1.2320
1.2015
1.1391
1.0446
0.9193
0.7662
0.5898
0.3958
0.1909
Outros incrementos, diferentes da unidade podem ser utilizados, como seja o caso
do seguinte exemplo que impe um incremento de pi/4.
%% criamos um vetor que comea em 0 e vai at PI, com um passo de PI/4
y = 0 : pi/4 : pi
y =
0
0.7854
1.5708
2.3562
3.1416
9.1
O Comando linspace
Pode-se, tambm, gerar vetores linearmente espaados fazendo uso da funo
0.2000
0.4000
0.6000
0.8000
1.0000
_______________________________________________________________________________25
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
k1 =
0
2.5000
5.0000
7.5000
10.0000
Figura 9 Arquivo .m para o calculo de uma funo seno com A=1, f=1000Hz.
_______________________________________________________________________________26
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________27
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Tabela 6 Comando de entrada,sada, depurao e interao com o usurio.
Comandos
Descrio
disp(ans)
echo
Input
pause
pause(n)
waitforbuttonpress
(Observe o uso da funo disp, que exibe na tela o contedo do seu argumento). O lao
for, tal como o bloco if, deve ser terminado com a instruo end. Este lao poderia ser
expresso na forma mais comum:
for i=1:4
disp(i^2)
end
1
4
9
16
_______________________________________________________________________________28
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
1
4
9
16
O lao for possibilita que uma srie de comandos seja repetida por um nmero de
vezes fixo e pr-definido. O comando end usado como limite inferior do corpo do lao.
Exemplos:
1) Calcular a tabuada do nmero 17:
for n=0:10
tab(n+1)=17*n;
end
disp(tab)
0
17
34
51
68
85
102
119
136
153
170
A estrutura geral :
while expresso
comandos
end
_______________________________________________________________________________29
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Calcular o fatorial de um nmero qualquer.
%Fatorial com While
x=input('Digite um valor: ');
fat=1;
while x>0
fat=fat*x;
x=x-1;
end
disp(fat)
%Clculo da Srie
n=0;
x=1;
serie=0;
while n<50
serie=serie+x/2;
x=x+2;
n=n+1;
end
disp(serie)
1250
if expresso
comandos
end
Os comandos entre as instrues if e end so executados se todos os elementos na
expresso forem Verdadeiros.
Exemplo:
Calcular o desconto de 20% para um nmero de cadeiras maior que 5. Sendo que o
custo de cada cadeira de R$55,00.
cadeiras=input('digite o numero
preco=55;
custo=cadeiras*preco;
if cadeiras>5
custo=(1-20/100)*custo;
end
disp(custo)
_______________________________________________________________________________30
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Outra forma de usar a estrutura :
if expresso
comandos executados se Verdadeiro
else
comandos executados se Falso
end
Exemplos:
1) Dado qualquer distncia que um veculo deve percorrer (valor real em km), a
capacidade do tanque de combustvel (valor real em litros) e a mdia de consumo de
combustvel do veculo (valor real em km/litros). Supondo que o tanque estar cheio na
partida, mostrar umas das mensagens:
DEVE HAVER REABASTECIMENTO
OU
NO DEVE HAVER REABASTECIMENTO
% DISTNCIA
%
d=input('Digite a distncia a ser percorrida: ');
mc=15; %media de consumo
ct=45; %capacidade do tanque
if mc*ct>=d
disp('No deve haver reabastecimento')
else
disp('Deve haver reabastecimento')
end
Pontuao
Superior a 8 em pelo menos uma das provas ou soma dos pontos superior a 14.
Superior a 6 em pelo menos uma das provas ou soma dos pontos superior a 9.
Nenhm dos casos acima.
_______________________________________________________________________________31
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
nota2=input('Digite a segunda nota: ');
if nota1>=8 | nota2>=8 | (nota1+nota2)>=14
disp('aluno nvel A')
elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9
disp('aluno nvel B')
else
disp('aluno nivel C')
end
comando
switch
utilizado
quando
desejamos
selecionar
(chavear)
switch expresso
case valor 1
......... grupo de comandos
case valor 2
......... grupo de comandos
case valor 3
......... grupo de comandos
otherwise
......... grupo de comandos
end
1) Faa um programa que o usurio possa digitar qualquer ms do ano e como resultado
seja mostrado o nmero de dias do ms correspondente.
%Programa para saber quantos dias tem o mes
%
clear;
clc;
mes=input('digite o mes desejado: ');
switch mes
case {'Janeiro','Marco','Maio','Julho','Agosto','Outubro','Dezembro'}
disp('31 dias')
case {'Fevereiro'}
disp('28 ou 29 dias')
case {'Abril','Junho','Setembro','Novembro'}
disp('30 dias')
_______________________________________________________________________________32
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
12. ARQUIVOS M DE FUNES
um programa elaborado como arquivo.m e que calcula algo desejado pelo
programador, devolvendo somente o valor da resposta. Os comandos executados por
esse programa ficam ocultos. Voc s visualiza o que entra e o que sai, ou seja, uma
funo uma caixa preta.
Exemplo:
1) Montar um programa que realize o clculo da distncia entre dois pontos (x1, y1) e
(x2, y2) em um sistema de coordenadas cartesianas.
d=
(x 2 x1 )2 + ( y 2 y1 )2
_______________________________________________________________________________33
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
No caso, vamos criar um programa principal chamado distancia e atravs deste
programa vamos chamar a funo dist2.m, na qual estar implementada a foruma acima.
Passo 1: Criando a funo:
_______________________________________________________________________________34
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
13. GRFICOS NO MATLAB
Grficos so ferramentas poderosas quando se deseja interpretar visualmente os
resultados. Um recurso especialmente interessante nas engnharias e demais cincias
exatas, onde o MATLAB encontra as maiores aplicaes.
O comando plot utilizado para criao de grficos bidimensionais. A forma mais
simples desse comando :
plot (x,y)
Cada um dos argumentos x e y deve ser um vetor. Alm disso, os dois vetores
devem possuir a mesma quantidade de elementos. Ao executar o omando plot, gerada
uma sada na janela Figure Window. Caso a janela Figure Window esteja fechada, ela
ser aberta automaticamente aps a execuo do comando.
_______________________________________________________________________________35
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Exemplo:
x
1) Seja a funo y = e sen(x) . Como seria seu grfico no intervalo [0 ; e1 ]?
_______________________________________________________________________________36
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
1) Seja a funo f ( x) = x 3 9 x + 3 (livro, pg.31). Como seria seu grfico no intervalo [-4 ,
3]?
%%% Grfico da funo f(x)=x.^3-9.*x+3 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x = -4:0.1:3; %%gera o vetor x
y = x.^3-9.*x+3; %%calcula as amplitudes, vetor y
plot(x,y,'--b'); %%plota o grafico, linha pontilhada, na cor azul
grid on;
%% coloca o grid
title('\bf{grfico f(x)=x.^3-9.*x+3}' ); %% coloca o titulo no grafico em
negrito
xlabel('eixo x'); %% coloca texto no eixo x
ylabel('eixo y'); %% coloca texto no eixo y
axis([-4 4 -25 15]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX]
%%\bf negrito{'texto'}, \it italico{'texto'};
%%\fontname{arial}
2) Utilizando o processo de ii), pg. 33 livro, vamos isolar a funo f(x) e obter a
equao equivalente g(x)=h(x) e esboar o grfico das funes g(x) e h(x) no
mesmo eixo cartesiano e localizar os pontos x onde as duas curvas se interceptam.
f ( x) = x 3 9 x + 3
g ( x) = x 3
h( x) = 9 x 3
_______________________________________________________________________________37
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Grfico das funes g(x)=x.^3 e h(x)=9.*x-3 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
x = -10:0.1:10; %%gera o vetor x
g = x.^3; %%calcula as amplitudes, vetor g
plot(x,g,'--b'); %%plota o grafico g(x), linha pontilhada, na cor azul
grid on;
%% coloca o grid
h=9.*x-3; %%calcula as amplitudes, vetor h
hold on; %%segura o grafico g(x) para que possamos plotar h(x)
plot(x,h,'r'); %%plota o grafico h(x), linha pontilhada, na cor vermelho
%% vamos plotar g e h para analisar onde g(x)=h(x), pg 35 livro.
xlabel('eixo x'); %% coloca texto no eixo x
ylabel('eixo y'); %% coloca texto no eixo y
axis([-5 5 -40 40]) %%ajusta os eixos para os limites [XMIN XMAX YMIN YMAX]
_______________________________________________________________________________38
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Figura 19 Plotando grficos com marcadores e linha pontilhada, detalhe comando subplot.
_______________________________________________________________________________39
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________40
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________41
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
%% Gerando grficos de Barras
x=-2.9:0.2:2.9;
y=exp(-x.*x);
subplot(2,2,1)
bar(x,y)
title('Grafico de barras de uma curva em forma de sino');
subplot(2,2,2)
bar3(x,y)
title('Grafico de barras 3-D de uma curva em forma de sino');
subplot(2,2,3)
stairs(x,y)
title('Grafico em escada de uma curva em forma de sino');
subplot(2,2,4)
barh(x,y)
title('Grafico de barras horizontal');
O MATLAB define uma superfcie do tipo mesh (rede) pelas coordenadas Z sobre
um plano x-y. Superfcies tipo mesh so teis para visualizar matrizes demasiadamente
grandes para serem mostradas na forma numrica, ou para plotar funes de duas
variveis.
O primeiro passo para plotar uma funo de 2 variveis z=f(x,y) gerar matrizes X e
Y contendo linhas e colunas repetidas, respectivamente, para funcionarem como o
domnio da funo. A funo meshgrid transforma o domnio especificado por dois vetores
x y em duas matrizes X e Y. Essas matrizes ento so usadas para avaliar a funo de 2
variveis. Por exemplo, seja a funo:
_______________________________________________________________________________42
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
x=-pi:0.5:pi;
y=-pi:0.5:pi;
[Mx,My]=meshgrid(x,y);
Mz=cos(Mx).*sin(My);
mesh(Mx,My,Mz);
Figura 22
x=-pi:0.5:pi;
y=-pi:0.5:pi;
[Mx,My]=meshgrid(x,y);
Mz=cos(Mx).*sin(My);
mesh(Mx,My,Mz);
surf(Mx,My,Mz)
Figura 23
_______________________________________________________________________________43
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
r= sqrt(X.^2+Y.^2)+eps;
Z=sin(r)./r;
mesh(X,Y,Z)
Figura 24
[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
r= sqrt(X.^2+Y.^2)+eps;
Z=sin(r)./r;
mesh(X,Y,Z)
surf(X,Y,Z)
Figura 25
_______________________________________________________________________________44
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
figure(2)
[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
mesh(X,Y,3*sqrt(X.^2+Y.^2))
Figura 26
figure(3)
[X,Y]=meshgrid(-8:0.5:8,-8:0.5:8);
mesh(X,Y,3*sqrt(X.^2+Y.^2))
surf(X,Y,3*sqrt(X.^2+Y.^2))
Figura 27
_______________________________________________________________________________45
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Tabela 9
x=-4*pi:0.1:4*pi;
y=-4*pi:0.1:4*pi;
plot3(cos(x),sin(y),(x+y))
Figura 28
_______________________________________________________________________________46
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
%% Equaes paramtricas
t=0:0.1:6*pi;
x=sqrt(t).*sin(2*t);
y=sqrt(t).*cos(2*t);
z=0.5*t;
plot3(x,y,z,'k','linewidth',2)
grid on
xlabel('x');
ylabel('y');
zlabel('z');
Figura 29
%% Malha e persianas verticais
x=-3:0.25:3;
y=-3:0.25:3;
[X,Y]=meshgrid(x,y);
Z=1.8.^(-1.5*sqrt(X.^2+Y.^2)).*cos(0.5*Y).*sin(X);
meshz(X,Y,Z)
xlabel('x');
ylabel('y');
zlabel('z');
Figura 30
_______________________________________________________________________________47
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
13.5 Anotaes no Grfico
O MATLAB possui comandos de fcil utilizao para adicionar informaes em um
grfico:
Tabela 10
Por exemplo:
fplot('sin', [-pi pi])
title('Grfico da funo f(x)=seno(x), -pi<x<pi')
xlabel('x')
ylabel('f(x)')
grid
Figura 31
_______________________________________________________________________________48
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
14. POLINMIOS
Encontrar razes de um polinmio, isto , os valores para os quais o polinmio igual
a zero. No MATLAB, um polinmio representado por um vetor linha contendo seus
coeficientes em ordem decrescente. Por exemplo:
x 4 12 x 3 + 0 x 2 + 25 x + 116
introduzido como:
p=[1 -12 0 25 116]
p =
1
-12
25
116
14.1 Razes
Dada essa forma, as razes do polinmio so encontradas usando-se a funo
roots(p):
roots(p)
ans =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
-12
25
116
>> r=roots(p)
r =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
>> p2=poly(r)
p2 =
1.0000
-12.0000
-0.0000
25.0000
116.0000
>>
_______________________________________________________________________________49
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Calcular a raiz do polinmio
>> p=[1 0 -2 -5]
P ( x) = x 3 2 x 5
p =
1
-2
-5
>> r=roots(p)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
>>
14.2 Multiplicao
A multiplicao polinomial efetuada por meio da funo conv(que faz a convoluo
3
2
entre dois vetores). Consideremos o produto de dois polinmios a ( x) = x + 2 x + 3 x + 4 e
b( x) = x 3 + 4 x 2 + 9 x + 16 .
a=[1 2 3 4];
b=[1 4 9 16];
c=conv(a,b)
c =
1
20
50
Consideremos os polinmios
>> P=[1 2 3]
75
84
64
P ( x) = x 2 + 2 x + 3 e Q( x) = 4 x 2 + 5 x + 6
P =
1
>> Q=[4 5 6]
Q =
4
>> R=conv(P,Q)
R =
4
13
28
27
18
>>
_______________________________________________________________________________50
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
Nos devolve o resultado: 4 13 28 27 18. Isto
R ( x) = P ( x).Q( x) = 4 x 4 + 13x 3 + 28 x 2 + 27 x + 18
14.3 Adio
O MATLAB possui uma funo direta para somar polinmios:
a=[1 2 3 4];
b=[1 4 9 16];
d=a+b
d =
2
12
20
Quando dois polinmios forem de ordens diferentes, aquele que tiver menor ordem
ter de ser preenchido com coeficientes iguais a zero, a fim de torn-lo da mesma ordem
do polinmio de ordem mais alta.
Exemplo:
>> e= c+[0 0 0 d]
e=
1 6 20 52 81 96 84
14.4 Diviso
Consideremos o polinmio P ( x) = 4 x 3 + x 2 2 x + 3 e Q( x) = x 2 + 3 x + 6 .
>> P=[4 1 -2 3]
P =
4
-2
>> Q=[1 3 6]
Q =
1
>> [q r]=deconv(P,Q)
q =
4
-11
r =
7
69
_______________________________________________________________________________51
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
14.5 Clculo de Polinmios
O comando que realiza o calculo dos valores de f(x) podem ser realizados atravs
do comando polyval.
x=linspace(-1,3);%% escolhe 100 pontos entre 1 e 3.
p=[1 4 -7 -10]; %%define o polinmio p(x)=x3+4x2-7x-10
v=polyval(p,x)
%%calcula p(x) nos valores armazenados em x e armazena o
resultado em v. O resultado pode ser representado graficamente usando-se:
plot(x,v)
grid
-1
>> polyder(P)
ans =
8
-3
>>
Isto P ' ( x ) = 8 x 3 x + 6 x + 5
3
-5
-1
>> polyder(P,Q)
ans =
_______________________________________________________________________________52
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
4
-12
14
>>
>> P=[1 -5 9]
P =
1
-5
>> Q=[1 7]
Q =
1
>> [n,d]=polyder(P,Q)
n =
1
14
-44
14
49
d =
>>
2
2
Isto n( x ) = x + 14 x 44 numerador e n( x ) = x + 14 x + 49 o denominador.
_______________________________________________________________________________53
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
15. LISTA DE FUNES DO MATLAB
_______________________________________________________________________________54
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________55
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________56
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________57
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________58
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________59
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________60
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________61
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________62
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________63
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________64
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________65
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________66
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________67
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________68
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________69
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________70
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________71
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________72
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________73
Clculo Numrico Utilizando Matlab
_______________________________________________________________________________
[2].
[3].
[4].
[5].
_______________________________________________________________________________74
Clculo Numrico Utilizando Matlab