Buscar

MATLAB intro dotto

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Uma Rápida Introdução ao MATLAB 
 
Dr. Oclide José Dotto 
 
 
 
 
 
 
Vetores – Matrizes – Polinômios – Formatos numéricos – Gráficos – M-Files – Help 
 
 
 
MATLAB é um software iterativo para computação numérica, computação simbólica e visualização de 
dados; é de uso obrigatório para a formação do engenheiro e do matemático em inúmeras universidades no 
mundo, e sua utilização abrange todos os setores que precisam da Matemática ou Física. Acompanham o 
software muitas diferentes toolboxes, que estendem as funções básicas do MATLAB em diferentes áreas de 
aplicação. Aconselhamos ler essas notas diante do MATLAB em funcionamento e fazer experimentos. 
 
 
 Vetores 
 
Comecemos criando algo simples, como um vetor. Para criar um vetor v, escrevemos (e acionamos a tecla 
enter) na janela de comando do MATLAB, por exemplo: 
 
v = [1 2 3 4 5 6 9 6 6] 
v = 
 1 2 3 4 5 6 9 6 6 
 
O itálico é a resposta do MATLAB. As componentes de v devem estar separadas por um espaço ou por 
vírgula. 
 Um fato geral que você deve conhecer: quando um comando termina com ponto e vírgula ( ; ), o 
MATLAB memoriza o resultado, mas não o representa na tela. Digamos que você precise de um vetor com 
as componentes 0, 2, 4, . . ., 200, espaçadas por duas unidades, mas não quer o resultado representado na 
tela, por ser muito grande; você escreve na janela de comandos: 
 
x = 0:2:200; 
 
Esse vetor x fica na memória do MATLAB e você pode fazer com ele tudo o que precisa. Por exemplo, 
para saber qual é a décima componente de x: 
 
x(10) 
ans = 
 18 
 
para saber quantas componentes x tem: 
 
length(x) 
ans = 
 101 
 
para calcular a soma das componentes de x: 
 
sum(x) 
ans = 
 10100 
 2
para calcular o vetor cujas componentes são os quadrados das componentes de v: 
 
v.^2 
ans = 
 1 4 9 16 25 36 81 36 36 
 
para calcular o logaritmo na base natural das componentes de v: 
 
log(v) 
ans = 
 0 0.6931 1.0986 1.3863 1.6094 1.7918 2.1972 1.7918 1.7918 
 
Note que, quando você não atribui um nome ao resultado esperado, o MATLAB atribui o nome temporário 
ans (resposta). Somemos 2 a todas as componentes de v e denotemos com u o resultado: 
 
u = v+2 
u = 
 3 4 5 6 7 8 11 8 8 
 
Somemos os vetores u e v (podem ser somados porque têm o mesmo número de componentes): 
 
z = u + v 
z = 
 4 6 8 10 12 14 20 14 14 
 
 Acima está apenas uma amostra do que podemos fazer com vetores no MATLAB. 
 
 
 Matrizes 
 
Toda a construção do MATLAB é estruturada sobre matrizes. Por outro lado, note que um vetor é uma ma-
triz de ordem 1 por n e um número é uma matriz de ordem 1 por 1. O que você aprendeu acima sobre veto-
res se transfere para matrizes. Basta saber como fornecer uma matriz ao MATLAB. Exemplifiquemos com 
uma matriz de ordem 3 por 4: 
 
A = [1 2 3 4;5 6 7 8;-1 0 -2 0] 
A = 
 1 2 3 4 
 5 6 7 8 
 -1 0 -2 0 
 
Os elementos são semparados por um espaço ou vírgula. Outra maneira de fornecer ao MATLAB a matriz 
A é: 
 
A = [1 2 3 4 
 5 6 7 8 
 -1 0 -2 0]; 
 
A transposta da matriz A o MATLAB a calcula mediante: 
 
B = A' 
B = 
 1 5 -1 
 2 6 0 
 3 7 -2 
 4 8 0 
 3
Se A tivesse elementos complexos, A' seria a transposta conjugada de A. Para obter a transposta de uma 
matriz complexa A, digitamos A.' (os dois comando têm o mesmo efeito se A é real). 
 A multiplicação específica de matrizes, digamos de B por A, é feita assim: 
 
