Академический Документы
Профессиональный Документы
Культура Документы
UFJF
PETROBRAS
APOSTILA DE MATLAB
Curso Introdutrio
de Matlab
PRH PB14
SUMRIO:
2.
1.2.
1.3.
Introduo ...............................................................................................................................11
2.1.
2.2.
2.3.
2.4.
Help ...................................................................................................................................14
2.5.
2.6.
2.6.1.
3.
Manipulao de Variveis.....................................................................................22
2.7.
2.8.
Entrada .............................................................................................................................27
3.1.1.
3.2.
Indexao ........................................................................................................................30
3.3.
Operaes........................................................................................................................31
3.3.1.
Transposta..................................................................................................................31
3.3.2.
3.3.3.
Multiplicao .............................................................................................................34
3.3.4.
Exponenciao ..........................................................................................................37
3.3.4.1.
Potncia...................................................................................................................37
3.3.4.2.
3.3.5.
Diviso .........................................................................................................................39
3.3.5.1.
3.3.5.2.
3.3.5.3.
3.3.5.4.
3.4.
4.
4.2.
4.2.1.
4.2.2.
Concatenao ............................................................................................................51
4.2.3.
4.3.
4.3.1.
4.3.2.
Manipulao...............................................................................................................55
4.3.3.
Informaes Diversas.............................................................................................57
4.3.4.
lgebra Linear...........................................................................................................58
4.4.
4.4.1.
Mtodo Convencional.............................................................................................59
4.4.2.
Escalonamento .........................................................................................................61
4.4.3.
4.5.
5.
6.
Programao...........................................................................................................................70
6.1.
Function ...........................................................................................................................70
6.1.1.
6.2.
Sintaxe .....................................................................................................................70
Operadores .....................................................................................................................71
6.2.1.
6.2.2.
6.3.
6.3.1.
6.3.1.1.
6.3.2.
6.3.2.1.
6.3.3.
FOR............................................................................................................................73
Exerccios resolvidos utilizando o lao FOR .........................................74
IF-ELSE-END .........................................................................................................75
Exerccios resolvidos utilizando o condicional IF-ELSE ..................76
WHILE ......................................................................................................................77
4
6.3.3.1.
6.3.4.
6.3.4.1.
7.
6.4.
6.5.
Grficos .....................................................................................................................................84
7.1.
7.1.1.
Plot/Subplot/Fplot .............................................................................................85
7.1.2.
Loglog.......................................................................................................................92
7.1.3.
Semilogx ..................................................................................................................93
7.1.4.
Semilogy..................................................................................................................95
7.1.5.
Polar .........................................................................................................................96
7.1.6.
Bar .............................................................................................................................97
7.1.7.
Hist ............................................................................................................................99
7.1.8.
7.1.9.
7.2.
7.3.
7.3.1.
7.3.2.
7.3.3.
Bar3/Bar3h......................................................................................................... 112
7.3.4.
7.4.
7.5.
1. Apresentao do MATLAB
O MATLAB surgiu na dcada de 70 em instituies de ensino e pesquisa
norte-americanas, University of New Mexico e Stanford University, como um
software destinado a cursos de teoria matricial, lgebra linear e anlise numrica.
Com o passar dos anos este software foi evoluindo com a contribuio e sugestes
de inmeros usurios, se tornando uma ferramenta padro em cursos de inmeras
reas do conhecimento.
Hoje mais de um milho de cientistas e engenheiros no mundo utilizam
MATLAB, seja para aplicaes na indstria tecnolgica ou acadmicas. Isso se
deve a grande variedade de aplicaes que a plataforma oferece, como
processamento de sinais e comunicao, processamento de imagem e vdeo,
sistemas de controle, teste e medies nas mais diversas reas, entre outras.
Para estudantes de Engenharia Eltrica o uso do MATLAB muito amplo,
na rea de Sistemas de Potncia pode-se ressaltar a importncia do uso inteligente
de matrizes para simular sistemas e a utilizao de grficos sempre que se deseja
exibir e analisar resultados.
1.1.
O que o MATLAB?
1.2.
Utilidades do MATLAB
1.3.
Menu Principal:
Comandos de configurao do ambiente MATLAB bem semelhantes a
interfaces grficas j conhecidas.
Command Window:
rea de trabalho onde so digitados os comandos, realizadas operaes e
exibidos resultados. A janela de comandos est pronta para uso aps a indicao
do prompt ">>".
Com as setas para cima e para baixo possvel o usurio recuperar comandos
j utilizados (no apenas as do prprio projeto, mas inclusive de dias anteriores).
8
Workspace:
rea de exibio das variveis criadas. Se voc clicar com o boto direito
sobre a barra de colunas, pode-se escolher quais informaes se quer visualizar a
respeito das variveis. Por exemplo: Nome, Valor, Classe, n de Bytes, entre outros.
Current Folder:
rea de exibio de arquivos contidos no atual diretrio (diretrio
selecionado para que os itens sejam salvos).
Command History:
rea de armazenamento de todos os comandos executados previamente no
MATLAB.
10
2. Introduo
Neste captulo sero abordadas as funcionalidades bsicas do MATLAB,
comeando pelas operaes aritmticas bsicas, constantes e funes matemticas
elementares e introduzindo o conceito de variveis e sua manipulao. Alm disso,
sero apresentados e discutidos alguns comandos teis para quem est iniciando
sua aprendizagem.
2.1.
Operaes Aritmticas
OPERADOR
+
*
/
\
^
FUNES
plus
minus
times
mrdivide
mldivide
power
DESCRIO
Soma
Subtrao
Multiplicao
Diviso Direita
Diviso Esquerda
Potncia
Subtrao:
>> 3+2
>> 3-2
ans =
5
ans =
1
>> plus(3,2)
>>minus(3,2)
ans =
5
ans =
1
11
Multiplicao:
Exponenciao:
>> 3*2
>> 3^2
ans =
6
ans =
9
>> times(3,2)
>> power(3,2)
ans =
6
ans =
9
Diviso Direita:
2.2.
Diviso Esquerda:
>> 3/2
>> 2\3
ans =
1.5000
ans =
1.5000
>> mrdivide(3,2)
>> mldivide(2,3)
ans =
1.5000
ans =
1.5000
Formato de Exibio
VALORES
3.141592653589793
2.220446049250313e-016
0 + 1.0000i
0 + 1.0000i
Em relao tabela acima, temos que o smbolo e-016 indica que o nmero
2.220446049250313 est multiplicando 10-16 e que para definir nmeros
complexos, podemos usar as constantes i e j.
2.3.
LONG:
ans =
3.1416
ans =
3.141592653589793
>> eps
>> eps
ans =
2.2204e-016
ans =
2.220446049250313e-016
>> i
>> i
ans =
0 + 1.0000i
ans =
0 + 1.000000000000000i
RETORNA
seno: radianos, graus e hiperblico
arco-seno: radianos, graus e hiperblico
cosseno: radianos, graus e hiperblico
arco-cosseno: radianos, graus e hiperblico
tangente: radianos, graus e hiperblico
Tabela 2.3 - Funes Trigonomtricas.
NOME
exp(x)
expm1(x)
log(x)
log1p(x)
log2(x)
log10(x)
nextpow2(x)
pow2(x)
realpow(x,y)
sqrt(x)
RETORNA
exponencial ( )
exponencial de x menos ( )
logaritmo natural () base
logaritmo natural de 1 ( )
logaritmo na base 2
logaritmo na base 10
prxima potncia de 2, tal que
2
potncia de 2
potncia real
raiz quadrada
Tabela 2.4 - Funes Exponenciais.
13
2.4.
Help
14
16
2.5.
Nmeros Complexos
! 3 4 tan%&
Comumente, apresentado como:
Matematicamente:
4
53,13 0,927 ,
3
3 4 553,13
17
3.9991i
>> 5*[cosd(53.13)+j*sind(53.13)]
ans =
3+
4i
3.9991i
Funes Complexas:
Pelo help elfun, podemos encontrar uma lista de funes complexas, dentre
as quais destacamos:
NOME
abs
angle
conj
imag
real
RETORNA
mdulo do nmero complexo
fase do nmero complexo (em radianos)
conjugado complexo
parte imaginria
parte real
Tabela 2.5 - Funes Complexas.
18
>> angle(3+j*4)
ans =
0.9273
>> conj(3+j*4)
ans =
3 - 4i
>> imag(3+j*4)
ans =
4
>> real(3+j*4)
ans =
3
19
modulo =
5
Agora, vamos fazer o inverso. Com as coordenadas polares, obter as
coordenadas cartesianas:
>> [x,y]=pol2cart(0.927,5)
x=
3.0012
y=
3.9991
2.6.
Variveis em MATLAB
Exceto quando fizemos a transformao de cartesiano para polar e viceversa, no criamos nenhuma varivel at o presente momento. Diferente de outras
linguagens de programao, na inicializao de variveis no MATLAB no
precisamos informar o tipo de varivel, apenas o contedo.
Ento se queremos criar uma varivel para armazenar um valor inteiro, basta
criar um nome e atribuir um valor inteiro por meio do operador =:
>> numero = 5
numero =
5
Se queremos uma varivel para armazenar um nmero real:
>> numero2 = 4.356
numero2 =
4.356
20
Existe uma varivel default criada pelo MATLAB que armazena o valor do
ltimo comando. Esta varivel se chama ans, do ingls answer.
>> ans
ans =
11
OBS. 1: Caracter ;
Para inibir a exibio do resultado da operao na tela, coloque o sinal ; no
final da linha de comando. Exemplo:
>> resposta = 45-76*sind(30);
>> resposta
resposta =
7
21
4i
DESCRIO
who
whos
clear
clear nome_variavel
load nome_arquivo.mat
22
2.7.
Outros Comandos
DESCRIO
pack
ver
version
demo
whatsnew
23
bench
quit/exit
Encerra o MATLAB
2.8.
Lista de Exerccios
c.
3<2
=> % 2
&&
? / &1@
4
24
format long
a = 4/3
format short
a = 4/3
clear
a=10
b = a^-1
c=a+b
c=a-b
help sqrt
% Complexos:
a = 4+ i*5
real(a)
imag(a)
abs(a)
angle(a)
25
26
3. Vetores e Matrizes
Neste captulo, comearemos a trabalhar com vetores e matrizes. Cabe dizer
que no captulo anterior as variveis com que trabalhamos j eram matrizes de
dimenso 1x1, pois o MATLAB trabalha essencialmente com um tipo de objeto,
uma matriz numrica retangular. Ou seja, at mesmo os vetores so considerados
pelo MATLAB como matrizes onde uma das dimenses 1.
3.1.
Entrada
27
Matrizes Complexas
Para se inserir matrizes complexas, basta definir cada elemento complexo
utilizando os conceitos vistos anteriormente:
>> A= [1+5*i 2+6*i; 3+7*i 4+8*i]
A=
1.0000 + 5.0000i 2.0000 + 6.0000i
3.0000 + 7.0000i 4.0000 + 8.0000i
9 10
9 10
28
Espaamento Linear
Vetores sequenciais ainda podem ser criados pela funo linspace. Sua
sintaxe :
V = linspace(valor inicial, valor final, quantidade)
A funo linspace cria a quantidade de nmeros fornecida entre o valor
inicial e final, com uma diferena uniforme entre eles. Supunha que eu quero um
vetor sequencial com 10 elementos de 1 a 10:
>> V=linspace(1,10,10)
V=
1
9 10
Espaamento Logartmica
inicial
>> V=logspace(1,2,5)
V=
10.0000 17.7828 31.6228 56.2341 100.0000
29
3.2.
Indexao
3
6
9
>> A(2,3)
ans =
6
30
3.3.
Operaes
Transposta
Adio e Subtrao
Multiplicao
Diviso
Exponenciao
3.3.1. Transposta
Transposta de uma matriz a troca entre coluna e linhas, de maneira que a
coluna 1 se torne a linha 1, a coluna 2 se torne a linha 2, e assim sucessivamente. Se
a matriz A possui dimenses nxm, sua transposta ter dimenses mxn.
O operador utilizado para calcular a transposta de uma matriz o
apstrofo . Observe os exemplos abaixo:
Vetor Linha
>> A=[1 2 3 4 5];
>> A'
ans =
1
2
3
4
5
Vetor Coluna
>> B=[1;2;3;4;5];
>> B'
ans =
1 2
5
31
Matriz 2x3
>> C=[1 2 3;4 5 6];
>> C'
ans =
1 4
2 5
3 6
Matriz 3x2
>> D=[1 2;3 4;5 6];
>> D'
ans =
1 3
2 4
5
6
.
Devemos tomar cuidado com transpostas de matrizes complexas. Considere o
exemplo abaixo:
>> E=[1+j*1 1-j*6; 5 -4+j*0.1; j*10 0]
E=
1.0000 + 1.0000i 1.0000 - 6.0000i
5.0000
-4.0000 + 0.1000i
0 +10.0000i
0
Se fizermos apenas E, no estaremos obtendo a transposta de E, mas sim o
conjugado complexo transposto. Observe:
>> E'
ans =
1.0000 - 1.0000i 5.0000
0 -10.0000i
1.0000 + 6.0000i -4.0000 - 0.1000i
0
Perceba que na resposta acima, alm de ter feito a transposta, a parte
imaginria trocou o sinal (os elementos de E so conjugados dos elementos de E).
Para se obter a matriz transposta de uma matriz complexa, deve-se usar o
operador ponto antes de apstrofo (.):
>> E.'
ans =
1.0000 + 1.0000i 5.0000
0 +10.0000i
1.0000 - 6.0000i -4.0000 + 0.1000i
0
Criando as matrizes:
2 3
10
5 6G H F10
8 9
10
10
10
10
10
10G
10
0 - 6.0000i
0 - 8.0000i
4
7
>> A-2
ans =
-1 0
2 3
1
4
3.3.3. Multiplicao
Multiplicao Matricial:
A multiplicao realizada pelo operador *. A condio matemtica
necessria ao multiplicar duas matrizes, que o nmero de colunas da primeira
deve ser igual ao nmero de linhas da segunda.
IJK LJM OMJK
34
2
1 2
4G H P
4 5
6
3
Q
6
>> A = [1 2; 3 4; 5 6];
>> B = [1 2 3;4 5 6];
A multiplicao A3x2*B2x3 resulta em uma matriz 3x3:
>> A*B
ans =
9 12 15
19 26 33
29 40 51
A multiplicao B2x3* A3x2 resulta em uma matriz 2x2:
>> B*A
ans =
22 28
49 64
Se tentarmos multiplicar duas matrizes em que o critrio matemtico no
respeitado, nos mostrado uma mensagem de erro:
>> C = [1 2 3; 4 5 6];
>> D = [2;3;4;5];
>> C*D
??? Error using ==> mtimes
Inner matrix dimensions must agree.
Lembramos que o mesmo aplicvel no caso de vetores.
35
D=
3.1416 6.2832 9.4248
12.5664 15.7080 18.8496
Multiplicao Escalar:
Preste ateno no nome dado multiplicao acima. Uma multiplicao
POR ESCALAR e a outra multiplicao ESCALAR, tambm chamada de ponto a
ponto ou em conjunto. Seu operador representado por .* e significa que
estamos multiplicando elemento por elemento de duas matrizes.
Considere os exemplos abaixo:
A3X2.*B3X2:
ans =
2 3
4 5
6 7
A2x2.*B2x1:
36
3.3.4. Exponenciao
3.3.4.1. Potncia
O operador de potncia ^. Vejamos alguns exemplos:
37
38
3.3.5. Diviso
Podemos fazer quatro operaes de diviso: diviso matricial direita,
diviso matricial esquerda, diviso escalar direita e diviso escalar esquerda.
Veremos cada uma delas e suas caractersticas neste tpico, mas antes
introduziremos dois conceitos importantes que sero necessrios: determinante e
inversa de uma matriz.
2 1
0.2 0.2
1
Q H D%& P
Q D D%& P
3 1
0.6 0.4
0
0
Q
1
Qual o critrio para que uma matriz seja invertvel alm dela ser quadrada?
Ela deve ser no-singular, ou seja, possuir determinante 0.
Para encontrar a determinante de uma matriz, utilizamos a funo det. Por
exemplo:
>> A=[-2 1;3 1];
>> det(A)
ans =
-5
>> B=[-2 -1 1;5 3 -1;3 1 -3];
>> det(B)
ans =
0
39
ans =
-0.2000 0.2000
0.6000 0.4000
>> inv(A)
ans =
-0.2000 0.2000
0.6000 0.4000
2
DP
3
1
Q H 410
1
39
40
2 1
2
Q H P Q
3 1
5
>> A\B
ans =
-1.4000
-0.8000
>> inv(A)*B
ans =
-1.4000
-0.8000
possvel fazermos B\A? Vamos tentar tal como anteriormente:
>> inv(B)*A
??? Error using ==> inv
Matrix must be square.
>> B\A
ans =
-0.6552 -0.1034
Como no caso anterior, a equivalncia da expresso (2) matemtica, mas o
algoritmo de clculo para cada comando diferente.
42
Observe os exemplos:
DP
>> A=[10 20;30 40];
>> B=[2 4;6 8];
>> A./B
10 20
2 4
Q H P
Q
30 40
6 8
ans =
5 5
5 5
>> B.\A
ans =
5 5
5 5
3.4.
Lista de Exerccios
8
2
XY P
5
1T
[T
ZC 4
!\,]9
[!
3 2
1
^ 44
10 12
4200
6 8
180
160
140
3 4
Q
3 0
T
!830E
0
14
169
120
100
809
vi.
vii.
CARRO 1
CARRO 2
PRODUO EM
JANEIRO
100
200
PRODUO EM
FEVEREIRO
120
180
CARRO 1
CARRO 2
CUSTO EM
JANEIRO
$10.0
$6.0
CUSTO EM
FEVEREIRO
$9.8
$6.1
PEA 1
PEA 2
CARRO 1
25
42
CARRO 2
28
55
Crie trs matrizes para representar as tabelas. Faa o que se pede utilizando a
operao elementar necessria:
a. Armazene na matriz M1 o custo de produo total (quantidade de
carros * custo individual) em cada ms.
CUSTO TOTAL
EM JANEIRO
CUSTO TOTAL
EM FEVEREIRO
CARRO 1
CARRO 2
QTDE TOTAL EM
FEVEREIRO
PEA 1
PEA 2
B: transposta de A
C: soma das matrizes A e B
45
iii.
iv.
v.
vi.
vii.
D: inversa de A
E: conjugado da transposta de A
F: multiplicao escalar de B e E
G: A elevado a um nmero fracionrio qualquer
H: elementos de D elevado ao cubo
46
4.1.
Funes Matemticas
FUNES
plus
minus
mtimes
times
mpower
power
mrdivide
rdivide
mldivide
ldivide
OPERADOR
EXEMPLO
A+B
A-B
A*B
plus(A,B)
minus(A,B)
mtimes(A,B)
A.*B
A^esc
A.^esc
times(A,B)
mpower(A,esc)
power(A,esc)
A/B
mrdivide(A,B)
A./B
rdivide(A,B)
A\B
A.\B
mldivide(A,B)
ldivide(A,B)
NOME
sin, sind, sinh
cos, cosd, cosh
sqrt(x)
abs
angle
RETORNA
seno: radianos, graus e hiperblico
cosseno: radianos, graus e hiperblico
raiz quadrada
mdulo do nmero complexo
fase do nmero complexo (em radianos)
Tabela 4.2 - Outras Funes Matemticas.
4.2.
Gerao de Matrizes
2
6
10
14
3 4
7 8
11 12
15 16
>> A(2,2)
ans =
6
Podemos extrair matrizes menores de matrizes maiores utilizando esse tipo
de indexao. Observe:
Posio Sequencial:
Tambm podemos referir a um elemento pela ordem sequencial, de cima
para baixo, da esquerda para a direita:
>> A=[1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16]
A=
1
5
9
13
2
6
10
14
3 4
7 8
11 12
15 16
>> A(15)
ans =
12
Utilizando essa indexao, o end refere-se ao ltimo ndice, no caso, 16:
>> A(end)
ans =
16
50
6 10 14
>> A(5:end)
ans =
2 6 10 14
7 11 15
8 12 16
4.2.2. Concatenao
Concatenao por Coluna
Observe os exemplos abaixo:
>> V1=[1 2 3];
>> V2=[4 5 6];
>> [V1;V2]
ans =
1 2
4 5
3
6
3
3
6
51
2
4
2
5
3
6
1
2
1
2
>> A = [A B]
A=
1
4
2
5
3
6
1
2
1
2
1
2
52
FUNO
SINTAXE
DESCRIO
blkdiag
eye
eye (n)
ones
ones (n)
ones (n,m)
zeros
zeros (n)
zeros (n,m)
magic
magic (n)
rand
rand (n)
rand (n,m)
randn
randn (n)
randn (n,m)
53
blkdiag e ones:
4.3.
2
4
0
0
0
0
0
1
1
1
0
0
1
1
1
eye e zeros:
>> eye(2)
ans =
1 0
0 1
0
0
1
1
1
>> zeros(2,3)
ans =
0 0
0 0
0
0
Funes Matriciais
DESCRIO
[x,y] = size(A)
length (A)
ndims (A)
numel (A)
54
4.3.2. Manipulao
Neste tpico, mostraremos funes que alteram a estrutura de uma matriz:
FUNO
DESCRIO
fliplr (A)
flipup (A)
55
repmat (A,x,y)
reshape (A,x,y)
sort(A, metodo)
repmat:
>> m1 = [1 2;3 4]
m1 =
1 2
3 4
>> repmat(m1,2,3)
ans =
1
3
1
3
2
4
2
4
1
3
1
3
2
4
2
4
1
3
1
3
2
4
2
4
reshape:
>> m1 = [1 2 3 4 5 6;7 8 9 10 11 12]
m1 =
1 2
7 8
3 4 5 6
9 10 11 12
>> reshape(m1,3,4)
ans =
56
1
7
2
8 4 11
3 10 6
9 5 12
DESCRIO
prod (A)
cumprod (A)
sum (A)
cumsum(A)
trace(A)
diag (A)
find:
>> m = [-1 0 3;0 -5 6;7 8 0]
m=
-1 0
0 -5
7 8
3
6
0
DESCRIO
det (A)
cond (A)
inv (A)
Retorna a inversa de A
norm (A)
rank(A)
[V,D] = eig(A)
V: Matriz de autovetores de A
D: matriz diagonal de autovalores de A
compan (p)
poly (A)
polyeig (A)
norm:
>> m = [0 1 2]
>> norm(m)
ans =
2.2361
4.4.
59
X = inv(A)*B
X = A\B
X = linsolve(A,B)
>> X = linsolve(A,B)
X=
1.0000
2.0000
3.0000
Qual a diferena entre eles? Velocidade de Processamento. O clculo
realizado pela 2 opo geralmente de duas a trs vezes mais rpido quando se
trata de matrizes com dimenses elevadas. Podemos fazer o teste de velocidade
utilizando o comando tic, ..., toc. Considere uma matriz quadrada de dimenso 5000
criada aleatoriamente. Iremos medir o tempo levado em um determinado
computador:
60
4.4.2. Escalonamento
Considere o mesmo exemplo anterior:
61
ans =
1 0
0 1
0 0
0
0
1
1
2
3
>> X = ans(:,4)
X=
1
2
3
62
4.5.
Lista de Exerccios
A(1:5,3)
A(1:5,7:10)
A(1:2:5,:)
A(1:4:3,2:1:4)
A(:,:)
A(4:-1:2,:)
1 coluna: transposta de a
2 coluna: inversa dos elementos da 1 coluna
3 coluna: soma da transposta de a com o escalar (3*i)
4 coluna: conjugado complexo da 3 coluna.
2
6
10
12
3
7
11
13
4
7.4 [T 0
8 E H F
4.01 2 3G
12
0.1 10 0
16
FREQUENCIA
30
60
10
Deseja-se saber:
a. Qual a mdia dos salrios das pessoas?
b. Qual a varincia dos salrios?
c. Qual o desvio padro dos salrios?
Dicas:
a mdia dos salrios uma mdia ponderada entre os valores de salrio
e frequncia, ou seja, igual soma de cada valor do salrio
multiplicado por sua frequncia, dividida pela soma das frequncias.
65
66
nesta barra que temos os comandos bsicos, tais como abrir, salvar,
recortar, copiar, desfazer, repetir, imprimir, etc.
O arquivo carrega com um nome padro provisrio chamado Untitled. Aps
digitar seu algoritmo (veremos os principais comandos no prximo captulo), voc
dever salv-lo clicando no cone
. importante salientar que no nome do
arquivo no poder conter espaos, acentos e alguns dgitos, tais como hifens e
barras. Uma sugesto para separar as palavras usar o underline (_).Lembrando
que o nome ser case-sensitive.
Obs.: Algumas vezes podem aparecer tambm um arquivo .asv. Estes so
arquivos comuns gerados pelo autosave do MATLAB.
67
Tecla
Ao
Alt+S
Ctrl+0
Ctrl+1
Ctrl+2
Ctrl+3
Ctrl+4
Seleciona tudo
Ctrl+C (copy)
Copia
68
Ctrl+D (duplicate)
Duplica
Ctrl+F (find)
Procura
Ctrl+N (new)
Ctrl+O (open)
Abre arquivo
Ctrl+P (print)
Imprime
Ctrl+Q (quit)
Ctrl+S (save)
Salva arquivo
Ctrl+Shift+0
Ctrl+V (paste)
Cola
Ctrl+W
Ctrl+X (cut)
Refaz
Ctrl+Y (redo)
Desfaz
Ctrl+Z (undo)
ESC (escape)
F5 (run)
Tab
Tab+Ctrl
69
6. Programao
6.1.
Function
6.1.1. Sintaxe
Para se chamar a funo criada, isso pode ser feito atravs de outro arquivo
.m ou pelo Command Window, e a sintaxe a ser utilizada mostrada a seguir:
[parametros_de_saida] = nome_da_funcao(parametros_de_entrada)
EXEMPLO 1
Criar uma funo que receba como parmetros de entrada 3 valores e
retorne a mdia.
function [media] = calcula_media(x,y,z)
media = (x,y,z)/3;
Para chamar a funo, escreva no Command Window, a seguinte sintaxe:
[media] = calcula_media(10,9,8)
70
6.2.
Operadores
Operador
<
<=
>
>=
==
~=
Descrio
Menor que
Menor ou igual a
Maior que
Maior ou igual a
Igual a
Diferente de
>> B = 9-A
B=
8
>> vf = A>4
vf =
0
71
Descrio
E
Ou
No
72
6.3.
Controle de Fluxo
6.3.1. FOR
A estrutura geral do comando FOR ser apresenta a seguir. Como poder ser
observado este comando possibilita que uma srie de operaes seja repetida
por nmero fixo de vezes e pr-definido. O comando end funciona como limite
inferior do corpo do lao.
for variavel = valor inicial : incremento : valor final
comandos
end
EXEMPLO 1
A=1;
for ii=1:2:9
X(A) = 2*ii;
A = A+1;
end
X=
2
6 10 14 18
73
EXEMPLO 2
for ii=1:9
X(ii) = 2*ii;
end
X=
2
8 10 12 14 16 18
EXEMPLO 3
for ii=1:3
for jj=1:3
Y(ii,jj) = ii+2*jj;
end
end
Y=
3
4
5
6.3.1.1.
5
6
7
7
8
9
6.3.2. IF-ELSE-END
Em algumas situaes uma sequncia de comandos tem que ser realizada
condicionalmente, utilizando para isso um teste relacional. Tal operao
realizada por meio da estrutura IF-ELSE-END, como ser descrito abaixo.
if expressao1
comandos realizados se expressao1 for VERDADEIRA
elseif expressao2
comandos realizados se expressao2 for VERDADEIRA
else
comandos realizados se ambas as expresses forem FALSAS
end
EXEMPLO 1
for ii=1:3
for jj=1:3
if jj == ii
A(ii,jj) = 2;
elseif abs(ii-jj) == 1
A(ii,jj) = -1;
else
A(ii,jj) = 0;
end
end
end
OU
if condicao
comandos realizados se a condio for VERDADEIRA
end
75
EXEMPLO 2
Calcular o desconto de 30% quando a venda de mesas exceder 5 unidades,
sendo que o custo de cada uma de R$ 89,99.
num_mesas = input('Informe o nmero de mesas desejadas:
preco = 89.99;
custo_total = preco*num_mesas;
if(num_mesas >5)
custo_total = 0.7*custo_total;
end
disp(custo_total);
');
6.3.2.1.
');
Pontuao
Superior a 8 em pelo menos uma das provas ou a soma
dos pontos for superior a 14.
Superior a 6 em pelo menos uma das provas ou soma dos
pontos superior a 9.
Nenhum dos casos acima.
76
6.3.3. WHILE
EXEMPLO 1
Calcular o fatorial de um nmero qualquer.
x = input('Informe um valor para o qual se deseja calcular o fatorial:
fatorial = 1;
while x>0
fatorial = fatorial*x;
x = x-1;
end
disp(fatorial);
');
77
6.3.3.1.
1 3 5 7
2 2 2 2
%CALCULO DA SRIE
n = 0;
x = 1;
serie = 0;
while n<50
serie = serie + x/2;
x=x+2;
n=n+1;
end
disp(serie);
6.3.4. SWITCH-CASE
Essa estrutura funciona como uma chave seletora, escolhendo a expresso
correta dentro de uma lista e, por fim, executa os comandos.
switch expressao
case teste_expressao1
comandos_1
case teste_expressao2
comandos_2
.
.
.
otherwise
comandos_n
end
e quando uma string o teste efetuado pelo comando strcmpque compara duas
strings e retorna 1 se so iguais e 0 caso contrrio.
78
EXEMPLO 1
Converso de centmetros para polegadas, ps ou metros.
% CONVERSO DE UNIDADES
x = input('Informe em centmetros o valor a ser convertido: ');
tipo_unidade = input('Informe para qual unidade voc deseja converter o valor informado: ');
switch tipo_unidade
case {'polegadas','pol'}
y = x/2.54;
disp([num2str(y) 'pol']);
case {'pes','p'}
y = x/(2.54*12);
disp([num2str(y) 'p']);
case {'metros',m}
y = x/100;
disp([num2str(y) 'm']);
otherwise
disp('Unidade no encontrada');
end
50
'pes'
1.6404p
79
6.3.4.1.
');
switch mes
case 1
disp('31 dias');
case 2
disp('28 ou 29 dias');
case 3
disp('31 dias');
case 4
disp('30 dias');
case 5
disp('31 dias');
case 6
disp('30 dias');
case 7
disp('31 dias');
case 8
disp('31 dias');
case 9
disp('30 dias');
case 10
disp('31 dias');
case 11
disp('30 dias');
case 12
disp('31 dias');
otherwise
disp('Ms no existente.')
end
6.4.
Comandos Bsicos
COMANDO
DESCRIO
SINTAXE
disp
disp(nome_da_variavel);
OU
disp('Imprime este texto');
input
nome_da_variavel = input('Informe o
dado de entrada');
80
save
load
delete
break
break
format
Ver ANEXO 1
abs
abs(nome_da_variavel)
angle
angle(nome_da_variavel)
conj
conj(nome_da_variavel)
imag
imag(nome_da_variavel)
real
real(nome_da_variavel)
find
nome_da_variavel = find(Critrio)
max/min
max(nome_da_variavel)
min(nome_da_variavel)
sqrt
sqrt(nome_da_variavel)
ceil
fix(nome_da_variavel)
fix
ceil(nome_da_variavel)
round
round(nome_da_variavel)
rem
rem(nome_da_variavel_1,nome_da_var
iavel_2)
81
6.5.
Lista de Exerccios
82
sequencia = [1 2 3 10 3 4 0 2 9 8 10]
83
7. Grficos
A construo de grficos talvez seja uma das principais funes realizadas
com o MATLAB, j que em qualquer aplicao de praticamente todas as reas os
grficos so a forma mais direta do entendimento dos dados obtidos ou a forma
mais visvel para a anlise dos mesmos.
Criar grficos com o MATLAB muito simples e na maioria das vezes bem
intuitivo, porm quanto maior a prtica melhores eles sero. Neste captulo iremos
abordar:
Grficos Bidimensionais;
Estilos de Linha e Smbolos;
Grficos Tridimensionais.
Escreveremos os comandos que seguem no Editor, no no Command Window.
7.1.
Grficos Bidimensionais
COMANDO
FUNO
plot
Plotar linear
subplot
loglog
semilogx
semilogy
polar
compass
bar
barh
stem
stairs
pie
hist
Plota histogramas
Tabela 7.1 - Comandos de grficos 2D.
7.1.1. Plot/Subplot/Fplot
85
O primeiro termo dentro dos parnteses do comando plot sempre ser o vetor
cujos comandos estaro no eixo das abcissas (eixo horizontal) e o segundo a
varivel que representa a funo.
O mesmo resultado seria alcanado se a funo fosse digitada diretamente
dentro do comando plot, ou seja, sem a necessidade de definir uma varivel para
ela.
Veja:
t=[0:0.01:4*pi];
plot(t,sin(t))
Caso se deseje plotar mais de um grfico em uma mesma janela, existem duas
maneiras principais:
87
Sendo que o MATLAB muda a cor de cada curva para facilitar a visualizao,
porm algumas verses do programa no fazem isto.
A outra maneira usar um comando chamado hold on. Neste caso cada
funo dever ser definida separadamente, e aps o comando de plotagem da
primeira funo, adicionamos o comando hold on. Aps este comando, qualquer
outra funo ser plotada na mesma janela. Observe que todas as funes foram
plotadas no mesmo intervalo de tempo t.
Veja o exemplo:
t=[0:0.01:4*pi];
f1=sin(t);
f2=cos(t);
f3=sin(t+pi);
f4=cos(t+pi);
plot(t,f1);
88
hold on
plot(t,f2)
plot(t,f3)
plot(t,f4)
f3=sin(t+pi);
f4=cos(t+pi);
plot(t,f1);
figure
plot(t,f2)
figure
plot(t,f3)
figure
plot(t,f4)
Observe que, para cada nova janela de grfico preciso inserir o comando
figure.
90
t=[0:0.1:4*pi];
f1=sin(t);
f2=sin(t+pi);
subplot(1,2,1)
plot(t,f1)
subplot(1,2,2)
plot(t,f2)
Outra opo o comando fplot, que plota de forma bem simples grficos
lineares. Basicamente, voc deve fornecer como primeiro argumento a funo que
pretende usar entre apstrofes e como segundo, o intervalo sobre o qual a funo
ser plotada.
Veja:
fplot('sin(x)',[-pi,pi])
91
7.1.2. Loglog
Podemos tambm plotar grficos em escala loglog (dilog), utilizando o
comando loglog. Este tipo de grfico se torna til quando se deseja analisar o
comportamento da funo em um grande intervalo
Observe o exemplo abaixo, de uma funo exponencial:
t=[0:0.01:4*pi];
f=exp(t);
loglog(t,f)
92
7.1.3. Semilogx
Grficos monolog tambm podem ser plotados. O comando semilogx plota um
grfico onde somente o eixo X est em escala logartmica.
Observe o exemplo abaixo, utilizando a funo log(t):
Se usarmos o comando plot, teremos:
t=[0:0.01:4*pi];
f=log(t);
plot(t,f)
93
94
7.1.4. Semilogy
Este comando segue a mesma linha do anterior, porm desta vez ser o eixo Y
que estar em escala logartmica, enquanto X permanecer em escala linear.
Primeiramente veja como fica a funo exponencial, usando o comando plot:
t=[0:0.01:4*pi];
f=exp(t);
plot(t,f)
95
7.1.5. Polar
Este comando utilizado para plotar grficos em coordenadas polares.
Veja o exemplo:
t=[0:0.01:4*pi];
f=sin(t);
polar(t,f)
96
7.1.6. Bar
Este comando permite criar grficos de barras. Veja o exemplo a seguir.
Suponha que uma empresa quer analisar o nmero de produtos vendidos
durante os doze meses do ano passado. Um dos vetores conter os meses e o outro
o nmero de vendas em cada ms. Assim:
m=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
v=[120,230,400,415,350,360,400,300,350,410,480,560];
bar(m,v)
97
Obs.: O comando barh apenas inverte os eixos (neste caso os meses ficariam
no eixo Y e as vendas no eixo X).
Veja:
m=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
v=[120,230,400,415,350,360,400,300,350,410,480,560];
barh(m,v)
98
7.1.7. Hist
Um histograma um diagrama que mostra a distribuio de valores em um
conjunto de dados. Para criar um histograma, a faixa de valores em um conjunto
dedados dividida em grupos regularmente espaados, e o nmero de valores
dedados que caem em cada grupo determinado. A contagem resultante pode ser
representada em um diagrama como funo do nmero do grupo.
Algumas das snteses para gerar histogramas so:
hist(y) - cria um histograma com 10 grupos igualmente espaados.
hist(y,n) - cria um histograma com n grupos igualmente espaados.
Exemplo:
O comando abaixo cria 100 valores aleatrios gaussianos, e cria um
histograma com 9 conjuntos de valores. Assim os 100 valores aleatrios so
separados em 9 conjuntos de acordo com seus valores.
y=randn(100,1)
hist(y,9)
99
7.1.8. Pie
O comando pie gera um grfico de pizza, veja o exemplo:
Supondo um grfico que mostra o numero de produtos vendidos a cada ms
do ltimo ano.
v=[120,230,400,415,350,360,400,300,350,410,480,560];
pie(v)
v=[120,230,400,415,350,360,400,300,350,410,480,560];
meses={'Jan''Fev''Mar''Abr''Mai''Jun''Jul''Ago''Set''Out''Nov''Dez'};
pie(v,meses)
100
Logo, teremos:
7.1.9. Stem/Stairs
7.2.
103
Maior venda
Nmero de vendas
500
400
300
200
100
7
8
Meses
10
11
12
104
105
Logo:
106
Valor
0
1
2
3
4
-1
Significado
Escolha automtica da melhor posio (mnimo conflito com os dados)
Canto superior direito
Canto superior Esquerdo
Canto inferior esquerdo
Canto inferior direito
direita do grfico
Tabela 7.3 - Valores comando legend.
107
108
7.3.
Grficos Tridimensionais
COMANDO
plot3
comet3
pie3
bar3
barh3
contour
fill3
contour3
clabel
quiver
mesh
meshc
surf
surfc
surfil
slice
cylinder
sphere
FUNO
Plotar em espao 3D
Plotar em 3D com trajetria de cometa
Plota grfico de pizza 3D
Plota grfico de barras 3D na vertical
Plota grfico de barras 3D na horizontal
Plotar contorno 2D
Desenhar polgono 3D
Plotar contorno 3D
Plotar contorno com valores
Plotar gradiente
Plotar malha 3D
Combinao mesh/contour
Plotar superfcie 3D
Combinao surf/contour
Plotar superfcie 3D com iluminao
Plot visualizao volumtrica
Gerar cilindro
Gerar esfera
7.3.1. Plot3
O comando plot3 permite a plotagem de curvas em trs dimenses.
t=0:pi/50:10*pi;
plot3(sin(t),cos(t),t,'r','LineWidth',2)
grid
axis square
xlabel('seno(t)')
ylabel('cosseno(t)')
zlabel('tempo')
109
7.3.2. Mesh
Este comando permite plotar planos ou superfcies tridimensionais.
Primeiro se deve definir os limites do plano XY informando os valores em
dois vetores. Como este comando plota superfcies e apenas vetores no so
suficientes para defini-la, preciso criar uma grade de pontos, ou um conjunto de
nX x nY pares (onde nX e nY so a quantidade de valores dentro dos vetores X e
Y, respectivamente), sendo o comando meshgrid que se encarrega de criar este
conjunto.
110
20
15
10
0
4
4
-2
-2
-4
-4
0.5
-0.5
10
5
10
5
-5
-5
-10
-10
111
7.3.3. Bar3/Bar3h
Os comandos abaixo criam grficos tridimensionais em barras.
m=[1,2,3,4,5,6,7,8,9,10,11,12];
v=[120,230,400,415,350,360,400,300,350,410,480,560];
grid
subplot(1,2,1)
bar3(m,v,r)
title(Bar3)
subplot(1,2,2)
bar3h(m,v,b)
title(Bar3h)
Bar3h
Bar3
600
12
11
10
9
8
7
6
5
4
3
2
1
400
200
0
1
9
10
11
12
0
200
400
600
112
7.3.4. Pie3
Este comando cria um grfico de pizza tridimensional.
v=[120,230,400,415,350,360,400,300,350,410,480,560];
explode=[1 1 1 1 1 1 1 1 1 1 1 1];
nomes={JanFevMarAbrMaiJunJulAgoSetOutNovDez};
pie3(v,explode,nomes)
7.4.
Aps o grfico ser plotado ele pode ser editado sem que seja necessrio
reformular as linhas de comando. Por isso existe o menu Plot Tools and Dock
Figure, que pode ser acessado clicando no cone da janela do grfico mostrado
abaixo:
113
cone
Nome
Ao
New figure
Open file
Abre o arquivo
Save
Armazena o arquivo
Imprime
Edit plot
Pan
Desloca a visualizao
Rotate 3D
Data cursor
Insert colorbar
Insert legend
Insere legenda
Clicando em
115
7.5.
Lista de Exerccios
p ] 2!8l]
pq] 2!8l] 120
ii.
ps] 2!8l] 120
iii.
Os
eixos
devero
ter
legendas:
Eixo
X=tempo
Eixo
Y=amplitude;
iv.
116
v.
vi.
5) Usando o comando subplot, plote dois grficos na mesma janela. Sendo que:
i.
ii.
iii.
As equaes so:
L1 !8;
L2 cos ;
117
ndice
Componente
Unidades
vlvula SF6
16
fusvel 300
47
fusvel 500
34
isolador 33kV
30
isolador 415V
35
disjuntor 25kV
disjuntor 220V
14
lmpada mercrio
30
Total de Componentes
211
A voc, depois do ltimo Redbull, se lembra do curso ministrado no PRHPB14, e decide criar um grfico para facilitar a visualizao dos dados por
seu chefe. Plote um grfico tridimensional de pizza, onde em um dos eixos
estejam os ndices dos componentes e no outro o nmero de unidades.
Coloque uma legenda (na parte do grfico que achar melhor), com os nomes
dos componentes. Faa seu melhor, use o que voc aprendeu at aqui.
b. u, a 1 a , , a 40.5; 0.59;
c. u, a a, , a 40,19;
d. u, a ,s] 8v a , , a 48,89;
118
circunferncia trigonomtrica
1
0.8
0.6
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
eixo dos cossenos
0.4
0.6
0.8
119
Agradecimentos
Por fim, deixamos o nosso muito obrigado a todos aqueles que nos
incentivaram na realizao deste curso introdutrio de MATLAB, bem como
confeco do presente material didtico tutorial que, certamente, auxiliar outras
pessoas que ambicionam iniciar o aprendizado deste to importante software e
tambm nos fez aprender um pouco mais sobre o MATLAB.
Em especial, nosso agradecimento Universidade Federal de Juiz de Fora
(UFJF) e PETROBRAS que, atravs do Programa de Recursos Humanos PRH-PB
14, investem na nossa formao profissional e nos impulsionam a crescermos cada
dia mais.
Aos professores Dbora Rosana Ribeiro Penido Arajo e Leandro Ramos de
Arajo tambm o nosso reconhecimento pelo apoio e ateno dados em todos os
momentos e pela dedicao para com a nossa formao.
120
Bibliografia
[1] HANSELMAN, D.; LITTLEFIELD, B.MATLAB 6 Curso Completo.Editora
Pearson Prentice Hall. So Paulo, 2007.
[2]MATSUMOTO, E. Y.; MATLAB 7 - Fundamentos 2 Edio. Editora rica. So
Paulo, 2006.
[3] CHAPMAN, S.J.; Programao em MATLAB para engenheiros. Traduo
tcnica: Flvio Soares Correa da Silva, So Paulo, Thomson Learning, 2006.
[4] DONIZETTI, J.L.; Elementos Bsicos de Programao em MATLAB. Paran.
[5] Curso de MATLAB. PET Eltrica UFMS.
[6] MATLAB: Curso Introdutrio. Centro Brasileiro de Pesquisas Fsicas, 2002.
121
Descrio
Exemploexp()
format short
23.1407
format long
23.140692632779267
format short e
format long e
format short g
23.141
format long g
23.1406926327793
format hex
format bank
format rat
format +
Formato de engenharia,
com 4 algarismos
significativos e potencia
mltipla de 3.
Formato de engenharia,
com 15 algarismos
significativos e potencia
mltipla de 3.
Apresenta o valor em
hexadecimal.
Valores bancrios (2
algarismos
significativos).
Apresenta o valor atravs
de uma aproximao por
racionais.
Exibe apenas o sinal, ou
seja, + para valor positivo
e para valor negativo.
23.1407e+000
23.1406926327793e+000
403724046eb09339
23.14
6086/263
Captulo 2
===========================================================
Exerccio 1:
>> A=1;
>> B=2;
>> C=3;
>> who
Your variables are:
A
>> clear B
>>clc
>> whos
Name
Size
Bytes
Class
Attributes
1x1
double
1x1
double
>> A
A =
1
>> C
C =
3
Exerccio 2:
>> a = sqrt(25) - 2^3;
>> b = sqrt(25) + 2^3;
>> c = sqrt(25) * 2^3;
>> d = sqrt(25) / 2^3;
123
Exerccio 3:
>> b
b =
13
>> c
c =
40
>> d
d =
6.2500e-01
>> format long e
>> a
a =
-3
>> b
b =
13
>> c
c =
40
>> d
d =
6.250000000000000e-01
Exerccio 4:
a)
>> 2+(7+9)/2
ans =
10
b)
>> 7*((5^2)-sqrt(9))/11-4
125
ans =
10
c)
>> ((8*10^3)^(1/3))/2
ans =
10.0000
Exerccio 5:
>> x=1.253;
>> u=(1/sqrt(2*pi))*exp((-1/2)*x^2)
u =
0.1820
>> y=(sin(pi*x))^2
y =
0.5094
>> z=(exp(sin(x)))/(sqrt((x^2)+1))
z =
1.6128
Exerccio 6:
>> Z=3+4*i;
>> R=real(Z)
R =
3
>> I=imag(Z)
I =
4
>> M=abs(Z)
M =
5
>> ang = angle(Z)
126
ang =
0.9273
% Por mudana de coordenadas:
>> [fase,M]=cart2pol(3,4)
fase =
0.9273
M =
5
>> [fase,M]=cart2pol(R,I)
fase =
0.9273
M =
5
Exerccio 7:
a)
>> a=3.7;
>> b=5.7;
>> ab=79; %graus
>> c= sqrt(a^2 + b^2 - 2*a*b*cosd(ab))
c =
6.1751
b)
>> format long
>> c
c =
9.163626713023771
c)
>> ac= asind((b/c)*sind(ab))
ac =
127
37.632619046438521
>> format short e
>> ac
ac =
3.7633e+01
>> format long e
>> ac
ac =
3.763261904643852e+01
Exerccio 8:
Exerccio de fixao.
Exerccio 9:
a)
>> a= 1000*cosd(25.5) - log10(4^(2.9+8.21))
a =
895.8964
>> a= a/sqrt(7+ exp(4.56))
a =
88.4543
b)
>> z= ((1+ cosd(65))^2)/((1-cosd(65))^2)
z =
6.0709
>> z = z*log(2.825^9)/3.4
z =
16.6888
128
c)
>> x= (16.5 +exp(2))/sqrt(10*log(6^4));
>> x = x + 10*tand(75)/((cosd(20))^2 + (sind(88))^2);
>> x = x - 9.12^(2.5)/((5.3 - 3.1^(0.9))/2)
x =
-175.7809
===========================================================
Captulo 3
===========================================================
Exerccio 1:
>>
>>
>>
>>
>>
>>
A=[1:3;4:6;7:9];
B=[54 -8;1-8*i 5*i];
C=[2:4;i -3 0];
D=[pi eps i; 4 3+2 sind(30); sqrt(9) 1 0];
E=4:2:16;
F=linspace(200,80,7);
Exerccio 2:
>>
>>
>>
>>
>>
>>
>>
>>
x=0:5;
y(1)=sqrt(4);
y(2)=3-2;
y(3)=(-1)^2;
y(4)=3*5;
y(5)=y(1)-y(2);
y(6)=y(4)/y(1);
y(9)=1;
Exerccio 3:
>> Y=-3.4:0.32:8;
>> Z=10:-1.23:1;
>> X=0:10*pi:15^2;
Exerccio 4:
>> A=[3 2;1 0;5 -5];
>> B=[-10 4;0 -1;1 6];
>> C=[1 2 0;0 2 1;3 3 3];
>>%A3X2 B3X2 C3X3
>>%Preciso que X tenha 3 colunas
>>%Ento tenho que transpor A
129
>> A=A';
>> X=B*A;
>> Y=X*(C^2);
Exerccio 5:
>>A = [1 2 3; 1 2 3; 1 2 3];
>>B = [1 -1 3; 4 0 0; -4 -2 1];
>> Z = A.*B;
Exerccio 6:
>>
>>
>>
>>
>>
Exerccio 7:
>>A = [1 2 3; 1 2 3; 1 2 3];
>>B = [1 -1 3; 4 0 0; -4 -2 1];
>> X = A/B
X =
1.6000
1.6000
1.6000
-1.9500
-1.9500
-1.9500
-1.8000
-1.8000
-1.8000
>> X = A*inv(B)
X =
1.6000
1.6000
1.6000
-1.9500
-1.9500
-1.9500
-1.8000
-1.8000
-1.8000
0.5000
-2.1000
-0.2000
0.7500
-3.1500
-0.3000
>> Y = B\A
Y =
0.2500
-1.0500
-0.1000
>> Y = inv(B)*A
Y =
0.2500
-1.0500
-0.1000
0.5000
-2.1000
-0.2000
0.7500
-3.1500
-0.3000
130
Exerccio 8:
No. Para uma matriz A complexa, a operao A retorna o conjugado
complexo da transposta de A, enquanto que a operao A. retorna a
transposta de A.
Exerccio 9:
>> X = [(1+j) (1-5j); (6+2j) (1-2j); (3+3j) (1)]
X =
1.0000 + 1.0000i
6.0000 + 2.0000i
3.0000 + 3.0000i
1.0000 - 5.0000i
1.0000 - 2.0000i
1.0000
>> X.'
ans =
1.0000 + 1.0000i
1.0000 - 5.0000i
6.0000 + 2.0000i
1.0000 - 2.0000i
3.0000 + 3.0000i
1.0000
Exerccio 10:
>> aux = [1 2 3;4 5 6;7 8 9]
aux =
1
4
7
2
5
8
3
6
9
4
32
256
8
64
512
Exerccio 11:
>>%CRIAO DA MATRIZ
>> A(1,1) = 2*1+1*i;
>> A(2,2) = 2*2+2*i;
>> A(3,3) = 2*3+3*i;
>> A(4,4) = 2*4+4*i;
>> A
131
A =
2.0000 + 1.0000i
0
0
0
0
4.0000 + 2.0000i
0
0
0
0
6.0000 + 3.0000i
0
0
0
0
8.0000 + 4.0000i
>>%MATRIZES B a H:
>> B = A.';
>> C = A+B;
>> D = inv(A);
>> E = A';
>> F = B.*E;
>> G = A^(3/2);
>> H = D.^3;
===========================================================
Captulo 4
===========================================================
Exerccio 1:
a.
b.
c.
d.
e.
f.
Linhas 1 a 5, Coluna 3
Linhas 1 a 5, Colunas 7 a 10
Linhas 1, 3 e 5
Linha 1, Colunas 2, 3 e 4
Matriz A
Linhas 4, 3 e 2
Exerccio 2:
>> v = 0:0.25:1;
>> MATRIZ = [sin(v);cos(v);sqrt(v)];
Exerccio 3:
a.
b.
c.
d.
e.
B
C
D
E
F
=
=
=
=
=
A(:,3)
A(3,:)
A(1,2:4)
A(1,2:end)
[A(3) A(10); A(5) A(12)]
Exerccio 4:
>> a = linspace(10,4,4)
a =
10
0.1000
0.1250
0.1667
0.2500
10.0000
8.0000
6.0000
4.0000
+
+
+
+
3.0000i
3.0000i
3.0000i
3.0000i
10.0000
8.0000
6.0000
4.0000
3.0000i
3.0000i
3.0000i
3.0000i
Exerccio 5:
>> vetor = linspace(10,4,4);
>>
>>
>>
>>
COL1
COL2
COL3
COL4
=
=
=
=
vetor';
(vetor+3*i)';
(vetor-pi*i).';
(sqrt(vetor.^-1))';
10.0000
8.0000
6.0000
4.0000
3.0000i
3.0000i
3.0000i
3.0000i
10.0000
8.0000
6.0000
4.0000
3.1416i
3.1416i
3.1416i
3.1416i
0.3162
0.3536
0.4082
0.5000
Exerccio 6:
a. A=[1:4;5:8;9:12;13:16];
B=[7.4 pi 0; -4.01 2 3; 0.1 10 0];
b. c=[A(1,1:3)];
c. d=(B(:,3))';
d. Na matriz A, primeiro vamos extrair a submatriz [2 3;6 7]:
AREA_A1 = A(1:2,2:3);
Extraindo a submatriz [4;8;12;16]:
AREA_A2 = A(:,4);
Devemos fazer uma concatenao por linha entre estas reas, mas
o nmero de linhas entre elas diferente.
Primeiro vamos fazer uma concatenao por coluna entre a rea A1
e uma matriz quadrada de dimenso 2 com zeros:
NEW_AREA_A1 = [AREA_A1;zeros(2)];
Agora podemos fazer a concatenao por linha:
AREA_A = [NEW_AREA_A1 AREA_A2]
Na matriz B, vamos extrair a primeira linha:
AREA_B = B(1,:)
e. A(1,:) = [B(2,:) 0]
133
f. TRANSPOSTA = [A(:,1)';A(:,3)'];
A(2:3,:) = TRANSPOSTA;
Exerccio 7:
>> m = [4 10 1 6 2; 8 12 4 5 7; 0 87 0 5 9; 1 32 1 0 1; 0 11 0 1 0];
a. M1 = [m(4:5,2:3) m(2:3,4:5)]
M1 =
32
11
1
0
5
5
7
9
b. M2 = [m(2:3,4:5);m(4:5,2:3)]
M2 =
5
5
32
11
7
9
1
0
c. M3 = [M1(1,:) M1(2,:)]
M3 =
32
11
Exerccio 8:
>> numeros = 20*rand(1,10);
>> numeros = sort(numeros,'ascend');
>> maior = numeros(10)
maior =
18.6802
>> menor = numeros(1)
menor =
0.2380
Exerccio 9:
>> numeros = 10*rand(1,6);
>>%VALOR MXIMO: max(numeros)
>> maximo = max(numeros);
>>%INDICE DO MAX:
>> pos_max = find(numeros==maximo);
>>%VALOR MINIMO: min(numeros)
>> minimo = min(numeros);
134
>>%INDICE DO MIN:
>> pos_min = find(numeros==minimo);
>>%IMPRESSO:
>> numeros
numeros =
4.3141
9.1065
1.8185
2.6380
1.4554
1.3607
>> [maximo;pos_max]
ans =
9.1065
2.0000
>> [minimo;pos_min]
ans =
1.3607
6.0000
Exerccio 10:
>> matriz = randn(5);
a.
b.
c.
d.
e.
f.
g.
h.
i.
j.
k.
l.
m.
sum(matriz)
sum(matriz')'
trace(matriz)
max(sum(matriz))
min(sum(matriz')')
sort(matriz')'
indice = find(matriz>0.5)
matriz'
rank(matriz)
det(matriz)
cond(matriz)
inv(matriz)
matriz = [matriz ones(5)]
matriz(:,8:10)=[]
matriz(:,1:2)=[]
Exerccio 11:
>>P1=[1 5];
>>P2=[4 9];
a. sqrt((1-4)^2+(5-9)^2);
b. sqrt(sum((P1-P2).^2));
c. norm(P1-P2);
135
Exerccio 12:
>>salario = [50 100 150];
>>freq = [30 60 10];
a. media = sum(salario.*freq)/sum(freq);
b. variancia = sum((salario-media).^2.*freq)/sum(freq);
c. desvio = sqrt(variancia);
Exerccio 13:
>> format rat
>> A = [17 24 1 8 15;33 5 7 14 16;4 6 13 20 22;10 12 19 21 3;11 18 25 2 9];
>> B = [175;190;245;190;175];
>> %A*X=B -> X=A\B ou X=inv(A)*B
>> tic, X=A\B, toc
>> tic, X=inv(A)*B, toc
>> X
X =
260/393
528/235
1171/393
841/208
1952/393
Exerccio 14:
>> format rat
>> A = [17 24 1 8 15;33 5 7 14 16;4 6 13 20 22;10 12 19 21 3;11 18 25 2 9];
>> B = [175;190;245;190;175];
>> CHEIA = [A B];
>> ESCALONADO = rref(CHEIA);
>> X = ESCALONADO(:,6)
X =
260/393
528/235
1171/393
841/208
1952/393
Exerccio 15:
>> format rat
>> [x1 x2 x3 x4 x5] =
solve('17*x1+24*x2+x3+8*x4+15*x5=175','33*x1+5*x2+7*x3+14*x4+16*x5=190
136
','4*x1+6*x2+13*x3+20*x4+22*x5=245','10*x1+12*x2+19*x3+21*x4+3*x5=190'
,'11*x1+18*x2+25*x3+2*x4+9*x5=175')
UMA OUTRA MANEIRA DE SE FAZER O EXERCCIO 15 UTILIZANDO STRINGS.
STRINGS O NOME QUE SE D QUANDO VETORES ARMAZENAM TEXTOS (ENTRE
ASPAS SIMPLES), ONDE CADA CARACTER DO TEXTO UM ELEMENTO DO VETOR.
OBSERVE:
>>
>>
>>
>>
>>
>>
exp1 =
exp2 =
exp3 =
exp4 =
exp5 =
[x1 x2
'17*x1+24*x2+x3+8*x4+15*x5=175';
'33*x1+5*x2+7*x3+14*x4+16*x5=190';
'4*x1+6*x2+13*x3+20*x4+22*x5=245';
'10*x1+12*x2+19*x3+21*x4+3*x5=190';
'11*x1+18*x2+25*x3+2*x4+9*x5=175';
x3 x4 x5] = solve(exp1,exp2,exp3,exp4,exp5)
===========================================================
Captulo 6
===========================================================
Exerccio 1:
n=input('Quantos elementos da
encontrados:
');
seq_fibonacci = zeros(n,1);
for ii=0:n-1
if(ii==0)
seq_fibonacci(ii+1,1)
elseif(ii==1)
seq_fibonacci(ii+1,1)
else
seq_fibonacci(ii+1,1)
1,1)+seq_fibonacci(ii,1);
end
end
disp(seq_fibonacci);
= 0;
= 1;
= seq_fibonacci(ii-
Exerccio 2:
% DEFINE O NMERO DE ALUNOS NO CURSO DE CLCULO
nalunos = input('Qual o nmero de alunos existentes no curso de
Clculo I:
');
naulas = 20; % NMERO DE AULAS TOTAIS DO CURSO
% DEFININDO AS VARIVEIS NECESSRIAS E ALOCANDO ESPAO PARA ELAS
matricula = zeros(nalunos,1);
nota1 = zeros(nalunos,1);
nota2= zeros(nalunos,1);
media= zeros(nalunos,1);
naulas_freq = zeros(nalunos,1);
freq = zeros(nalunos,1);
Situacao = zeros(nalunos,1);
% UTILIZADO PARA FORNECER OS DADOS DOS ALUNOS DO CURSO
137
for ii=1:nalunos
disp(sprintf('\n'));
matricula(ii,1) = input('Informe o nmero de matrcula do aluno:
') ;
nota1(ii,1) = input('Informe a primeira nota do aluno:
') ;
nota2(ii,1) = input('Informe a segunda nota do aluno:
') ;
% CALCULO DA MDIA
media(ii,1) = (nota1(ii,1)+nota2(ii,1))/2;
naulas_freq(ii,1) = input('Informe o nmero de aulas que o aluno
frequentou:
') ;
% CALCULO DA FREQUNCIA
freq(ii,1) = naulas_freq(ii,1)/naulas;
% VERIFICA A SITUAO DO ALUNO (1 PARA ALUNO APROVADO E 0 PARA ALUNO
REPROVADO)
if(media(ii,1)>=6 && freq(ii,1)>=0.75)
Situacao(ii,1) = 1;
end
end
% IMPRESSO DA SITUAO DE CADA ALUNO
for ii=1:nalunos
disp(sprintf('\n-------------------------------'));
disp(sprintf('Nmero de matricula:
%d', matricula(ii,1)));
disp(sprintf('Mdia:
%f', media(ii,1)));
disp(sprintf('Frequencia:
%f ', freq(ii,1)*100));
if(Situacao(ii,1)==1)
disp(sprintf('Situao: Aprovado '));
else
disp(sprintf('Situao:
Reprovado'));
end
disp(sprintf('-------------------------------'));
end
Exerccio 3:
H = input('Informe a altura(m):
');
Sexo = input('Informe o sexo da pessoa(1 para o sexo masculino e 2
para o sexo feminino): ');
peso = 0;
while peso==0
switch Sexo
case 1
peso = (72.7*H)-58;
case 2
peso = (62.1*H)-44.7;
otherwise
% CONDIO PARA CASO O USUARIO INFORME DE MANEIRA INCORRETA O
% SEXO DA PESSOA
fprintf('\n');
Sexo = input('Informe novamente o sexo da pessoa(1 para o
sexo masculino e 2 para o sexo feminino): ');
end
end
fprintf('\n-----------------------------------------------\n');
fprintf('O peso ideal para essa pessoa : %f Kg\n', peso);
fprintf('-----------------------------------------------\n');
Exerccio 4:
138
Exerccio 5:
% REALIZAO DO SORTEIO
n = 60;
sorteio0 = zeros(1,6);
sorteio1 = zeros(1,6);
% FOR UTILIZADO PARA FAZER O SORTEIO DE 6 NMEROS SEM QUE HAJA
REPETIO
for ii=1:6
sorteio1(1,ii) = ceil(n*rand(1,1));
teste = (sorteio0==sorteio1(1,ii));
while (find(teste==1))
%
sorteio1
sorteio1(1,ii) = ceil(n*rand(1,1));
%
sorteio1
teste = (sorteio0==sorteio1(1,ii));
end
sorteio0(1,ii) = sorteio1(1,ii);
%
sorteio0
end
save resultadosorteio0
Exerccio 6:
% CARREGA O JOGO FEITO PELO USURIO E O RESULTADO DA LOTERIA
139
load JOGO.mat
load resultado.mat
% PROCESSO DE COMPARAO PARA DESCOBRIR QUANTOS ACERTOS FOI OBTIDO
jj=1;
acertos=[];
for ii=1:6
comparar = JOGO0(1,ii)==sorteio0;
if (find(comparar==1))
acertos(1,jj) = find(comparar==1);
jj=jj+1;
end
end
ganhador = length(acertos);
disp(sprintf('\n-----------------------------\n'))
disp(sprintf('O jogador acertou %d nmeros',ganhador))
disp(sprintf('\n-----------------------------\n'))
Exerccio 7:
%% DEFININDO OS JOGOS DOS N APOSTADORES
napostadores = input('Quantos apostas foram feitas:
JOGOS1 = zeros(napostadores,6);
grafico = zeros(1,napostadores);
JOGO = zeros(1,6);
n=60;
for jj=1:napostadores
JOGO = zeros(1,6);
for ii=1:6
JOGO(1,ii) = ceil(n*rand(1,1));
teste = (JOGOS1(jj,:)==JOGO(1,ii));
while (find(teste==1))
JOGO(1,ii) = ceil(n*rand(1,1));
teste = (JOGOS1(jj,:)==JOGO(1,ii));
end
JOGOS1(jj,ii) = JOGO(1,ii);
end
end
%% SORTEIO
sorteio0 = zeros(1,6);
sorteio1 = zeros(1,6);
for ii=1:6
sorteio1(1,ii) = ceil(n*rand(1,1));
teste = (sorteio0==sorteio1(1,ii));
while (find(teste==1))
sorteio1(1,ii) = ceil(n*rand(1,1));
teste = (sorteio0==sorteio1(1,ii));
end
sorteio0(1,ii) = sorteio1(1,ii);
end
%% CONFERENCIA
for jj=1:napostadores
kk=1;
acertos=[];
for ii=1:6
comparar = JOGOS1(jj,ii)==sorteio0;
\n');
140
if (find(comparar==1))
acertos = find(comparar==1);
kk=kk+1;
end
end
ganhador = length(acertos);
grafico(1,jj) = ganhador;
end
cont = zeros(7,1); % UTILIZADO PARA CONTAR O NMERO DE ACERTADORES EM
CADA FAIXA
for jj=1:napostadores
cont(grafico(1,jj)+1,1) = cont(grafico(1,jj)+1,1)+1;
end
format short
% PORCENTAGEM DE ACERTADORES EM CADA FAIXA
cont1 = cont/napostadores*100
Exerccio 8:
sequencia = [1 2 3 10 3 4 0 2 9 8 10];
[aux,num_ele] = size(sequencia);
desloc = 1;
for i = 1:num_ele
if i == 1
if sequencia(i) > sequencia(i+1)
Ele_des(desloc) = i;
desloc
= desloc + 1;
end
elseif i == num_ele
if sequencia(i) > sequencia(i-1)
Ele_des(desloc) = i;
desloc
= desloc + 1;
end
else
if sequencia(i) > (sequencia(i-1) + sequencia(i+1))
Ele_des(desloc) = i;
desloc
= desloc + 1;
end
end
end
[aux,num] = size(Ele_des);
disp(sprintf('O numero de elementos que atendem restriao sao:
%d',num))
disp('A posiao dos elementos sao:')
disp(Ele_des)
141
Exerccio 9:
x=inf;
while x >00
x = input('Fornea o valor: ');
format long
x = sqrt(x)
end
===========================================================
Captulo 7
===========================================================
Exerccio 1:
Letra A
x=[-20:0.01:20];
y=x.^3-5*x+2;
plot(x,y)
Letra B
x=[-2*pi:0.01:pi];
y=sin(x).*cos(x);
plot(x,y)
Letra C
x=[0:0.01:20];
y=cos(exp(x.^0.2));
plot(x,y)
Exerccio 2:
Letra A
x=[-20:0.01:20];
y=x.^3-5*x+2;
semilogx(x,y)
title('Grfico 1')
grid
xlabel('Varivel X')
ylabel('Varivel Y')
Letra B
x=[-2*pi:0.01:pi];
y=sin(x).*cos(x);
142
loglog(x,y)
title('Grfico 2')
grid
xlabel('Varivel X')
ylabel('Varivel Y')
Letra C
x=[0:0.01:20];
y=cos(exp(x.^0.2));
semilogy(x,y)
title('Grfico 3')
grid
xlabel('Varivel X')
ylabel('Varivel Y')
Exerccio 3:
x=linspace(-5,5,50);
y=4*x.^3-4*x.^2+15;
stem(x,y)
Exerccio 4:
t=0:0.01:2*pi;
Ia=2*sin(pi*t);
Ib=2*sin(pi*t-(2*pi)/3);
Ic=2*sin(pi*t+(2*pi)/3);
plot(t,Ia,'r','LineWidth',2)
hold on
plot(t,Ib,'b')
plot(t,Ic,'y')
grid
Exerccio 5:
Letra A
x=-pi:pi/20:pi
subplot(1,2,1)
y1=sin(x)
plot(x,y1)
grid
title('Diagrama 1');
subplot(1,2,2)
y2=cos(x)
plot(x,y2)
grid
title('Dagrama 2');
143
Letra B
x=-pi:pi/20:pi
subplot(2,1,1)
y1=sin(x)
plot(x,y1)
grid
title('Diagrama 1');
subplot(2,1,2)
y2=cos(x)
plot(x,y2)
grid
title('Dagrama 2');
Exerccio 6:
u=[16 47 34 30 35 5 14 30];
numero={'16''47''34''30''35''5''14''30'};
explode=[1 1 1 1 1 1 1 1];
pie3(u,explode,numero)
legend('Valvula SF6','Fusvel 300A','Fusvel 500A','Isolador
33kV','Isolador 415V','Disjuntor 25kV','Disjuntor 220V','Lmpada
mercrio',-1)
Exerccio 7:
Letra A
x = [-5:0.01:5];
y = [-5:0.01:5];
[X Y]=meshgrid(x,y);
Z=X.^2+Y.^2+exp(X);
mesh(X,Y,Z)
Letra B
x = [-0.5:0.01:0.5];
y = [-0.5:0.01:0.5];
[X Y]=meshgrid(x,y);
Z=sqrt(1-X.^2-Y.^2);
mesh(X,Y,Z)
Letra C
x = [0:0.01:1];
y = [0:0.01:1];
[X Y]=meshgrid(x,y);
Z=X*Y;
mesh(X,Y,Z)
Letra D
[X Y]=meshgrid(-8:0.1:8,-8:0.1:8);
Z=atan(X.^2+Y.^2);
144
mesh(X,Y,Z)
Letra E
[X Y]=meshgrid(-pi:0.1:pi,-pi:0.1:pi);
Z=sin(X)+cos(Y);
mesh(X,Y,Z)
Exerccio 8 (Desafio):
t=0:0.01:2*pi;
x=cos(t);
y=sin(t);
plot(x,y,'r')
title('circunferncia trigonomtrica')
xlabel('eixo dos cossenos')
ylabel('eixo dos senos')
hold on
plot([-1 1],[0 0])
plot([0 0],[-1 1])
145
LISTA DE FIGURAS
Figura 1.1 -Janela inicial MATLAB. ............................................................................................. 8
Figura 1.2 -Menu principal MATLAB. ........................................................................................ 8
Figura 1.3 - Menu Workspace, MATLAB. .................................................................................. 9
Figura 1.4 - Exemplo de Visualizao de uma matriz pelo Editor. ................................... 9
Figura 2.1 - Help pelo Function Browser. .................................................................................14
Figura 2.2 - Help Browser...............................................................................................................15
Figura 2.3 - Trecho da Lista de Tpicos de Help....................................................................15
Figura 2.4 - Trecho da Lista de Funes da Biblioteca elfun.............................................16
Figura 2.5 - Informaes Disponibilizadas na Janela para aos.......................................16
Figura 2.6 - Funes de Transformao de Coordenadas ..................................................19
Figura 2.7 - Instrues de uso da funo cart2pol. ...............................................................19
Figura 2.8 -Janela de Variveis. ....................................................................................................21
Figura 2.9 - Comando save. ............................................................................................................23
Figura 5.1 - Menu superior janela Edit. .....................................................................................67
Figura 5.2 -Mensagem de pasta padro do MATLAB. .......................................................68
Figura 7.1 - cone Plot Tools. ....................................................................................................... 113
Figura 7.2 - Barra menus.............................................................................................................. 113
Figura 7.3 - Property EditorFigure. ........................................................................................... 114
Figura 7.4 - Property Editor Axes............................................................................................... 115
Figura 7.5 - Comando Insert........................................................................................................ 115
Figura 0.1 - Format ......................................................................................................................... 122
146
LISTA DE GRFICOS
Grfico 7.1- Comando plot (1).......................................................................................................85
Grfico 7.2 - Comando plot (2). ....................................................................................................86
Grfico 7.3 - Comando plot (3). ....................................................................................................87
Grfico 7.4 - Comando plot (4). ...................................................................................................88
Grfico 7.5 - Comandosplotehold on. ..........................................................................................89
Grfico 7.6 - Comando figure. ........................................................................................................90
Grfico 7.7 - Comando subplot. .....................................................................................................91
Grfico 7.8 Comando fplot. ...........................................................................................................92
Grfico 7.9 - Comando loglog.........................................................................................................93
Grfico 7.10 - Comando plot curva logartmica. .....................................................................94
Grfico 7.11 - Comando semilogx. ................................................................................................94
Grfico 7.12 -Comando plot curva exponencial. .....................................................................95
Grfico 7.13 -Comando semilogy. .................................................................................................96
Grfico 7.14 -Comando polar.........................................................................................................96
Grfico 7.15 -Comando compass. .................................................................................................97
Grfico 7.16 Comando bar...........................................................................................................98
Grfico 7.17 Comando barh. .......................................................................................................98
Grfico 7.18 -Comando hist. ...........................................................................................................99
Grfico 7.19 - Comando pie. ........................................................................................................ 100
Grfico 7.20 Comando pie com legendas. ........................................................................... 101
Grfico 7.21 Comando pie expandido. .................................................................................. 101
Grfico 7.22 Comando stem. .................................................................................................... 102
Grfico 7.23 Comando stairs. .................................................................................................. 102
Grfico 7.24 -Vendas anuais. ...................................................................................................... 104
Grfico 7.25 -Senides com marcadores e cores diferenciadas. ................................... 106
Grfico 7.26 - Senides com legendas na posio 0. ...................................................... 107
Grfico 7.27 - Senides de diferentes tamanhos de marcadores. ................................ 108
Grfico 7.28 - Comando plot3. .................................................................................................... 110
Grfico 7.29 -Comando mesh. ..................................................................................................... 111
Grfico 7.30 - Comando mesh com seno. ............................................................................... 111
Grfico 7.31 Comandobar3 e bar3hrespectivamente. .................................................... 112
Grfico 7.32 -Comandopie3. ........................................................................................................ 113
147
LISTA DE TABELAS
Tabela 2.1 - Operadores Aritmticos. ........................................................................................11
Tabela 2.2 - Constantes Matemticas. ........................................................................................12
Tabela 2.3 - Funes Trigonomtricas. .....................................................................................13
Tabela 2.4 - Funes Exponenciais. ............................................................................................13
Tabela 2.5 - Funes Complexas. .................................................................................................18
Tabela 2.6 -Comandos de Consulta e Manipulao...............................................................22
Tabela 2.7 - Outros Comandos. .....................................................................................................24
Tabela 4.1 - Funes de Operao Aritmtica. .......................................................................47
Tabela 4.2 - Outras Funes Matemticas................................................................................47
Tabela 4.3 - Funes Geradoras de Matrizes. .........................................................................53
Tabela 4.4 - Funes de Consulta. ...............................................................................................54
Tabela 4.5 - Funes de Manipulao. .......................................................................................56
Tabela 4.6 - Funes Diversas.......................................................................................................57
Tabela 4.7 - Funes de lgebra. .................................................................................................59
Tabela 5.1 Principais atalhos. .....................................................................................................69
Tabela 6.1 - Operadores Relacionais. .........................................................................................71
Tabela 6.2 - Operadores Lgicos. .................................................................................................72
Tabela 6.3 - Comandos Bsicos. ...................................................................................................81
Tabela 7.1 - Comandos de grficos 2D. ......................................................................................85
Tabela 7.2 -Cor, linhas e marcadores. ..................................................................................... 105
Tabela 7.3 - Valores comando legend. ..................................................................................... 107
Tabela 7.4 - Comandos grficos tridimensionais................................................................ 109
Tabela 7.5 Principais cones. .................................................................................................... 114
148