Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila Básica Do Software Matlab - CEFET-SC PDF
Apostila Básica Do Software Matlab - CEFET-SC PDF
executveis: c:\matlab\bin;
a) rea de trabalho
1
>> ver
--------------------------------------------------
MATLAB Version 6.0.0.88 (R12) on PCWIN
MATLAB License Number: 0
--------------------------------------------------
MATLAB Toolbox Version 6.0 (R12) 06-Oct-2000
Simulink Version 4.0 (R12) 16-Jun-2000
Stateflow Version 4.0 (R12) 04-Oct-2000
Stateflow Coder Version 4.0 (R12) 04-Oct-2000
Communications Blockset Version 2.0 (R12) 01-Sep-2000
Communications Toolbox Version 2.0 (R12) 01-Sep-2000
Control System Toolbox Version 5.0 (R12) 01-Sep-2000
DSP Blockset Version 4.0 (R12) 01-Sep-2000
Filter Design Toolbox Version 2.0 (R12) 01-Aug-2000
Fixed-Point Blockset Version 3.0 (R12) 26-May-2000
Image Processing Toolbox Version 2.2.2 (R12) 10-Mar-2000
MATLAB Compiler Version 2.1 (R12) 26-Jul-2000
Model Predictive Control Toolbox Version 1.0.5 (R12) 10-May-2000
Nonlinear Control Design Blockset Version 1.1.4 (R12) 12-Jun-2000
Optimization Toolbox Version 2.1 (R12) 07-Jun-2000
Partial Differential Equation Toolbox Version 1.0.3 (R12) 31-Dec-1999
Robust Control Toolbox Version 2.0.7 (R12) 10-May-2000
SB2SL (converts SystemBuild to Simu... Version 2.1 (R12) 16-Jun-2000
Signal Processing Toolbox Version 5.0 (R12) 01-Jun-2000
Simulink Accelerator Version 1.0 (R12) 01-Mar-2000
Model Differencing for Simulink and... Version 1.0 (R12) 19-Jul-2000
Simulink Model Coverage Tool Version 1.0 (R12) 02-Jun-2000
Simulink Report Generator Version 1.1 (R12) 01-Apr-2000
Statistics Toolbox Version 3.0 (R12) 01-Sep-2000
Symbolic Math Toolbox Version 2.1.2 (R12) 11-Sep-2000
System Identification Toolbox Version 5.0 (R12) 27-Aug-2000
Wavelet Toolbox Version 2.0 (R12) 16-Jun-2000
b) Janelas
2
Command Window: ambiente de trabalho;
c) Menus
O Matlab tambm possui uma srie de menus: File, Edit, View, Web, Window e
Help. Os mais importantes sero vistos ao longo do curso. Alguns menus so bastante
utilizados:
d) Barra de ferramentas
3
1.2 Configurao de Parmetros do Ambiente Matlab
Para que uma funo possa ser utilizada por qualquer programa Matlab, o
diretrio no qual ela est salva deve estar includo na lista de diretrios de busca do
Matlab (arquivo pathdef.m). Para realizar tal tarefa, pode-se utilizar a instruo
pathtoll ou o menu File/Set Path (mais prtico). Se isso no for feito, a funo
criada s poder ser utilizada por programas Matlab (.m) que estiverem gravados no
mesmo diretrio da funo.
4
O Matlab possui algumas funes do sistema operacional, apresentados na tabela
abaixo.
5
2 Elementos Bsicos do Matlab
2.1 Notaes
notao cientfica e
1 j ou i
Exemplos:
>> -2.5e-3
ans =
-0.0025
>> 1+2j
ans =
1.0000 + 2.0000i
Note que o Matlab atribui o resultado de cada operao a uma varivel
denominada ans (de answer). Ela utilizada pelo Matlab para armazenar o ltimo valor
calculado pelo Matlab, a no ser nos casos em que o usurio explicita o nome de uma
varivel juntamente com o comando. Veja o exemplo abaixo.
>> a=-2.5e-3
a=
-0.0025
>> b=1+2j
b=
1.0000 + 2.0000i
2.2 Matrizes
Para o Matlab, qualquer valor numrico interpretado como uma matriz. Uma
matriz definida da seguinte forma:
6
valores numricos so definidos entre colchetes ([...]);
Alguns exemplos
>> 2
escalar ans =
2
>> [1 2 3]
vetor linha (1 n ) ans =
1 2 3
>> [1;2;3]
ans =
vetor coluna ( n 1) 1
2
3
>> [1 2 3;4 5 6;7 8 9]
ans =
matriz bidimensional ( m n ) 1 2 3
4 5 6
7 8 9
matriz de dimenso
mostrado adiante
n1 n2 " nm
2.3 Variveis
Para criar uma varivel no Matlab deve-se seguir algumas regras. Assim, o nome
de uma varivel Matlab
case-sensitive;
7
pode possuir no mximo 32 caracteres;
comando descrio
>> a = 1;
>> b = [1 2; 3 4];
>> texto = 'matlab';
>> who
Your variables are:
a b texto
>> whos
Name Size Bytes Class
a 1x1 8 double array
b 2x2 32 double array
texto 1x6 12 char array
Grand total is 11 elements using 52 bytes
>> clear b;
>> whos
Name Size Bytes Class
a 1x1 8 double array
texto 1x6 12 char array
Grand total is 7 elements using 20 bytes
>> who
Your variables are:
a texto
8
2.4 Funes Matemticas
onde
help NomedaFuno
Exemplo
9
3. Manipulao de Matrizes
Como mencionado no Captulo 2, uma matriz definida da seguinte forma:
>> x = 1:5
x=
1 2 3 4 5
Se o incremento for diferente de 1, o seu valor deve ser includo na instruo.
Veja o exemplo a seguir, no qual o incremento do vetor x 0,5 e o do vetor y 0,5 .
> x = 1:0.5:5
x=
1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000 5.0000
>> y = 5:-0.5:1
y=
5.0000 4.5000 4.0000 3.5000 3.0000 2.5000 2.0000 1.5000 1.0000
10
d) Principais instrues relacionadas com matrizes.
Tabela 3.1: Comandos para criao de matrizes elementares
>> A = [1 2 3];
>> B = [4 5 6];
>> C = [A B]
C=
1 2 3 4 5 6
>> D = [A ; B]
D=
1 2 3
4 5 6
>> E = [A' B']
E=
1 4
2 5
3 6
11
3.2 Operaes com Matrizes
muito importante notar que o Matlab pode realizar uma operao matricial (em
uma ou entre duas matrizes) como tambm uma operao elemento a elemento (em uma
ou entre matrizes). Para exemplificar, considere as matrizes
1 2 5 6
A= e B= .
3 4 7 8
A Tabela 3.2 apresenta as principais operaes realizveis com essas duas matrizes.
soma + 1+ 5 2 + 6 6 8
A + B= =
3 + 7 4 + 8 10 12
subtrao - 1 5 2 6 4 4
A B= =
3 7 4 8 4 4
multiplicao vetorial * 19 22
A * B=
43 50
multiplicao escalar .* 1 5 2 6 5 12
A .* B= =
3 7 4 8 21 32
diviso matricial
/ 3 2
A / B=
(equivale a A B-1 ) 2 1
potncia matricial ^ 7 10
A^2=A*A=
15 22
potncia escalar .^ 12 22 1 4
A .^2= 2 =
3 42 9 16
transposta 1 3
A'=
2 4
12
Exemplo 1: Considere o seguinte sistema de equaes lineares
y1 = x1 + x2 + 2 x3 y1 1 1 2 x1
y2 = 3 x1 x2 + x3 y2 = 3 1 1 x2 ou Y = AX
y3 = x1 + 3 x2 + 4 x3 y3 1 3 4 x3
a) Qual o valor de Y se X = [1 1 2] ?
T
>> A = [-1 1 2 ; 3 -1 1; -1 3 4]
A=
-1 1 2
3 -1 1
-1 3 4
>> Y = A*[1 ; -1 ; 2]
Y=
2
6
4
b) Qual o valor de X se Y = [ 0 2 1] ?
T
Nesse caso, pode-se deduzir que X=A -1Y . No Matlab, esse operao
equivalente a X=A\Y (diviso esquerda, ver tabela 3.2).
>> Y = [0 ; 2 ; 1];
>> X = A\Y
X=
0.7000
0.3000
0.2000
Exemplo 2: Utilizando o Matlab, plote a funo y = x 2 + 2 x 3 , para 5 x 5 .
>> x=[-5:0.1:5];
>> y = x.^2 + 2*x -3;
>> plot(x,y)
13
35
30
25
20
15
10
-5
-5 -4 -3 -2 -1 0 1 2 3 4 5
>> x = 2;
>> a = exp(2)
a=
7.3891
>> M = rand(2,3)
M=
0.9501 0.6068 0.8913
0.2311 0.4860 0.7621
>> B = exp(m)
B=
2.5860 1.8346 2.4383
1.2600 1.6258 2.1428
14
Tal propriedade facilita bastante o desenvolvimento de programas. Por
exemplo, se for desejado plotar o seno de x, para x variando entre 0 e 2 . No Matlab, o
cdigo seria o seguinte:
>> x = 0:0.1:2*pi;
>> plot(x,sin(x));
Em uma linguagem de programao sem bulk processing, o cdigo seria algo desse
tipo:
inc = 0.1
xi = 0
i=1
while xi <= 6.28
x(i) = xi
yi = sin(xi)
xi = xi + inc
end
plot(x,y)
0.8
0.6
0.4
0.2
-0.2
-0.4
-0.6
-0.8
-1
0 1 2 3 4 5 6 7
15
>> M = [1 2 3 4 ; 5 6 7 8 ; 9 10 11 12]
M=
1 2 3 4
5 6 7 8
9 10 11 12
>> a = M(3,2)
a=
10
No Matlab, os elementos tambm so indexados seqencialmente. Essa indexao segue
por linha e depois por coluna. Assim, a matriz anterior indexada da seguinte forma:
>> b = M(6)
b=
10
>> c = M(10)
c=
4
>> Z = M(2,2:4)
Z=
6 7 8
16
A mesma operao pode ser realizada com a ajuda de um end, que representa o final
de um intervalo. Por exemplo:
>> Z = M(2,2:end)
Z=
6 7 8
>> Y = M(:,1)
Y=
1
5
9
>> B = [5 6 ; 7 8]
B=
5 6
7 8
>> C(:,:,1) = A;
>> C(:,:,2) = B
C(:,:,1) =
1 2
3 4
C(:,:,2) =
5 6
7 8
17
3.5 Funes Matriciais Bsicas
>> X = [1 2 ; 4 5];
>> det(X)
det (X) determinante da matriz quadrada X
ans =
-3
>> inv(X)
ans =
inv (X) matriz inversa da matriz
-1.6667 0.6667
1.3333 -0.3333
>> diag(X)
ans =
diag (X) retorna a diagonal principal de X
1
5
>>>> v = [1 2 3];
>> diag(v)
se v um vetor, cria matriz diagonal ans =
diag (v)
utilizando elementos de v 1 0 0
0 2 0
0 0 3
>> x = [1 2 3 4 5 6 7 8 9 0];
>> reshape(x,2,5)
reshape(x,n,m) cria matriz de dimenso n m a partir
ans =
da matriz x
1 3 5 7 9
2 4 6 8 0
18
Cadeias de caracteres so dados tipo texto, formados por cadeias de caracteres
ASCII (American Standard Code for Information Interchange). Cada caractere ocupa
dois bytes de memria. No Matlab, uma string definida entre . Veja o exemplo.
>> double(texto1)
ans =
67 117 114 115 111
A operao inversa que transforma um cdigo ASCII em uma string efetuada pela
funo char:
>> a = texto1(1:3)
a=
Cur
Da mesma forma, pode-se realizar a concatenao de strings:
19
b) Clulas (cell arrays)
Uma clula um tipo de varivel que permite armazenar matrizes de
naturezas diferentes (escalares, vetores, matrizes, strings) em uma nica estrutura. Para
criar uma clula, utiliza-se a funo cell. Clulas utilizam {} ao invs de []. Veja o
exemplo abaixo, de uma clula de dimenso 2 2 .
c) Estruturas (structs)
um tipo de dado que permite o armazenamento de matrizes de naturezas
diferentes (escalares, vetores, matrizes, strings) identificveis por nomes de campos.
Para criar uma estrutura, utiliza-se a funo struct. Como exemplo, considere que se
deseja criar uma estrutura para armazenar a Tabela 3.4.
Tabela 3.4: Exemplo de tabela para ser utilizada em uma estrutura
Aluno Matrcula Nota
Joo 001 1,0
Maria 002 10,0
Jos 003 7,0
20
>> s = struct('Aluno',{'Joao'},'Matricula',{001},'Nota',{1.0})
s=
Aluno: 'Joao'
Matricula: 1
Nota: 1
>> s(2).Aluno = 'Maria';
>> s(2).Matricula = 002;
>> s(2).Nota = 10;
>> s(3).Aluno = 'Jose';
>> s(3).Matricula = 003;
>> s(3).Nota = 7;
>> whos s
Name Size Bytes Class
s 1x3 998 struct array
Grand total is 28 elements using 998 bytes
Os contedos de uma estrutura so acessados da seguinte forma:
>> s
s=
1x3 struct array with fields:
Aluno
Matricula
Nota
>> s(1)
ans =
Aluno: 'Joao'
Matricula: 1
Nota: 1
>> s(2)
ans =
Aluno: 'Maria'
Matricula: 2
Nota: 10
21
4. Programao no Matlab
a) Script
Um script simplesmente uma seqncia de comandos Matlab. Qualquer
seqncia de comandos pode ser implementada diretamente na janela de comando do
Matlab. Entretanto, se for desejado alterar algum parmetro ou simplesmente repetir a
operao, os comandos devem ser digitados novamente. Tal situao no prtica. Para
solucionar esse tipo de problema existe o script. Se a seqncia de comandos for salva
em um script, basta digitar o seu nome na janela de comando para repetir o processo.
Exemplo: script denominado scriptEq2Grau.m, que plota uma equao do segundo grau
do tipo y = ax 2 + bx + c , com a = 1 , b = 2 e c = 3 :
x = [-10:0.1:10];
a = 1;
b = 2;
c = -3;
y = x.^ 2 + b*x + c;
plot(x,y);
22
Note que o script no apresenta parmetros de entrada nem de sada. Ele
apenas realiza as operaes desejadas e utiliza variveis do workspace. Isso significa
que todas as variveis de um script so salvas no workspace (digite comando whos).
b) Funo
Uma funo tambm realiza uma seqncia de comandos. Diferentemente de
um script, uma funo possui parmetros de entrada e pode retornar parmetros de
sada. Por exemplo, considere que se deseje criar um arquivo Matlab que calcule uma
funo do segundo grau para valores variveis de a, b e c. Nesse caso, um script no
serve; deve-se criar uma funo. Veja o exemplo.
Exemplo: Funo denominada FuncaoEq2Grau.m.
z = FuncaoEq2Grau(1,2,-3);
Note que a nica varivel criada no workspace (digite comando whos) z.
Todas as variveis utilizadas por uma funo so internas, o que significa que no so
salvas no workspace (diferentemente do caso de um script0). Uma caracterstica
interessante a possibilidade de criar um texto explicativo para uma funo, que
apresentado ao se utilizar a funo help do Matlab. Esse texto deve ser escrito como
comentrio (atravs de %) no incio do m-file.
23
4.3 Operadores lgicos
O Matlab possui operadores utilizveis em expresses lgicas (Booleanas),
que so utilizadas em tomadas de decises. Para o Matlab, considera-se que
0 (zero) ou nil indica condio falsa;
1 (um) ou diferente de zero indica condio verdadeira.
= = ou eq A igual a B A = = B ou eq(A,B)
~= ou ne A diferente de B A ~= B ou ne(A,B)
>> A = 2;
>> B = 4;
>> A == B
ans =
0
>> A < B
ans =
1
24
Tabela 4.2: Funes matriciais
isempty(M) vazia
isnumeric(M) numrica
ischar(M) alfanumrica
issparse(M) esparsa
a) For
for varivel = <valor inicial> : <incremento> : <valor final>
comandos
end
25
Exemplo: Criao de um vetor formado por 10 mltiplos de 3.
for i = 1:10
v(i) = 3*i;
end
b) While
O lao while permite que uma seqncia de comandos seja repetida enquanto
uma certa condio for verdadeira. Apresenta a seguinte estrutura:
while <expressao>
comandos
end
Por exemplo, considere que se deseja determinar o maior valor de n tal que
n ! < 10100 . Pode-se utilizar o seguinte cdigo.
n = 1;
while prod(1:n) < 1e100
n = n + 1;
end
26
a = round(10*rand(1)); % a eh uma variavel com valor entre 0 e 10
if a > 5
b = 3*a;
elseif a < 5
b = a/3;
else
b = a;
end
4.5 Implementao do algoritmo de Gauss
O algoritmo de Gauss til para resolver um sistema de equaes lineares de
ordem n , do tipo AX = Y , com A singular ( det(A) 0 ). O mtodo possui duas etapas:
1 Triangularizao: consiste em transformar A numa matriz triangular superior,
mediante permutaes e combinaes lineares de linhas;
2 Retrossubstituio: clculo de X, soluo de AX = Y , a partir da soluo do ltimo
componente de X, e ento substituindo regressivamente nas equaes anteriores.
2. Para k = 1(1)n 1
2.1. Para i = k + 1(1)n
2.1.1. mik = aik / akk
2.1.2. Para j = k + 1(1)n
2.1.2.1. aij = aij + mik * akj
2.1.3. yi = yi + mik * yk
3. Sada { n , aij , yi | i = 1| n , j = 1| n }
2a etapa: Retrossubstituio
1. Entrada {{ n , aij , yi | i = 1(1)n , j = 1(1)n , aij so coefic. de uma matriz triang. sup.}
2. xn = yn / ann
3. Para k = n 1(1)1
3.1. xk yk
3.2. Para i = k + 1(1)n
3.2.1. xk xk aki * xi
3.3. xk xk / akk
4. Sada { xi | i = 1(1)n }
27
O algoritmo implementado em Matlab pode ser o seguinte:
% Triangularizacao
% Passo 1.
A=[3 2 0 1 ; 9 8 -3 4 ; -6 4 -8 0 ; 3 -8 3 -4];
Y=[3 ; 6 ; -16 ; 18];
n=length(A);
% Retrossubstituicao
x(n)=Y(n)/A(n,n); % Passo 2
for k = n-1:-1:1 % Passo 3
x(k)=Y(k); % Passo 3.1
for i = k+1:n % Passo 3.2
x(k) = x(k) - A(k,i)*x(i); % Passo 3.2.1
end
x(k)=x(k)/A(k,k); % Passo 3.3
end
disp('Vetor x='); % Passo 4
disp(x');
28
5. Grficos no Matlab
O Matlab possui sofisticados recursos para a visualizao de dados na forma
grfica. Ele trabalha com objetos grficos, tais como linhas e superfcies. As
propriedades de tais objetos podem ser controladas atravs das propriedades dos
objetos. Entretanto, o Matlab disponibiliza diversas funes que facilitam a
configuraes das propriedades de objetos. As principais funes com esse fim so
vistas neste captulo.
g (verde) * (estrela)
b (azul) s (quadrado)
w (branca) d (losango)
k (preta) h (hexagrama)
p (pentagrama)
29
Tabela 5.2: Funes relacionadas com grficos
Subscrito _ X_n
Sobrescrito ^ X^n
30
5.5 Exemplos
% Exemplo a
clear
close all
x = 0:0.1:10;
y = exp(-x).*sin(x);
plot(x,y,'r'); % Plota curva em vermelho
title('\fontsize{18}f(x)=e^{-x}*sen(x)'); % Titulo em fonte 18
xlabel('Eixo X');
ylabel('Eixo Y');
axis([0 10 -0.1 0.4]); % escala de x varia entre 0 e 10; de y entre -0.1 e 0.4
% insere texto em fonte times 16
gtext('\fontname{timesnewroman}\fontsize{16}ponto de maximo local');
% Exemplo b
clear
close all
x = 0:0.1:10;
y1 = exp(-x).*sin(x);
y2 = exp(-x);
y3 = sin(x);
plot(x,y1,'r',x,y2,'b',x,y3,'k');
title('\fontsize{18}f(x)=e^x*sen(x)'); % Titulo em fonte 18
legend('f_1(x)=e^{-x}*sen(x)','f_2(x)=e^{-x}','f_3(x)=sen(x)');
xlabel('Eixo X');
ylabel('Eixo Y');
axis([0 10 -1 1]); % escala de x varia entre 0 e 10 e a de y entre -1 e 1
31
c) Funo semilogx e comando figure: Diagramas de Bode de H ( j) = j /(10 + j) .
% Exemplo c
clear
close all
w = logspace(-2,3,1000); % w vetor logaritmicamente espacado entre 10^-1 e 10^2,
com 1000 pontos
H = j*w./(j*w+10);
magH = 20*log10(abs(H)); % Magnitude em dB
fasH = angle(H)*180/pi; % Fase em graus
% Exemplo d
clear
close all
w = logspace(-2,3,1000); % w vetor logaritmicamente espacado entre 10^-1 e 10^2,
com 1000 pontos
H = j*w./(j*w+10);
magH = 20*log10(abs(H)); % Magnitude em dB
fasH = angle(H)*180/pi; % Fase em graus
32
semilogx(w,magH); % Eixo X em escala logaritmica
title('Magnitude');
xlabel('\omega (rad/s)');
ylabel('dB');
grid
subplot(1,2,2) % Figura com 1 linha, 2 colunas, grafico 2
semilogx(w,fasH); % Eixo X em escala logaritmica
title('Fase');
xlabel('\omega (rad/s)');
ylabel('graus');
grid
% Exemplo e
k = -10:10;
% Criacao do degrau unitario u(k)
for i = 1:length(k)
if k(i) >= 0
u(i) = 1;
else
u(i) = 0;
end
end
% alternativa ao for:
% u = (k >= 0)
% Criacao de y(k) = a^k*u(k)
a = 0.5;
y = (a).^k.*u;
stem(k,y);
Grficos 3D
O Matlab possui diversas funes destinadas criao de grficos em 3D. A
Figura 5.1 apresenta apenas algumas delas. Quem desejar se aprofundar no assunto deve
ler a documentao do prprio Matlab.
33
Grfico 3D
Curvas Superfcies
t = 0:pi/50:10*pi;
x = sin(t);
y = cos(t);
z = t;
plot3(x,y,z);
xlabel('sin(t)'); ylabel('cos(t)'); zlabel('t');
Se for desejado plotar uma funo de duas variveis z = f ( x, y ) necessrio
gerar matrizes X e Y contendo linhas repetidas, que definem o domnio da funo. A
funo Malab que define X e Y a partir de vetores x e y a meshgrid. Feito isso,
pode-se utilizar a funo desejada para plotar a funo z. Veja o exemplo abaixo, no
qual se deseja obter as curvas de superfcie (funo surf) e de malha (funo mesh) de
z = f ( x, y ) =
sen ( x2 + y 2 )
x2 + y 2
clear
close all
x = -8:0.5:8;
y = -8:0.5:8;
[X,Y] = meshgrid(x,y); % Geracao de matrizes X e Y a partir de x e y
r = sqrt(X.^2 + Y.^2);
Z = sin(r)./r;
figure(1) % Grafico de superficie
surf(X,Y,Z);
figure(2) % Grafico de malha
mesh(X,Y,Z);
34
6. Funes relacionadas com arquivos de dados
O Matlab possui diversas funes para leitura e gravao de arquivos de
dados (texto, imagem e som). Algumas das principais so apresentadas neste captulo.
>> M = [1 3 5 7;2 4 6 8]
M=
1 3 5 7
2 4 6 8
>> dlmwrite('gravar.txt',M,',');
>> type gravar.txt
1,3,5,7
2,4,6,8
35
b) Funes load e save
As funes load e save servem para ler/gravar variveis armazenadas em
arquivos com extenso .mat, que um formato binrio proprietrio do Matlab. A sintaxe
a seguinte:
load(NomeArquivo)
save(NomeArquivo,var1,var2,...,varN)
save(NomeArquivo,var1,var2,...,varN,-ASCII)
>> a = [1 2];
>> b = 3;
>> texto = 'teste';
>> save('arquivo1','a','texto');
>> clear
>> whos
>> load('arquivo1')
>> whos
Name Size Bytes Class
a 1x2 16 double array
texto 1x5 10 char array
Grand total is 7 elements using 26 bytes
Existem diversas outras funes para carregar arquivos de dados. Elas podem
ser acessadas pelo comando importdata (help importdata).
36
6.3 Leitura e gravao de arquivos de imagem
Para ler arquivo de som, utilizam-se as funes auread (som NeXT/SUN) e
wavread (som Microsoft wave). Para gravar um arquivo de som, utilizam-se as funes
auwrite (som NeXT/SUN) e wavwrite (som Microsoft wave).
37
7. Polinmios
>> p = [1 -1 -2];
>> x = -3:0.1:3;
>> resultado = polyval(p,x);
>> plot(x,resultado);
38
Dados vetores x e y, a funo polyfit retorna os coeficientes de um polinmio
de grau n que melhor aproxima os pontos definidos por (x,y). Veja o exemplo, no qual a
curva aproximada por um polinmio de grau 3, dado por
P = 0, 0046 x 3 0, 7995 x 2 + 3,5478 x + 99,8667 .
>> x = 1:10;
>> y = [100 110 105 98 102 107 103 100 99 103];
>> p = polyfit(x,y,3);
>> p = polyfit(x,y,3)
p=
0.0466 -0.7995 3.5478 99.8667
>> aprox = polyval(p,x);
>> plot(x,y,x,aprox,'r');
>> p1 = [2 1 3 4];
>> p2 = [1 -1 2];
>> p3 = conv(p1,p2)
p3 =
2 -1 6 3 2 8
>> p4 = deconv(p1,p2)
p4 =
2 3
39
8. Bibliografia
em: <http://mesonpi.cat.cbpf.br/e2002/cursos/NotasAula/Tutorial_matlab.pdf>
40