C=A*B 
C = 
 30 70 -7 
 70 174 -19 
 -7 -19 5 
 
O iniciante no MATLAB se sente muitas vezes frustrado com a multiplicação de matrizes. Veja: 
 
A*A 
??? Error using ==> * 
Inner matrix dimensions must agree. 
 
Tradução: ??? Erro no uso de Î * As dimensões matriciais internas devem 
concordar.Sabemos que uma multiplicação matricial AB somente é possível quando o número de colu-
nas de A é igual ao número de linhas de B. A matriz A acima tem 3 linhas e B, 3 colunas. Então 
 
D = A*B 
D = 
 30 70 -7 
 70 174 -19 
 -7 -19 5 
 
 Como com vetores, podemos operar com os elementos das matrizes, desde que tenham a mesma ordem: 
 
.* multiplicação elemento a elemento 
.^ potenciação ou exponenciação elemento a elemento 
./, .\ divisão elemento a elemento (Qual seria a diferença de ./ e .\ ?). 
 
Exemplos: seja X = [1 2;3 4;2 4]; Y = [2 3; 4 5; 1 0]; 
 
X.*Y 
ans = 
 2 6 
 12 20 
 2 0 
 
X.^Y 
ans = 
 1 8 
 81 1024 
 2 1 
 
X./Y 
Warning: Divide by zero. 
(Type "warning off MATLAB:divideByZero" to suppress this warning.) 
ans = 
 0.5000 0.6667 
 0.7500 0.8000 
 2.0000 Inf 
 
X.\Y 
ans = 
 4
 2.0000 1.5000 
 1.3333 1.2500 
 0.5000 0 
 
 Tomemos agora a matriz quadrada Z = [1 2; -2 1]; Notemos a diferença: 
 
Z1 = Z^3, Z2 = Z.^3 
Z1 = 
 -11 -2 
 2 -11 
 
Z2 = 
 1 8 
 -8 1 
 
Temos que Z1 = ZZZ, e Z2 é obtida elevando ao cubo seus elementos. 
 As funções trigonométricas, logarítmicas, exponenciais, volor-absoluto, sqrt (raiz quadrada), etc., ope-
ram elemento a elemento. Exemplos: S = sin(Z), E = exp(Z), Ab = abs(Z) 
 
S = 
 0.8415 0.9093 
 -0.9093 0.8415 
 
E = 
 2.7183 7.3891 
 0.1353 2.7183 
 
Ab = 
 1 2 
 2 1 
 
Ao invés de sen, devemos usar sin; exp(x) significa ex (função exponencial natural). A raiz nésima de to-
dos os elemento de uma matriz é obtida com .1/n, e, se n = 2, também com sqrt, mas X^(1/n) é o inverso de 
X^n. Exemplos: 
 
R =[1000 1; -1 8]; 
R1 = R.^(1/3), R2 = sqrt(R), R3 = R^(1/2) 
R1 = 
 10 1 
 0.5000 + 0.8660i 2 
 
R2 = 
 31.6228 1 
 i 2.8284 
 
R3 = 
 31.6228 0.0290 
 -0.0290 2.8286 
 
Observemos as operações inversas: A = R2.^2, B = R3^2 
 
A = 
 1000 1 
 -1 8 
 
B = 
 5
 1000 1 
 -1 8 
 
 O MATLAB memoriza cada elemento de uma matriz mediante o nome da matriz, a linha e a coluna a 
que ele pertence; assim, o elemento da segunda linha e primeira coluna da matriz B acima é obtido com 
A(2,1): 
 
B(2,1) 
 ans = 
 -1 
 
 Já vimos que os dois pontos ( : ) são úteis no uso dos vetores. Eles são extremamente importantes no 
manejo das matrizes. Por exemplo, servem para extrair de uma matriz A de ordem m por n qualquer subma-
triz. Consideremos a matriz 
 
A = vandr([1 2 3 4 5 6],4) 
A = 
 1 1 1 1 
 8 4 2 1 
 27 9 3 1 
 64 16 4 1 
 125 25 5 1 
 216 36 6 1 
 
A segunda linha de A é obtida com A(2,1:6), ou A(2,:) 
 
