Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Documental Única
Apostila Documental Única
Apostila de Matlab
Agosto de 2010
_______________________________________________________________________________
SUMÁRIO
1. INTRODUÇÃO 4
1.1 Vantagens do Matlab 4
1.2 Desvantagens do Matlab 5
2. O AMBIENTE MATLAB 5
2.1 Comand Window 6
2.2 Workspace 6
2.3 Current Directory 7
2.4 Command History 8
4. OPERAÇÕES ARITMÉTICAS 8
6. OPERADORES LÓGICOS 12
7. OPERADORES RELACIONAIS 12
8. CÁLCULO MATRICIAL 13
8.1 Elementos de uma Matriz 13
8.2 Soma e Subtração 14
8.3 Multiplicação de uma Matriz por um Escalar 15
8.4 Multiplicação entre Matrizes 15
8.5 Divisão Direta de Matrizes 16
8.6 Potênciação 16
8.7 Transposta de uma Matriz 17
8.8 Determinante 17
8.9 Inversa da Matriz 18
8.10 Autovalores e Autovetores 18
8.11 Matriz escalonada reduzida 19
8.12 Posto de uma Matriz 19
8.13 Números e Matrizes Complexas 20
8.14 Matriz diagonal ou diagonal de uma matriz 21
8.15 Matrizes Triangulares 21
8.16 Matriz Identidade 22
8.17 Matriz Composta por Elementos Unitários 22
8.18 Matriz Nula (composta por elementos nulos) 23
8.19 Matriz Aleatória 23
_______________________________________________________________________________ 2
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
9. GERANDO VETORES 24
9.1 O Comando linspace 25
14. POLINÔMIOS 49
14.1 Raízes 49
14.2 Multiplicação 50
14.3 Adição 51
14.4 Divisão 51
14.5 Cálculo de Polinômios 52
14.6 Derivada de Polinômios 52
14.7 Derivada de um Produto de Polinômios 52
14.8 Derivada de um Quociente de Polinômios 53
_______________________________________________________________________________ 3
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
1. INTRODUÇÃO
MATLAB (abreviatura de Matrix Laboratory – Laboratório de Matrizes) é um
programa d ecomputador de uso específico, otimizado para executar cálculos científicos e
de engenharia. Ele nasceu como um programa para operações matemáticas sobre
matrizes, mas ao longo dos anos transformou-se em um sistema computacional flexível
capaz de resolver essencialmente qualquer problema técnico.
Seus elementos básicos são matrizes que não requerem dimensionamento. Ele
permite implementar e resolver problemas matemáticos muito mais rápida e
eficientemente que através de outras linguagens como C, Basic, Pascal ou Fortran.
O MATLAB possui uma família de aplicativos específicos (“toolboxes”), que são
coleções de funções usadas para resolver determinados problemas tais como:
otimização, manipulação algébrica, redes neurais, processamento de sinais, simulação de
sistemas dinâmicos, entre outros.
Provavelmente, a característica mais importante do MATLAB é a sua extensibilidade,
que permite que engenheiros, matemáticos cientistas, e até mesmo você, contribuam
para o enriquecimento.
_______________________________________________________________________________ 4
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
e) Interface Gráfica de Usuário: tem ferramentas que permitem a um
programador construir interativamente uma interface gráfica de usuário (GUI –
Graphical User Interface) para seus programas. Com este recurso, o
programador é capaz de projetar programas sofisticados de análise de dados,
os quais podem ser operados por usuários relativamente inexperientes.
2. O AMBIENTE MATLAB
_______________________________________________________________________________ 5
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Figura 1 – Ambiente Matlab janelas: “Comand Window”, “Workspace”, “Current Directory” e “Command History”.
2.2 Workspace
_______________________________________________________________________________ 6
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
• É a área na qual são exibidas todas as variáveis definidas na área de trabalho;
• Essa janela possui quatro colunas indicando o nome, dimensão, número de bytes e
a classe de cada variável;
• As variáveis podem ser editadas e visualizadas nessa própria janela, basta dar um
click-duplo para editá-las;
Há um menu flutuante que é possível:
• Open – abrir a janela;
• Graph – criar gráficos a partir dos dados contidos na variável;
• Select All – selecionar todas as variáveis;
• Import Data – importar variáveis de um arquivo para o workspace;
• Save Selection As – salvar as variáveis selecionadas em um arquivo;
• Save Workspace As – salvar todas as variáveis do workspace em um arquivo;
• Copy – copiar a variável para a área de transferência de dados do Windows;
• Delete – apagar a variável do workspace;
• Clear Workspace – apagar todas as variáveis do workspace;
• Rename – renomear a variável.
Área onde é exibida uma lista dos arquivos contidos no diretório corrente.
_______________________________________________________________________________ 7
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
2.4 Command History
4. OPERAÇÕES ARITMÉTICAS
_______________________________________________________________________________ 8
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
resulta em:
x =
-1 0 1
Se pelo menos um dos elementos da matriz não é inteiro exato, existem várias
possibilidades de formatar a saída. O formato "default", chamado de formato “short”,
_______________________________________________________________________________ 9
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
mostra aproximadamente 4 dígitos decimais ou usam notação científica. Por exemplo, a
matriz:
x = [4/3 1.2345e-6]
é mostrada , para cada formato usado, da seguinte maneira:
x =
1.3333 0.0000
Toda vez que um comando disp é executado, a saída que ele produz é mostrada
numa nova linha. Por exemplo:
% A variável A é inicializada com uma matriz 2x3
A=[5 9 1; 7 2 4]
A =
5 9 1
7 2 4
_______________________________________________________________________________10
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
% O comando disp é utilizado para exibir a matriz A
disp(A)
5 9 1
7 2 4
O código abaixo ensina como utilizar os comandos input e disp em uma rotina para
calcular a soma entre 3 números. Ao final da soma o a rotina exibe um texto juntamente
com o resultado da soma.
_______________________________________________________________________________11
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
6. OPERADORES LÓGICOS
7. OPERADORES RELACIONAIS
Perceba que o operador relacional que testa a igualdade entre dois objetos é
representado por dois sinais de igualdade (==), sem espaço entre eles. Isso porque um
único sinal de igualdade representa o operador de atribuição. Os demais operadores
duplos (representados por dois caracteres) também não possuem espaços entre os
caracteres (<=, >=, ~=).
_______________________________________________________________________________12
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
8. CÁLCULO MATRICIAL
Elementos de uma matriz podem ser qualquer expressão do MATLAB. Por exemplo:
x=[-1.3 log(4.23^3) (1+2+3)/4*5]
x =
Elementos individuais de uma matriz podem ser referenciados com seus respectivos
índices entre parênteses. No exemplo anterior, para referenciar o segundo elemento do
vetor x:
x(2)
ans =
4.3266
_______________________________________________________________________________13
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
x =
1 2 3
4 5 6
7 8 9
>>
ans =
A =
1 2
3 4
B=A'
B =
1 3
2 4
C=A+B
C =
2 5
5 8
D =
_______________________________________________________________________________14
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
0 3
3 6
A =
1 2
3 4
2*A
ans =
2 4
6 8
D=3*A
D =
3 6
9 12
A =
1 2
3 4
B =
1 3
2 4
A*B
ans =
5 11
11 25
_______________________________________________________________________________15
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
8.5 Divisão Direta de Matrizes
Existem dois símbolos para divisão de matrizes no MATLAB "\" e "/". Se A é uma
matriz quadrada não singular, então A\B e A/B correspondem respectivamente a inv(A)*B
e A*inv(B), por exemplo:
A=[1 2; 3 4]
A =
1 2
3 4
B=[5 6; 7 8]
B =
5 6
7 8
A\B
ans =
-3 -4
4 5
A/B
ans =
3.0000 -2.0000
2.0000 -1.0000
ans =
0.2000 0.3333
0.4286 0.5000
8.6 Potênciação
A =
1 2
3 4
A^3
_______________________________________________________________________________16
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
ans =
37 54
81 118
ans =
1 8
27 64
O caracter ' (apóstrofe) denota transposta de uma matriz. Se z for complexo, z' é o
transposto conjugado complexo de z. Exemplo:
A = [1 2; 3 4]
A =
1 2
3 4
ans =
1 3
2 4
z =
2.0000 + 5.0000i
z'
ans =
2.0000 - 5.0000i
8.8 Determinante
A =
1 2 4 5 6
5 1 1 3 5
_______________________________________________________________________________17
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
7 8 9 9 0
2 2 4 0 9
1 1 1 2 3
ans =
-1145
ans =
A =
1 -1
-4 1
ans =
3.0000
-1.0000
[V,D] = eig(A)
%% autovetores associados a matriz A
V =
0.4472 0.4472
-0.8944 0.8944
_______________________________________________________________________________18
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
%% autovalores associados a matriz A
D =
3.0000 0
0 -1.0000
A =
1 2 4 5 6
5 1 1 3 5
7 8 9 9 0
2 2 4 0 9
1 1 1 2 3
rref(A)
ans =
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0
0 0 0 1 0
0 0 0 0 1
A=[1 2 8; 2 4 16; 0 1 3]
A =
1 2 8
2 4 16
0 1 3
rref(A)
ans =
1 0 2
0 1 3
0 0 0
_______________________________________________________________________________19
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
“posto” da matriz, que nada mais é do que a quantidade máxima de linhas linearmente
independentes da matriz.
A=[1 2 8; 2 4 16; 0 1 3]
A =
1 2 8
2 4 16
0 1 3
rank(A)
ans =
rref(A)
ans =
1 0 2
0 1 3
0 0 0
z =
3.0000 + 4.0000i
z =
3.0000 + 4.0000i
A =
_______________________________________________________________________________20
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
A =
x =
1 2 3 1 -1 4
diag(x)
ans =
1 0 0 0 0 0
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
A =
3 11 5
4 1 -3
6 2 1
%% extrai a diagonal principal da matriz
diag(A)
ans =
3
1
1
_______________________________________________________________________________21
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
A =
3 11 5
4 1 -3
6 2 1
ans =
3 11 5
0 1 -3
0 0 1
ans =
3 0 0
4 1 0
6 2 1
ans =
1 0 0 0 0
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 1 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 1 0 0 0 0
0 0 0 0 1 0 0 0
_______________________________________________________________________________22
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
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
ones(5,8)
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
ans =
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
0 0 0 0 0
ans =
_______________________________________________________________________________23
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
ans =
9. Gerando Vetores
x =
1 2 3 4 5 6 7 8
x =
x =
Columns 1 through 11
Columns 12 through 16
y =
Columns 1 through 11
_______________________________________________________________________________24
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Columns 12 through 16
z =
0 1.0000
0.2000 1.0174
0.4000 1.0597
0.6000 1.1135
0.8000 1.1667
1.0000 1.2094
1.2000 1.2332
1.4000 1.2320
1.6000 1.2015
1.8000 1.1391
2.0000 1.0446
2.2000 0.9193
2.4000 0.7662
2.6000 0.5898
2.8000 0.3958
3.0000 0.1909
Outros incrementos, diferentes da unidade podem ser utilizados, como seja o caso
do seguinte exemplo que impõe um incremento de pi/4.
%% criamos um vetor que começa em 0 e vai até PI, com um passo de PI/4
y = 0 : pi/4 : pi
y =
z =
6 5 4 3 2 1
k =
_______________________________________________________________________________25
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
k1 =
Figura 9 – Arquivo .m para o calculo de uma função seno com A=1, f=1000Hz.
_______________________________________________________________________________26
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________27
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Tabela 6 – Comando de entrada,saída, depuração e interação com o usuário.
Comandos Descrição
disp(ans) Mostra os resultados sem identificar o nome das variáveis
echo Controla a exibição dos comandos dos arquivos M na janela de comandos
Input Solicita ao usuário que forneça um dado de entrada
pause Suspende a execução até que o usuário pressione alguma tecla
pause(n) Suspende a execução por n segundos
waitforbuttonpress Suspende a execução até o usuário pressione uma tecla ou um botão do mouse.
_______________________________________________________________________________28
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
1
16
O laço for possibilita que uma série de comandos seja repetida por um número de
vezes fixo e pré-definido. O comando end é usado como limite inferior do corpo do laço.
Exemplos:
1) Calcular a tabuada do número 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 expressão
comandos
end
_______________________________________________________________________________29
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
%Cálculo da Série
n=0;
x=1;
serie=0;
while n<50
serie=serie+x/2;
x=x+2;
n=n+1;
end
disp(serie)
1250
_______________________________________________________________________________30
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Outra forma de usar a estrutura é:
if expressão
comandos executados se Verdadeiro
else
comandos executados se Falso
end
Exemplos:
1) Dado qualquer distância que um veículo deve percorrer (valor real em km), a
capacidade do tanque de combustível (valor real em litros) e a média de consumo de
combustível do veículo (valor real em km/litros). Supondo que o tanque estará cheio na
partida, mostrar umas das mensagens:
DEVE HAVER REABASTECIMENTO
OU
NÃO DEVE HAVER REABASTECIMENTO
% DISTÂNCIA
%
d=input('Digite a distância a ser percorrida: ');
mc=15; %media de consumo
ct=45; %capacidade do tanque
if mc*ct>=d
disp('Não deve haver reabastecimento')
else
disp('Deve haver reabastecimento')
end
_______________________________________________________________________________31
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
nota2=input('Digite a segunda nota: ');
if nota1>=8 | nota2>=8 | (nota1+nota2)>=14
disp('aluno nível A')
elseif nota1>=6 | nota2>=6 | (nota1+nota2)>=9
disp('aluno nível B')
else
disp('aluno nivel C')
end
Essa estrutura funciona como uma chave seletora, escolhendo a expressão correta
para executar os comandos.
O comando switch é utilizado quando desejamos selecionar (chavear)
condicionalmente expressões porém, na forma de lista. O formato geral do comando
switch é:
switch expressão
case valor 1
......... grupo de comandos
case valor 2
......... grupo de comandos
case valor 3
......... grupo de comandos
otherwise
......... grupo de comandos
end
1) Faça um programa que o usuário possa digitar qualquer mês do ano e como resultado
seja mostrado o número de dias do mês 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
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
12. ARQUIVOS M DE FUNÇÕES
Exemplo:
1) Montar um programa que realize o cálculo da distância entre dois pontos (x1, y1) e
(x2, y2) em um sistema de coordenadas cartesianas.
d= (x 2 − x1 )2 + ( y 2 − y1 )2
_______________________________________________________________________________33
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
No caso, vamos criar um programa principal chamado distancia e através deste
programa vamos chamar a função dist2.m, na qual estará implementada a foruma acima.
Passo 1: Criando a função:
resp=dist2(ax,ay,bx,by);
fprintf('A distância entre os potnos A e B é %f\n:',resp);
_______________________________________________________________________________34
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
13. GRÁFICOS NO MATLAB
_______________________________________________________________________________35
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Exemplo:
1) Seja a função y = e ⋅ sen(x) . Como seria seu gráfico no intervalo [0 ; e1 ⋅ π ]?
−x
_______________________________________________________________________________36
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
1) Seja a função f ( x) = x 3 − 9 x + 3 (livro, pg.31). Como seria seu gráfico no intervalo [-4 ,
3]?
%%% Gráfico da função f(x)=x.^3-9.*x+3 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2) Utilizando o processo de ii), pg. 33 livro, vamos isolar a função f(x) e obter a
equação equivalente g(x)=h(x) e esboçar o gráfico das funções 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
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Gráfico das funções g(x)=x.^3 e h(x)=9.*x-3 %%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Os tipos de linhas, símbolos e cores usados para plotar gráficos podem ser
controlados se os padrões não são satisfatórios. Por exemplo,
x = 0:0.05:1;
subplot(1,2,1)
plot(x,x.^2,'k*')
subplot(1,2,2)
plot(x,x.^2,'k --')
_______________________________________________________________________________38
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Figura 19 – Plotando gráficos com marcadores e linha pontilhada, detalhe comando “subplot”.
_______________________________________________________________________________39
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________40
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________41
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
%% Gerando gráficos 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 possui muitos recursos para visualização de dados em 3D. Este item
representa as principais funções relacionadas a este tópico.
Estes são alguns comandos para plotar gráficos tridimensionais e contornos.
Tabela 8 – Comandos para plotar gráficos 3-D.
O MATLAB define uma superfície do tipo mesh (rede) pelas coordenadas Z sobre
um plano x-y. Superfícies tipo mesh são úteis para visualizar matrizes demasiadamente
grandes para serem mostradas na forma numérica, ou para plotar funções de duas
variáveis.
O primeiro passo para plotar uma função de 2 variáveis z=f(x,y) é gerar matrizes X e
Y contendo linhas e colunas repetidas, respectivamente, para funcionarem como o
domínio da função. A função meshgrid transforma o domínio especificado por dois vetores
x y em duas matrizes X e Y. Essas matrizes então são usadas para avaliar a função de 2
variáveis. Por exemplo, seja a função:
_______________________________________________________________________________42
Cálculo Numérico 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
Cálculo Numérico 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
Cálculo Numérico 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
Cálculo Numérico 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
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
%% Equações paramétricas
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
Figura 30
_______________________________________________________________________________47
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
13.5 Anotações no Gráfico
O MATLAB possui comandos de fácil utilização para adicionar informações em um
gráfico:
Tabela 10
Por exemplo:
fplot('sin', [-pi pi])
title('Gráfico da função f(x)=seno(x), -pi<x<pi')
xlabel('x')
ylabel('f(x)')
grid
Figura 31
_______________________________________________________________________________48
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
14. POLINÔMIOS
p =
1 -12 0 25 116
14.1 Raízes
Dada essa forma, as raízes do polinômio são encontradas usando-se a função
roots(p):
roots(p)
ans =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
p =
1 -12 0 25 116
>> r=roots(p)
r =
11.7473
2.7028
-1.2251 + 1.4672i
-1.2251 - 1.4672i
>> p2=poly(r)
p2 =
>>
_______________________________________________________________________________49
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
Calcular a raiz do polinômio P ( x) = x 3 − 2 x − 5
>> p=[1 0 -2 -5]
p =
1 0 -2 -5
>> r=roots(p)
r =
2.0946
-1.0473 + 1.1359i
-1.0473 - 1.1359i
>>
14.2 Multiplicação
A multiplicação polinomial é efetuada por meio da função conv(que faz a convolução
entre dois vetores). Consideremos o produto de dois polinômios a ( x) = x + 2 x + 3 x + 4 e
3 2
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 6 20 50 75 84 64
Consideremos os polinômios P ( x) = x 2 + 2 x + 3 e Q( x) = 4 x 2 + 5 x + 6
>> P=[1 2 3]
P =
1 2 3
>> Q=[4 5 6]
Q =
4 5 6
>> R=conv(P,Q)
R =
4 13 28 27 18
>>
_______________________________________________________________________________50
Cálculo Numérico 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 Adição
O MATLAB possui uma função direta para somar polinômios:
a=[1 2 3 4];
b=[1 4 9 16];
d=a+b
d =
2 6 12 20
Quando dois polinômios 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 polinômio de ordem mais alta.
Exemplo:
>> e= c+[0 0 0 d]
e=
1 6 20 52 81 96 84
14.4 Divisão
Consideremos o polinômio 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 1 -2 3
>> Q=[1 3 6]
Q =
1 3 6
>> [q r]=deconv(P,Q)
q =
4 -11
r =
0 0 7 69
_______________________________________________________________________________51
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
14.5 Cálculo de Polinômios
O comando que realiza o calculo dos valores de f(x) podem ser realizados através
do comando polyval.
P =
2 -1 3 5 9
>> polyder(P)
ans =
8 -3 6 5
>>
Isto é P ' ( x ) = 8 x − 3 x + 6 x + 5
3 2
P =
1 -5 9
Q =
1 1 -1
>> polyder(P,Q)
ans =
_______________________________________________________________________________52
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
4 -12 6 14
>>
Nos devolve como resultado: 4 -12 6 14. Isto é P ' ( x ) = 4 x − 12 x + 6 x + 14
3 2
>> P=[1 -5 9]
P =
1 -5 9
>> Q=[1 7]
Q =
1 7
>> [n,d]=polyder(P,Q)
n =
1 14 -44
d =
1 14 49
>>
Isto é n( x ) = x + 14 x − 44 numerador e n( x ) = x + 14 x + 49 o denominador.
2 2
_______________________________________________________________________________53
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
15. LISTA DE FUNÇÕES DO MATLAB
_______________________________________________________________________________54
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________55
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________56
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________57
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________58
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________59
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________60
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________61
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________62
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________63
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________64
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________65
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________66
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________67
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________68
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________69
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________70
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________71
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________72
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
_______________________________________________________________________________73
Cálculo Numérico Utilizando Matlab
_______________________________________________________________________________
[2]. A. Gilat. “Matlab Com Aplicações em Engenharia”. Editora Bookman, 2° Edição, 2006.
[5]. Matlab Curso Introdutório, Apostila, Centro Brasileiro de Pesquisas Físicas, 2002.
_______________________________________________________________________________74
Cálculo Numérico Utilizando Matlab