



































Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Parte Introdutória do MatLab. basicão.
Tipologia: Notas de estudo
1 / 43
Esta página não é visível na pré-visualização
Não perca as partes importantes!




































Edição Abril 2002
1. - APRESENTAÇÃO
Em variados meios industriais e académicos utiliza-se o MATLAB por constituir um software interactivo de alta performance direccionado para o cálculo numérico. O MATLAB permite a realização de aplicações ao nível da análise numérica, de análise de dados, cálculo matricial, processamento de sinais e construção de gráficos, entre outras, abordando um banda larga de problemas científicos e de engenharia.
Ao possuir um ambiente de trabalho na óptica do utilizador, prima pela facilidade de utilização, além de possuir uma estrutura em que os problemas e soluções são expressos somente como são escritos matematicamente, ao contrário da programação tradicional. O MATLAB é um sistema interactivo cujo elemento básico de informação é uma matriz que não requer dimensionamento. Este sistema permite a resolução de problemas numéricos em apenas uma fracção do tempo que se gastaria para escrever um programa semelhante numa linguagem de programação clássica.
Introduzir comandos básicos do MATLAB para permitir um rápido acesso às potencialidades do ambiente. O utilizador iniciante poderá dispor de uma referência rápida para algumas possibilidades de uso do MATLAB.
O documento como está, não tenciona cobrir todos os tópicos do MATLAB, porque o ambiente, devido à sua arquitectura formada por caixas de ferramentas (toolboxes), possui manuais específicos para cada uma destas, tornando impraticável a tentativa de abranger todos os tópicos em um único documento referência.
Este trabalho baseia-se em documentos públicos disponíveis na Internet, nos manuais do MATLAB, no livro MATLAB – Student Edition e nas informações disponíveis na página da internet da companhia Mathworks.
Quando o MATLAB é inicializado, duas janelas são exibidas: a Janela de Comando (Command Windows) e Janela Gráfica (Graphic Windows). A Janela de Comando é activada quando se inicia o MATLAB, e o "prompt" padrão ( >> ) é exibido na tela. A partir deste ponto, o MATLAB espera as instruções do utilizador. Para introduzir uma pequena matriz, por exemplo utiliza-se :
>> A = [1 2 3; 4 5 6; 7 8 9]
Colocando parêntesis rectos em torno dos dados e separando as linhas por ponto e vírgula.. Quando se pressiona a tecla
A = 1 2 3 4 5 6 7 8 9
Para inverter esta matriz, utiliza-se :
>> B = inv(A)
As teclas com setas podem ser usadas para se encontrar comandos dados anteriormente, para execução novamente ou sua reedição. No caso de pretender efectuar o cálculo de :
log tan
π
Introduzir na tela:
>> log (sqt(tan(pi/5)))
Como para calcular a raiz quadrada o comando certo é sqrt , o MATLAB responde com uma mensagem de erro:
??? Undefined function or variable sqt.
O comando com a resposta apropriada seria:
>> log (sqrt(tan(pi/5))) ans = -0.
NOTA : Todas as funções que façam uso de um argumento em ângulo, são calculadas com o dito argumento expresso em radianos.
Exemplos de funções utilizadas para gerar matrizes: rand , magic , hilb.
rand(n) gera matriz quadrada de dimensões n x n , aleatória com distribuição uniforme, no intervalo [0,1].
>>x=rand(3)
rand(m,n) gera uma matriz aleatória de dimensões m x n.
>>x=rand(3,4)
magic(n) cria uma matriz quadrada integral de dimensões n x n (linhas e colunas têm a mesma soma).
>>x=magic(4)
NOTA : Em todos os exemplos, m e n são inteiros positivos. Para especificar um único elemento da matriz utilizam-se os índices referentes ao número de linha e número de coluna entre parêntesis da matriz onde se encontra o elemento : A(n,m). Outra forma de gerar matrizes é através de ciclos for.
Os elementos das matrizes podem ser qualquer expressão do MATLAB, por exemplo:
>> x = [-1.3 sqrt(2) ((1+2+3)*4/5)^2]
x = -1.3000 1.4142 23.
Um elemento individual da matriz pode ser referenciado com índice entre parêntesis. Continuando o exemplo,
>> x(6) = abs(x(1))
x = -1.3000 1.4142 23.0400 0 0 1.
Note-se que a dimensão do vector x é aumentada automaticamente de 1x3 para 1x6 de modo a acomodar o novo elemento e que os elementos indefinidos do intervalo são estabelecidos como zero. Matrizes de maior dimensão podem ser construídas a partir de pequenas matrizes. Por exemplo, pode-se anexar outra linha à matriz A usando:
_>> r= [ 10 11 12];
A= [A;r]_
A = 1 2 3 4 5 6 7 8 9 10 11 12
Note-se que o vector r não foi listado porque ao seu final foi acrescentado " ; ".
Podem ser extraídas matrizes pequenas da matriz original utilizando " ; ". Por exemplo,
>> A = A(1:3,:);
Selecciona as três primeiras linhas e todas as colunas da matriz A actual, modificando-a da sua forma original.
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 frequentemente 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, introduzindo a expressão:
>> 1900/
ans= 23.
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 ficheiros com extensão " .m " e em situações onde o resultado é uma matriz de grandes dimensões e há 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 = 1 - 1/2 + 1/3 - 1/4 + 1/5 - 1/6 + 1/7...
- 1/8 + 1/9 - 1/10 + 1/11 - 1/12 + 1/13;_
Calcula o resultado da série, atribuindo o somatório à 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.
NOTA : Para que o MATLAB não faça nenhuma distinção entre as letras minúsculas e maiúsculas utiliza-se a função casesen.
Os Números Complexos são permitidos em todas operações e funções no MATLAB. Os números complexos são introduzidos utilizando as funções especiais i ou j que correspondem a parte imaginária de um número complexo. Por exemplo:
>> z= 3 + 4*i
Ou,
>> z= 3 +4*j
Sabendo que um número complexo é constituído por uma parte real {Re} e por uma parte imaginária {Im}, tal que:
z = {Re} + {Im}*i
Pode ser expresso na forma:
>> z= r * exp(i*theta)
Em que :
_>> r = abs(z)
theta = angle(z)*180/pi_
As seguintes declarações mostram dois caminhos convenientes para se introduzir matrizes complexas no MATLAB:
>> A= [1 2; 3 4]+i*[5 6;7 8]
Ou,
>> A= [1+5i 2+6i; 3+7i 4+8i]
Produzem o mesmo resultado. Se i ou j forem usados como variáveis, de forma que tenham seus valores originais modificados, uma nova unidade complexa deverá ser criada e utilizada de maneira usual:
_>> ii = sqrt(-1);
z = 3 + 4*ii_
O formato numérico exibido na tela pode ser modificado utilizando o comando format , que afecta somente o modo como as matrizes são mostradas, e não como elas são calculadas ou guardadas (o MATLAB efectua todas as operações em dupla precisão). Se todos os elementos da matriz são inteiros exactos, a matriz é mostrada num formato sem qualquer ponto decimal. Por exemplo,
>> x = [-1 0 1]
x = -1 0 1
Se pelo menos um dos elementos da matriz não é inteiro exacto, existem várias possibilidades de formatar a saída. O formato por defeito, chamado de formato short , mostra aproximadamente 5 dígitos significativos ou usam notação científica. Por exemplo a expressão:
>> x = [4/3 1.2345e-6]
É mostrada para cada formato, da seguinte maneira:
format short 1.3333 0.
format short e 1.3333e+000 1.2345e-
format long 1.33333333333333 0.
format long e 1.333333333333333e+000 1.234500000000000e-
format hex 3ff5555555555555 3eb4b6231abfd format rat 4/3 1/
format bank 1.33 0.
format + ++
Com o formato short e long , se o maior elemento da matriz é superior a 1000 ou inferior a 0.001, é aplicado um factor de escala comum para que a matriz completa seja mostrada. Por exemplo,
>> X = 1e20*x
X = l.0e+20 * 1.3333 0.
O formato + é uma maneira compacta de apresentar matrizes de grandes dimensões. Os símbolos " + ", " - ", e " espaço em branco " são mostrados, respectivamente para representar elementos positivos, elementos negativos e zeros.
2.8. UTILIZAÇÃO DO HELP (Ajuda)
O MATLAB possui um comando de ajuda: help que fornece informações sobre a maior parte dos tópicos. Introduzindo:
>> help
Obtêm-se uma lista desses tópicos disponíveis Para obter informações sobre um tópico específico, referir help tópico. Por exemplo,
>> help plotxy
Fornece uma lista de todos os comandos relacionados com gráficos bidimensionais. Finalmente, para obter informações sobre um comando específico, por exemplo title , introduzir:
>> help title
E informações mais detalhadas sobre este comando serão exibidas:
3. - OPERADORES ARITMÉTICOS + - * / \ ^ ‘
O MATLAB possui dois tipos diferentes de operações aritméticas. As operações aritméticas matriciais são definidas pelas regras da Álgebra Linear. As operações aritméticas com arrays (conjuntos) são efectuadas elemento por elemento. O caractere de ponto decimal “. ” distingue as operações matriciais das operações com arrays. No entanto, como as operações matriciais e com arrays são iguais para a Soma e para a Subtracção, o par de caracteres “ .+ ” e “ .- “ não são usados.
As operações com matrizes no MATLAB são as seguintes:
A seguir cada uma destas operações é apresentada com maior detalhe.
3.1.1. Transposta
O caractere apóstrofo, " ' " , indica a transposta de uma matriz.
_>> A = [1 2 3; 4 5 6; 7 8 9]
B = A'_
A = 1 2 3 4 5 6 7 8 9
B = 1 4 7 2 5 8 3 6 9
E,
>> x = [-1 0 2]'
x =
- 0 2
Se Z é uma matriz complexa, Z’ será o complexo conjugado 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.’_
Z = 1.0000 + 5.0000i 2.0000 + 6.0000i 3.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
3.1.2. Adição e Subtracção A adição e subtracção de matrizes são indicadas, respectivamente, por " + " e " - ". As operações são definidas somente se as matrizes possuírem as mesmas dimensões. Por exemplo, a soma com as matrizes mostradas anteriormente, A + x , não é correcta porque A é 3x3 e x é 3x1. Porém,
>> C = A + B
É aceitável, e o resultado da soma será:
C = 2 6 10 6 10 14 10 14 18
A adição e subtracção também são definidas se um dos operadores for um escalar, ou seja, uma matriz 1x1. Neste caso, o escalar é adicionado ou subtraído de todos os elementos do outro operador. Por exemplo:
>> y = x - 1
y =
1_
3.1.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 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’
Na "divisão à esquerda", se A é quadrada, então é factorizada através da eliminação Gaussiana e estes factores são usados para resolver _Ax = b_*. Se A não for quadrada, é factorizada através da ortogonalização de Householder com pivoteamento por coluna e os factores são usados para resolver o sistema sub ou sobre determinado no sentido dos mínimos quadrados. A divisão à direita é definida em termos da divisão à esquerda por b/A = (A'\b').
3.1.5. Potenciação A expressão A^p eleva A à p -ésima potência e é definida se A é matriz quadrada e p um escalar. Se p é um inteiro maior do que um, a potenciação é calculada como múltiplas multiplicações. Por exemplo,
>> A^
ans = 279 360 306 684 873 684 738 900 441
Se P é uma matriz e a é um escalar, a^P calcula o escalar elevado à matriz P fazendo uso dos Valores e Vectores Próprios.
NOTA : X^P , sendo X e P matrizes, apresenta erro.
O termo operações com conjuntos é utilizado 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 efectuadas como as operações usuais, utilizando- se os mesmos caracteres (" ***** ", " / ", " * ", " ^ " e " ‘ ") precedidos por um ponto ".* " (" .* " , " ./ ", " *.* ", ". ^ " e " .‘ ").
3.2.1. Adição e Subtracção Para a adição e a subtracção, as operações com conjuntos e as operações com matrizes são iguais. Deste modo os caracteres " + " e " - " são empregues do mesmo modo e considerando as mesmas restrições de utilização.
3.2.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];
z = x .* y_
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
z = 4.0000 2.5000 2.
3.2.3. Potenciação A potenciação de conjuntos é indicada por " .^ ". A seguir são mostrados alguns exemplos utilizando os vectores x e y. A expressão:
>> z = x .^ y
z = 1 32 729
A potenciação pode usar um escalar.
>> z = x.^
z = 1 4 9
Ou, a base pode ser um escalar.
>> z = 2.^[x y]
z = 2 4 8 16 32 64
5. - OPERADORES LÓGICOS & | ~ xor
Os símbolos “ &” , “ | “ , e “ ~” correspondem respectivamente aos operadores lógicos AND , OR e NOT. Permitem efectuar operações lógicas entre matrizes com a mesma dimensão compostas por elementos zero (0) e um (1) que correspondem a FALSO e a VERDADEIRO , respectivamente. A & B realiza o AND lógico, A | B efectua o OR lógico, e ~A apresenta o complemento dos elementos de A. A função xor(A,B) implementa a operação OR exclusivo.
Inputs AND OR XOR & | xor
0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0
Os operadores lógicos possuem a precedência mais baixa relativamente aos operadores aritméticos e relacionais. A precedência entre os diversos operadores lógicos é dada por:
Pode-se usar, também os operadores lógicos & (AND) e | (OR). Por exemplo,
>> 1= = 1 & 4 = = 3
ans = 0
>> 1 = = 1 | 4 = = 3
ans = 1
6. - MANIPULAÇÃO DE VECTORES E MATRIZES
O MATLAB permite a manipulação de linhas, colunas, elementos individuais e partes de matrizes.
Além das já descritas, o MATLAB dispõe de diversas funções que permitem a rápida elaboração de matrizes padrão, como sejam:
6.1.1. Geração de vectores O caractere dois pontos, " : ", permite a geração de vectores no MATLAB. A declaração:
>> x = 1 : 5
Gera um vector linha contendo os números de 1 a 5 com incremento unitário. Produzindo:
x = 1 2 3 4 5
Outros incrementos, diferentes da unidade podem ser utilizados, como seja o caso do seguinte exemplo que impõe um incremento de pi/.
>> y = 0 : pi/4 : pi
y = 0.0000 0.7854 1.5708 2.3562 3.
Também são possíveis incrementos negativos.
>> z = 6 : -1 : 1
z = 6 5 4 3 2 1
Pode-se, também, gerar vectores linearmente espaçados fazendo uso da função linspace. Por exemplo,
>> k = linspace (0, 1, 6)
k = 0 0.2000 0.4000 0.6000 0.8000 1.
Cria um vector linearmente espaçado de 0 a 1, contendo 6 elementos. Ao pretender-se um espaçamento logarítmico desde o valor inicial x 1 até ao valor final x 2 do vector composto por k elementos, a função a utilizar será:
>> logspace (x 1 , x 2 , k)