ans = 
 8 4 2 1 
 
A segunda coluna, com A(1:4,2), ou A(:,2) 
 
ans = 
 1 
 4 
 9 
 16 
 25 
 36 
 
A submatriz de A em negrito, com A(2:3,2:4) 
 
ans = 
 4 2 1 
 9 3 1 
 
Os comandos A(:,:) e A(1:6,1:4) produzem a matriz A completa. 
 Há alguns comandos que geram matrizes especiais, como zeros(m,n), ones(m,n) e eye(n). As duas pri-
meiras produzem as matrizes de ordem m por n com todos os elementos iguais a zero e a 1, respectivamen-
te, e a terceira é a matriz identidade de ordem n. Exemplifiquemos: 
 
 ones(2,3) 
ans = 
 1 1 1 
 1 1 1 
 
 
 6
 Polinômios 
 
Um polinômio, adotada a ordem de suas potências, fica determinado pelos seus coeficientes. O MATLAB 
adota a ordem decrescente das potências. Exemplos:o polinômio x4 + 1 é representado no MATLAB com 
o vetor [1 0 0 0 1]; o polinômio, cujo vetor dos coeficientes é p = [1 2 -3 0 0 6], é o polinõmiox5 + 2x4 – 3x3 
+ 6; fornecido ao MATLAB o polinômio 
 
p = [1 2 -3 0 0 6] 
p = 
 1 2 -3 0 0 6 
 
podemos usar a função polyval para calcular os valores de p. Para ilustrar, calculemos o valor do poli-
nômio p no ponto x = 1: 
 
y = polyval(p,1) 
y = 
 6 
 
o valor de p nos pontos 0, 2, 3, -1, 6: x = [0 2 3 -1 6]; 
 
polyval(p,x) 
ans = 
 6 46 330 10 9726 
 
Podemos extrair as cinco raízes de um polinômio facilmente; exemplifiquemos com nosso polinômio p: 
 
roots(p) 
ans = 
 -3.0521 
 1.1166 + 0.6540i 
 1.1166 - 0.6540i 
 -0.5905 + 0.9085i 
 -0.5905 - 0.9085i 
 
Testemos essas raízes: 
 
polyval(p,ans) 
ans = 
 1.0e-013 * 
 -0.7017 
 -0.1243 + 0.0844i 
 -0.1243 - 0.0844i 
 0 + 0.0044i 
 0 - 0.0044i 
 
 A rigor deveríamos ter um vetor ans com 5 componentes iguais a zero. Ocorre que as raízes numéricas 
fornecidas são aproximadas. Observemos a constante quase nula 1.0e-013 = 10-13 = 0,000 000 000 000 1, 
que multiplica todas as componentes de ans; essas são, portanto, praticamente nulas. Se quisermos as raí-
zes exatas, devemos usar computação simbólica, que será objeto de outra introdução. Por exemplo, para 
achar as três raízes exatas do polinômio x3 – 1, procedemos assim 
 
x = solve('x^3-1=0') 
x = 
[ 1] 
[ -1/2+1/2*i*3^(1/2)] 
[ -1/2-1/2*i*3^(1/2)] 
 7
Isso mostras que tais raízes são: 1 e 
1 3
2 2
.i− ± 
 
 
 Formatos numéricos 
 
O MATLAB sempre memoriza um número com 15 ou 16 casas (precisão dupla), mas pode mostrar esse 
número com 10 formatos numéricos diferentes: short, short e, short g, long, long e, long g, +, rational, 
bank e hexa. Há também os dispositivos compact e loose. O format short é o default, e consiste em uma 
casa antes e quatro depois da vírgula; o format long consiste em uma casa antes e 14 depois da vírgula; o 
format rational (ou rat) apresenta os números na forma de fração ordinária (em geral aproximativa). E-
xemplifiquemos com o número π: 
 
x = pi 
x = 
 3.1416 
 
format long 
x 
x = 
 3.14159265358979 
 
format bank 
x 
x = 
 3.14 
 
format rat 
x 
x = 
 355/113 
 
format long e 
105*pi 
ans = 
 3.298672286269283e+002 
 
