Baixe Aprenda a usar MATLAB: matrizes, funções e arquivos e outras Notas de estudo em PDF para Engenharia Mecânica, somente na Docsity!
Universidade Federal de Mato Grosso do Sul
Departamento de Engenharia Elétrica
Curso de MATLAB
Grupo PET - Engenharia Elétrica
SUMÁRIO
- APRESENTAÇÃO Pg. 4
- O que é o MATLAB?
- Carregando o MATLAB
- Editor de Linhas de Comando
- 1 INTRODUÇÃO Pg. 6
- 1.1 Entrando com Matrizes Simples
- 1.2 Elementos das Matrizes
- 1.3 Declarações e Variáveis
- 1.4 Obtendo Informações da Área de Trabalho
- (^) 1.5 Números e Expressões Aritméticas
- 1.6 Números e Matrizes Complexas
- 1.7 Formato de Saída
- 1.8 As Facilidades do HELP (Ajuda)
- 1.9 Funções
- 2 OPERAÇÕES COM MATRIZES
Pg. 16
- 2.1 Transposta
- 2.2 Adição e Subtração
- (^) 2.3 Multiplicação
- 2.4 Divisão
- 2.5 Exponenciação
- 3 OPERAÇÕES COM CONJUNTOS
Pg. 20
- 3.1 Adição e Subtração
- 3.2 Multiplicação e Divisão
- 3.3 Exponenciação
- 3.4 Operações Comparativas
- 4 MANIPULAÇÃO DE VETORES E MATRIZES Pg. 23
- (^) 4.1 Gerando Vetores
- 4.2 Elementos das Matrizes
- 5 FUNÇÕES
Pg 27
- 5.1 Integração Numérica
- 5.2 Equações Não-Lineares e Otimização
- 5.3 Equações Diferenciais
- 6 GRÁFICOS Pg. 32
- 6.1 Gráficos Bidimensionais
- 6.2 Estilos de Linha e Símbolo
- (^) 6.3 Números Complexos
- 6.4 Escala Logarítmica, Coordenada Polar e Gráfico de Barras
- 6.5 Plotando Gráficos Tridimensionais e Contornos
- 6.6 Anotações no Gráfico
- 7 CONTROLE DE FLUXO
Pg. 41
- 7.1 Laço for
- 7.2 Laço while
APRESENTAÇÃO
O que é o MATLAB?
MATLAB é um "software" interativo de alta performance voltado para o cálculo numérico.
O MATLAB integra análise numérica, cálculo com matrizes, processamento de sinais e
construção de gráficos em ambiente fácil de usar onde problemas e soluções são expressos
somente como eles são escritos matematicamente, ao contrário da programação tradicional.
O MATLAB é um sistema interativo cujo elemento básico de informação é uma matriz que
não requer dimensionamento. Esse sistema permite a resolução de muitos problemas
numéricos em apenas uma fração do tempo que se gastaria para escrever um programa
semelhante em linguagem Fortran, Basic ou C. Além disso, as soluções dos problemas são
expressas no MATLAB quase exatamente como elas são escritas matematicamente.
Carregando o MATLAB
No Gerenciador de Programas do Microsoft Windows deve-se abrir o grupo de programas
do MATLAB for Windows, que contém o ícone do aplicativo MATLAB. Um duplo clique
no ícone MATLAB carrega o aplicativo MATLAB.
Quando o MATLAB é carregado, duas janelas são exibidas: a Janela de Comando
(Command Windows) e Janela Gráfica (Graphic Windows). A Janela de Comando é ativada
quando se inicializa o MATLAB, e o "prompt" padrão (>>) é exibido na tela.
A partir desse ponto, o MATLAB espera as instruções do usuário. Para entrar com uma
matriz pequena, por exemplo usa-se
>> A = [1 2 3; 4 5 6; 7 8 9]
colocando colchetes em volta dos dados e separando as linhas por ponto e vírgula.. Quando
se pressiona a tecla o MATLAB responde com
A =
Para inverter esta matriz usa-se
B = inv(A)
e o MATLAB responde com o resultado.
Editor de Linhas de Comando
As teclas com setas podem ser usadas para se encontrar comandos dados anteriormente,
para execução novamente ou sua reedição. Por exemplo, suponha que você entre com
log (sqt(tan(pi/5)))
Como para calcular a raiz quadrada o comando certo é sqrt , o MATLAB responde com uma
mensagem de erro:
??? Undefined funcion or variable sqt.
Ao invés de reescrever a linha inteira, simplesmente pressione a tecla "seta para cima". O
comando errado retorna, e você pode, então, mover o cursor para trás usando a tecla "seta
para esquerda" ou o ponto de inserção com o "mouse" ao lugar apropriado para inserir a
letra " r ". Então, o comando retorna a resposta apropriada:
log (sqrt(tan(pi/5)))
ans = -0.
Além das teclas com setas, pode-se usar outras teclas para reeditar a linha de comando. A
seguir é dada uma breve descrição destas teclas:
retorna a linha anterior
retorna a linha posterior
move um espaço para a esquerda
move um espaço para a direita
Ctrl move uma palavra para a esquerda
Ctrl move uma palavra para a direita
Home move para o começo da linha
End move para o final da linha
Del apaga um caracter a direita
Backspace apaga um caracter a esquerda
1 INTRODUÇÃO
O MATLAB trabalha essencialmente com um tipo de objeto, uma matriz numérica
retangular podendo conter elementos complexos (deve-se lembrar que um escalar é uma
matriz de dimensão l x l e que um vetor é uma matriz que possui somente uma linha ou
uma coluna).
1.1 Entrando com Matrizes Simples
As matrizes podem ser introduzidas no MATLAB por diferentes caminhos:
- digitadas na Janela de Comando (lista explícita de elementos),
- geradas por comandos e funções,
- criadas em arquivos ".m",
- carregadas a partir de um arquivo de dados externo.
O método mais fácil de entrar com pequenas matrizes no MATLAB é usando uma lista
explícita. Os elementos de cada linha da matriz são separados por espaços em branco ou
vírgulas e as colunas separadas por ponto e vírgula, colocando-se colchetes em volta do
grupo de elementos que formam a matriz. Por exemplo, entre com a expressão
>> A=[ 1 2 3;4 S 6;7 8 9 ]
Pressionando o MATLAB mostra o resultado
A =
Note que o vetor r não foi listado porque ao seu final foi acrescentado ";".
Pequenas, matrizes podem ser extraídas de grandes matrizes usando ";". Por exemplo,
>> A = A(1:3,:);
seleciona as três primeiras linhas e todas as colunas da matriz A atual, modificando-a para
sua forma original.
1.3 Declarações e Variáveis
O MATLAB é uma linguagem de expressões. As expressões usadas são interpretadas e
avaliadas pelo sistema. As declarações no MATLAB são freqüentemente da forma
variável = expressão
ou simplesmente
expressão
As expressões são compostas de operadores e outros caracteres especiais, de funções e dos
nomes das variáveis. A avaliação das expressões produzem matrizes, que são então
mostradas na tela e atribuídas às variáveis para uso futuro. Se o nome da variável e o sinal
de igualdade " = " são omitidos, a variável com o nome ans , que representa a palavra
"answer" (resposta), é automaticamente criada. Por exemplo, digite a expressão
que produz
ans=
Se o último caractere da declaração é um ponto e vírgula, ";", a impressão na tela é
suprimida, mas a tarefa é realizada. Esse procedimento é usado em arquivos com extensão
".m" e em situações onde o resultado é uma matriz de grandes dimensões e temos interesse
em apenas alguns dos seus elementos.
Se a expressão é tão grande que não cabe em apenas uma linha, pode-se continuar a
expressão na próxima linha usando um espaço em branco e três pontos,"...", ao final das
linhas incompletas. Por exemplo,
s = l - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/ ...
- 1/8 + 1/9 - l/10 + 1/11 - 1/12 + 1/13;
calcula o resultado da série, atribuindo a somatória à variável s , mas não imprime o
resultado na tela. Note que os espaços em branco entre os sinais "=", "+" e "-" são
opcionais, mas o espaço em branco entre "1/7" e "..." é obrigatório.
As variáveis e funções podem ser formadas por um conjunto de letras, ou por um conjunto
de letras e números, onde somente os primeiros 19 caracteres do conjunto são identificados.
O MATLAB faz distinção entre letras maiúsculas e minúsculas, assim a e A não são as
mesmas variáveis. Todas as funções devem ser escritas em letras minúsculas: inv(A)
calcula a inversa de A , mas INV(A) é uma função indefinida.
1.4 Obtendo Informações da Área de Trabalho
Os exemplos de declarações mostrados nos itens acima criaram variáveis que são
armazenadas na Área de Trabalho do MATLAB. Executando
who
obtêm-se uma lista das variáveis armazenadas na Área de Trabalho:
Your variables are: A ans r s x
Que mostra as cinco variáveis geradas em nossos exemplos, incluindo ans.
Uma informação mais detalhada mostrando a dimensão de cada uma das variáveis
correntes é obtido com whos que para nosso exemplo produz:
Name Size Efements Bytes Density Complex A 3 by 3 9 72 Full No ans 1 by 1 1 8 Full No r 1 by 3 3 24 Full No s 1 by 1 1 8 Full No x 1 by 6 6 48 Full No Grand total is 20 elements using 160 bytes
Cada elemento de uma matriz real requer 8 bytes de memória, assim nossa matriz A de
dimensão 3x3 usa 72 bytes e todas variáveis utilizadas um total de 160 bytes.
1.5 Números e Expressões Aritméticas
A notação decimal convencional, com ponto decimal opcional e o sinal de menos, é usada
para números. A potência de dez pode ser incluída como um sufixo. A seguir são mostrados
alguns exemplos de números aceitos:
9.637458638 1.602E-20 6.06375e
As expressões podem ser construídas usando os operadores aritméticos usuais e as regras
de precedência:
1 ^ exponenciação
2 / divisão a direita
2 \ divisão a esquerda
3 * multiplicação
4 + adição
4 - subtração
Deve-se notar que existem dois símbolos para divisão: as expressões 1/4 e 4\1 possuem o
mesmo valor numérico, isto é, 0,25. Parênteses são usados em sua forma padrão para
alterar o mesmo a precedência usual dos operadores aritméticos.
1.6 Números e Matrizes Complexas
Números complexos são permitidos em todas operações e funções no MATLAB. Os
números complexos são introduzidos usando-se as funções especiais i e j. Por exemplo
z= 3 + 4*i
ou
format bank 1.33 0.
format + ++
Com o formato short e long , se o maior elemento da matriz é maior que 1000 ou menor
que 0.001, um fator de escala comum é aplicado para que a matriz completa seja mostrada.
Por exemplo,
x = 1.e20*x
resultado da multiplicação será mostrado na tela.
X = l.0e+20 * 1.3333 0.
O formato + é uma maneira compacta de mostrar matrizes de grandes dimensões. Os
símbolos "+", "-", e "espaço em branco" são mostrados, respectivamente para elementos
positivos, elementos negativos e zeros.
1.8 As Facilidades do HELP (Ajuda)
O MATLAB possui um comando de ajuda (help) que fornece informações sobre a maior
parte dos tópicos. Digitando
help
obtêm-se uma lista desses tópicos disponíveis:
HELP topics:
c:\matlab -Establish MATLAB session parameters. matlab\general -General purpose commands. matlab\ops -Operators and special characters. matlab\lang -Language constructs and debugging. matlab\elmat -Elementary matrices and matrix manipulation. matlab\specmat -Specialized matrices. matlab\elfun -Elementary math functions. matlab\specfun -Specialized math functions. matlab\matfun -Matrix functions - numerical linear algebra. matlab\datafun -Data analysis and Fourier transform functions. matlab\polyfun -Polynomial and interpolation functions. matlab\funfun -Function functions: nonlinear numerical methods. matlab\sparfun -Sparse matrix functions. matlab\plotxy -Two dimensional graphics. matlab\piotxyz -Three dimensional graphics. matlab\graphics -General purpose graphics functions. matlab\color -Color control and lighting model functions. matlab\sounds -Sound processing functions. matlab\strfun -Character string functions. matlab\iofun -Low-level file I/0 functions. matlab\demos -Demonstrations and samples. simulink\simulink -SIMULINK model analysis. simulink\blocks -SIMULINK block library. simulink\simdemos -SIMULINK demonstrations and samples.
nnet\exampies - Neural Network Toolbox examples. nnet\nnet - Neural Network Toolbox.
For more help on directory/topic, type 'help topic".
Para obter informações sobre um tópico específico, digite help tópico. Por exemplo,
help plotxy
que fornece uma lista de todos os comandos relacionados com gráficos bidimensionais:
Two dimensional graphics.
Elementary X-Y graphs plot - Linear plot. loglog - Log-log scafe plot. semilogx - Semi-log scale plot. semilogy - Semi-log scale plot. fill - Draw filled 2-D polygons.
Specialized X-Y graphs. polar - Polar coordinate plot. bar - Bar graph. stem - Discrete sequence or & "stemm" plot. stairs - Stairstep plot. errorbar - Error bar plot. hist - Histogram plot. rose - Angle histogram plot. compass - Compass plot. feather - Feather plot. fplot - Plot function comet - Comet-like trajectory.
Graph annotation. title - Graph title. xlabel - X-axis label. ylabel - Y-axis label. text - Text annotation. gtext - Mouse placement of text. grid - Grid lines.
See also PLOTXYZ, GRAPHICS
Finalmente, para obter informações sobre um comando específico, por exemplo title ,
digite:
help title
e informações mais detalhadas sobre este comando serão exibidas:
TITLE Titles for 2-D and 3-D plots.
>> A = [1 2 3; 4 5 6; 7 8 0]
>> B = A'
que resulta em
A = 1 2 3
B = 1 4 7
e
x = [-1 O 2]'
produz
x =
Se Z é uma matriz complexa, Z’ será o conjugado complexo composto. Para obter
simplesmente a transposta de Z deve-se usar Z.’ , como mostra o exemplo
Z = [1 2; 3 4] + [5 6; 7 8]*i Z1 = Z’ Z2 = Z.’
que resulta em
Z =
1.0000 + 5.0000i 2.0000 + 6.0000i 6.0000 + 7.0000i 4.0000 + 8.0000i
Z1 =
1.0000 - 5.0000i 3.0000 - 7.0000i 2.0000 - 6.0000i 4.0000 - 8.0000i
Z2 = 1.0000 + 5.0000i 3.0000 + 7.0000i 2.0000 + 6.0000i 4.0000 + 8.0000i
2.2 Adição e Subtração
A adição e subtração de matrizes são indicadas, respectivamente, por "+" e "-". As
operações são definidas somente se as matrizes as mesmas dimensões. Por exemplo, a
soma com as matrizes mostradas acima, A + x , não é correta porque A é 3x3 e x é 3x1.
Porém,
>> C = A + B
é aceitável, e o resultado da soma é
C =
A adição e subtração também são definidas se um dos operadores é um escalar, ou seja,
uma matriz l x l. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do
outro operador. Por exemplo:
y = x - 1
resulta em
y =
1
2.3 Multiplicação
A multiplicação de matrizes é indicada por "". A multiplicação xy é definida somente se
a segunda dimensão de x for igual à primeira dimensão de y. A multiplicação
x'* y
é aceitável, e resulta em
ans = 4
É evidente que o resultado da multiplicação y'*x será o mesmo. Existem dois outros
produtos que são transpostos um do outro.
x*y’
ans = 2 l -l 0 0 0 -4 -2 2
y*x’
ans = 2 0 - 1 0 - -1 0 2
O produto de uma matriz por um vetor é um caso especial do produto entre matrizes. Por
exemplo A e X,
b = A'x
que resulta em
b =
O termo operações com conjuntos é usado quando as operações aritméticas são realizadas
entre os elementos que ocupam as mesmas posições em cada matriz (elemento por
elemento). As operações com conjuntos são feitas como as operações usuais, utilizando-se
dos mesmos caracteres (" * ", " / ", " \ ", "^" e " ‘ ") precedidos por um ponto ". " (" .* ", " ./ ", " .\ ",
". ^ " e " .‘ ").
3.1 Adição e Subtração
Para a adição e a subtração, a operação com conjuntos e as operações com matrizes são as
mesmas. Deste modo os caracteres "+" e "-" podem ser utilizados tanto para operações com
matrizes como para operações com conjuntos.
3.2 Multiplicação e Divisão
A multiplicação de conjuntos é indicada por " .* ". Se A e B são matrizes com as mesmas
dimensões, então A.*B indica um conjunto cujos elementos são simplesmente o produto
dos elementos individuais de A e B. Por exemplo, se
x = [1 2 3]; y = [4 5 6];
então,
z = x .* y
resulta em
z= 4 10 18
As expressões A./B e A.\B formam um conjunto cujos elementos são simplesmente os
quocientes dos elementos individuais de A e B. Assim,
z = x .\ y
resulta em
z = 4.0000 2.5000 2.
3.3 Exponenciação
A exponenciação de conjuntos é indicada por ". ^". A seguir são mostrados alguns exemplos
usando os vetores x e y. A expressão
z = x .^ y
resulta em
z = l 32 729
A exponenciação pode usar um escalar.
z = x..^
z =
l 4 9
Ou, a base pode ser um escalar.
z = 2.^[x y]
z = 2 4 8 16 32 64
3.4 Operações Comparativas
Estes são os seis operadores usados para comparação de duas matrizes com as mesmas
dimensões:
< menor
<= menor ou igual
> maior
>= maior ou igual
== igual
~= diferente
A comparação é feita entre os pares de elementos correspondentes e o resultado é uma
matriz composta dos números um e zero, com um representando VERDADEIRO e zero,
FALSO. Por exemplo ,
ans = 0
Pode-se usar, também os operadores lógicos & (e) e I (ou). Por exemplo,
ans = 0
1 = = 1 | 4 = = 3
ans = 1
a declaração
A(3,3) = A(1,3) + A(3,l)
resulta em
A =
Um subscrito pode ser um vetor. Se X e V são vetores, então X(V) é [X(V(1)), X(V(2)), ....
X(V(n))]. Para as matrizes, os subscritos vetores permitem o acesso à submatrizes
contínuas e descontínuas. Por exemplo, suponha que A é uma matriz 10x10.
A =
então
>> A(1:5,3)
ans = 11 17 88 19 25
especifica uma submatriz 5x1, ou vetor coluna, que consiste dos cinco primeiros elementos
da terceira coluna da matriz A. Analogamente,
>> A(1:5,7:10)
ans = 74 51 58 40 55 57 64 41 56 63 70 47 62 69 71 28
é uma submatriz 5x4, consiste das primeiras cinco linhas e as últimas quatro colunas.
Utilizando os dois pontos no lugar de um subscrito denota-se todos elementos da linha ou
coluna. Por exemplo,
>> A(1:2:5,:)
ans = 92 99 11 18 15 67 74 51 58 40 14 81 88 2 22 54 56 63 70 47 86 93 25 12 19 61 68 75 52 34
é uma submatriz 3x10 que consiste da primeira, terceira e quinta linhas e todas colunas da
matriz A.
Muitos efeitos sofisticados são obtidos usando submatrizes em ambos os lados das
declarações. Por exemplo, sendo B uma matriz 10x10 unitária,
B = ones (10)
B = 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
a declaração,
B(1:2:7,6:l0) = A(S:-1:2,1:5)
produz