A expressão e+002 significa que o número 3.298672286269283 é multiplicado por 102. Quando en-
tramos com um formato, digamos format long, todos os números mostrados daí em diante serão exibidos 
nesse formato, até que resolvamos entrar com outro formato. 
 
 
 Gráficos 
 
O MATLAB tem uma variedade riquíssima de formas de visualizar geometricamente dados – gráficos 2D e 
3D. Aqui mostraremos apenas o funcionamento de plot. É importante compreender como o MATLAB pro-
cede: tomemos o vetor (abscissas) x = [1 -2 3 5 6]; e o vetor (correspondentes ordenadas) y = 
[0 1 3 5 2]; Entrando agora com 
 
plot(x,y) 
 
obtemos a Figura 1. Que é que o MATLAB fez? – Marcou os pontos (1,0), (-2,1), (3,3), (5,5), (6, 2) e os 
uniu com segmentos, nessa ordem, produzindo uma poligonal (azul). Se entramos com 
 
 plot(x,y,'o'), 
 8
o MATLAB produz a Figura 2, isto é, não liga os pontos. 
 
-2 -1 0 1 2 3 4 5 6
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
 
Figura 1 
 
 
-2 -1 0 1 2 3 4 5 6
0
0.5
1
1.5
2
2.5
3
3.5
4
4.5
5
 
Figura 2 
 
 Se forem muitos os pontos represenados, não percebemos que se trata de uma poligonal e nos parecerá 
uma curva lisa. Exemplificamos com o gráfico da função sen no intervalo [0 ;2π], na Figura 3: 
 
x = 0:.01:2*pi; y = sin(x); plot(x,y), grid 
 9
O comando grid manda fazer a grade, que permite localizar melhor visualmente o gráfico. 
 
0 1 2 3 4 5 6
-1
-0.5
0
0.5
1
 
Figura 3 
 
 
 Para imprimir uma figura, clique no ícone com a forma de impressora na janela da figura, etc. Para 
guardar (salvar) uma figura, escolha, na opção file da janela da figura, save ou save as ..., etc. Para trans-
portar uma figura, por exemplo para o Word, escolha, na janela da figura, com o mouse, Edit – Copy Figu-
re, e depois cole-a no Word. 
 
 
 M-files 
 
Um m-file é um arquivo, que consiste numa seqüência de comandos na linguagem do MATLAB. Quando o 
arquivo é executado, o MATLAB lê os comandos e os executa exatamente como se fossem digitados se-
qüencialmente no prompt do MATLAB. Os nomes dos m-files devem ter a extensão .m. Por exemplo, um 
m-file com o nome somapol deve ser guardado com a identificação somapol.m. Mas, se usarmos o editor do 
MATLAB, tal extensão é colocada automaticamente por esse editor. 
 Há dois tipos de m-files: o function-file, cuja primeira linha deve ser function [argumentos de saída] = 
nomedoarquivo(argumentos de entrada), e o script-file, próprio para fornecer os argumentos de entrada à 
medida que nos são solicitados durante a execução. 
 Como criar um m-file? – Na janela de comandos, escolha: File – New – m-file; agora escreva o m-file. 
Digamos que você queira construir um m-file que some automaticamente polinômios; chame seu m-file de 
somapol (poderia ser qualquer nome); o m-file pode ser: 
 
function p = somapol(p1,p2) 
 
% SOMAPOL soma dois polinômios de quaisquer graus. 
% 
% Entrada: 
% p1, p2: polinômios na forma de vetores dos coeficientes; 
% 
% Saída: 
 10
% p: resultado da soma dos polinômios p1 e p2, como vetor dos coeficientes. 
% 
% Usa-se [p] = somapol(p1,p2). 
% 
% Em 01/01/2003 – Dr. Oclide José Dotto. 
 
if length(p1) < length(p2), 
q1 = pl; 
q2 = p2; 
else 
q1 = p2; 
q2 = pl; 
end 
m = length(p2)-length(p1); 
if m > 0, 
p = [zeros(1,m),p1] + p2; 
else 
p = p2 + p1; 
end 
 
 As linhas precedidas por % são comentários que informam o que o m-file faz, como é usado e quem o 
construiu; o MATLAB não toma conhecimento dessas linhas. 
 Guarde (salve) o arquivo, por exemplo, na pasta work (C:\matlab\work\somapol). Testemos agora o 
somapol com os polinômios p1 = [2 -3 4 1]; e p2 = [-1 0 0 5 2 3]; 
 
p = somapol(p1,p2) 
p = 
 -1 0 2 2 6 4 
 
Funciona! De fato, a soma dos polinômios 2x3-3x2+4x+1 e -x5+5x2+2x +3 é -x5+2x3+2x2+6x+4. 
 Uma das grandes maravilhas do MATLAB é a facilidade de programar (construir m-files). Há muito a 
aprender em torno disso. 
 
 
 Help 
 
O help (ajuda) 'on line' do MATLAB é reconhecidamente muito bem feito e completo. Para obter informa-
ção sobre o comando de que precisamos, é necessário saber o nome desse comando (e saber um pouco de 
inglês!). Por exemplo, para obter informações sobre o comando plot: 
 
help plot 
 PLOT Linear plot. 
 PLOT(X,Y) plots vector Y versus vector X. If X or Y is a matrix, 
 then the vector is plotted versus the rows or columns of the matrix, 
 whichever line up. If X is a scalar and Y is a vector, length(Y) 
 disconnected points are plotted. 
 
 PLOT(Y) plots the columns of Y versus their index. 
 If Y is complex, PLOT(Y) is equivalent to PLOT(real(Y),imag(Y)). 
 In all other uses of PLOT, the imaginary part is ignored. 
 
 Various line types, plot symbols and colors may be obtained with 
 PLOT(X,Y,S) where S is a character string made from one element 
 from any or all the following 3 columns: 
 
 b blue . point - solid 
 g green o circle : dotted 
 r red x x-mark -. dashdot 
 c cyan + plus -- dashed 
 m magenta * star 
 y yellow s square 
 k black d diamond11
 v triangle (down) 
 ^ triangle (up) 
 < triangle (left) 
 > triangle (right) 
 p pentagram 
 h hexagram 
 
 For example, PLOT(X,Y,'c+:') plots a cyan dotted line with a plus 
 at each data point; PLOT(X,Y,'bd') plots blue diamond at each data 
 point but does not draw any line. 
 
 PLOT(X1,Y1,S1,X2,Y2,S2,X3,Y3,S3,...) combines the plots defined by 
 the (X,Y,S) triples, where the X's and Y's are vectors or matrices 
 and the S's are strings. 
 
 For example, PLOT(X,Y,'y-',X,Y,'go') plots the data twice, with a 
 solid yellow line interpolating green circles at the data points. 
 
 The PLOT command, if no color is specified, makes automatic use of 
 the colors specified by the axes ColorOrder property. The default 
 ColorOrder is listed in the table above for color systems where the 
 default is blue for one line, and for multiple lines, to cycle 
 through the first six colors in the table. For monochrome systems, 
 PLOT cycles over the axes LineStyleOrder property. 
 
 PLOT returns a column vector of handles to LINE objects, one 
 handle per line. 
 
 The X,Y pairs, or X,Y,S triples, can be followed by 
 parameter/value pairs to specify additional properties 
 of the lines. 
 
 See also SEMILOGX, SEMILOGY, LOGLOG, PLOTYY, GRID, CLF, CLC, TITLE, 
 XLABEL, YLABEL, AXIS, AXES, HOLD, COLORDEF, LEGEND, SUBPLOT, STEM. 
 
 
Digamos que você tenha esquecido como funciona o somapol; então, entra com 
 
help somapol 
 SOMAPOL soma dois polinômios de quaisquer graus. 
 Entrada: 
 p1, p1: polinômios na forma de vetores dos coeficientes; 
 Saída: 
 p: resultado da soma dos polinômios p1 e p2, como vetor dos coeficients. 
 Usa-se [p] = somapol(p1,p2). 
 Em 01/01/2003 – Dr. Oclide José Dotto. 
 
O MATLAB apresentou tudo o que foi escrito antes do programa somapol propriamente dito. 
 Se você assimilou bem o exposto acima, prosseguirá aprendendo fácil e paulatinamente com o uso, 
grande parte da poderosa máquina que é o MATLAB.

Outros materiais