




























































































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
Para quem deseja fazer cálculos numéricos por simuladores
Tipologia: Manuais, Projetos, Pesquisas
1 / 100
Esta página não é visível na pré-visualização
Não perca as partes importantes!





























































































O MATLAB, do inglês Matrix Laboratory, é um ambiente de programa- ção de alto desempenho voltado para a resolução de problemas que podem ser expressos em notação matemática.
MATLAB é uma abreviação para MATrix LABoratory. O MATLAB, portanto, é um sistema interativo cujo ele- mento básico da informação é uma matriz que não re- quer dimensionamento. Trata-se de um ambiente de alto nível que possui ferramentas avançadas de análise numérica, cálculo com matrizes, processamento de si- nais e visualização de dados. O MATLAB também possui características de lin- guagem de programação. O software possui funções matemáticas já existentes, programadas em linguagem própria e agrupadas de acordo com a área de inte- resse em toolboxes. Assim, o MATLAB pode ser usado para:
O nosso objetivo é aprender a utilizar o software MATLAB® para resolver alguns problemas comuns da área de dinâmica e controle dos sistemas. Não é objetivo esgotar todos os temas e opções de uma ferramenta tão poderosa. Aliás, quando estiver com dificuldades no uso do software, tenha sempre em mente que existe uma grande chance deste seu problema já ter sido discutido nos inúmeros sites de ajuda e tutoriais disponíveis na internet, ou em livros didáticos
2
2 .2 comandos e expressões 4
Figura 2 : Ajuste da fonte usada na Janela de Comandos.
computer: retorna string contendo o computador que está executando MATLAB;
delete : apaga um arquivo ou um objeto gráfico;
demo : abre a janela MATLAB examples;
ver : mostra o número da versão do MATLAB e dos toolboxes instalados;
version : retorna a versão em uso do MATLAB;
who : lista o nome das variáveis armazenadas;
whos : lista as propriedades das variáveis atuais (nomes, dimensão, número de bytes e classe).
load : carrega variáveis armazenadas em arquivos .m;
Para inserir algum comando, simplesmente digite na janela de comandos. Se você cometer algum erro, digite ENTER até aparecer o sinal prompt novamente e redi- gite o comando. O MATLAB guarda na memória seus comandos, portanto, para rever comandos anteriores use as teclas ↑ ou ↓. Para facilitar a repetição de coman- dos é possível também dar um duplo-clique nos itens da janela de histórico. Não se esqueça de que todo comando deve ser finalizado teclando ENTER. Comece com a seguinte instrução, » a=5/ a =
Para você aprender uma operação diferente do MATLAB, digite a seguinte ex- pressão e deduza a função do comando < \ >,
» a=5\ 10 A Tabela 1 mostra as principais operações aritméticas escalares do MATLAB. O resultado de qualquer comando que não seja atribuído a uma variável espe- cífica é armazenado em uma variável padrão chamada ans. Exemplo:
2 .3 strings 5
Símbolo Operação MATLAB
^ exponenciação ab^ a^b ∗ multiplicação ab a ∗ b / divisão à direita a/b = ab a/b \ divisão à esquerda a\b = ba a\b
Tabela 1 : Operações escalares. Tabela extraída de Palm III [ 4 ].
ans=
Quando for interessante omitir a exibição do resultado de qualquer comando basta encerrá-lo com ponto-e-vírgula. Exemplo:
1 >> a=5/10; % armazena a variavel mas nao exibe na tela
O símbolo de porcentagem serve para criar comentários de uma linha, tanto na janela de comandos quanto no ambiente de programação do MATLAB. Quando se deseja continuar o comando na próxima linha, o sinal utilizado pelo MATLAB é representado por 3 pontos < ... >. Ou seja:
» a=10; b=20; » c=a+... » b c = 30 Vale informar que este comando não funciona para comentários. O usuário pode interromper a execução do MATLAB, a qualquer momento, pressionando o Crtl-c.
O MATLAB define como string o conjunto de caracteres (vetor de caracteres) colo- cados entre aspas simples. Para acessar a variável é necessário definir a localização dos caracteres. Isto é,
» a=’exemplo com string’ a = exemplo com string » a(13:18) ans = string
2 .6 funções comumente utilizadas 7
A Tabela 4 e a Tabela 5 mostram, respectivamente, algumas funções trigonométri- cas e elementares comumente utilizadas.
sin(x) seno de x sinh(x) seno hiperbólico de x cos(x) coseno de x cosh(x) coseno hiperbólico de x tan(x) tangente de x tanh(x) tangente hiperbólica de x cot(x) cotangente de x coth(x) cotangente hiperbólica de x sec(x) secante de x sech(x) secante hiperbólica de x csc(x) cosecante de x csch(x) cosecante hiperbólica de x asin(x) arco cujo seno é x asinh(x) arco cujo seno hiperbólico é x acos(x) arco cujo cosseno é x acosh(x) arco cujo coseno hiperbólico é x atan(x) arco cuja tangente x atanh(x) arco cuja tangente hiperbólica é x acot(x) arco cuja cotangente x acoth(x) arco cujo cotangente hiperbólica é x acsc(x) arco cuja cosecante x acsch(x) arco cujo cosecante hiperbólica é x asec(x) arco cuja secante x asech(x) arco cujo secante hiperbólica é x
Tabela 4 : Funções trigonométricas.
abs(x) valor absoluto, ou seja, módulo de x exp(x) exponencial (base e) fix(x) arredonda para inteiro, em direção ao zero - p. ex., fix( 4. 89 ) = 4 floor(x) similar ao comando fix round(x) arredonda para o inteiro mais próximo - p. ex., round( 4. 89 ) = 5 , round( 4. 27 ) = 4 ceil(x) arredonda para o próximo inteiro acima - p. ex., ceil( 4. 27 ) = 5 gcd(x, y) máximo divisor comum entre x e y lcm(x, y) mínimo múltiplo comum entre x e y log(x) logaritmo natural (base e) log10(x) logaritmo decimal (base 10 ) log2(x) logaritmo base 2 e desmembra número em ponto-flutuante rem(x, y) resto da divisão de x por y - p. ex., rem( 8 , 3 ) = 2 sign(x) função sinal de x sqrt(x) raiz quadrada de x
Tabela 5 : Funções elementares.
7 exercícios
Calcule as seguintes expressões usando MATLAB,
2 .7 exercícios 8
manipulação de matrizes 10
Para criar uma matriz bidimensional basta combinar as sintaxes anteriores: » M = [2 1 3; 4 6 7; 3 4 5] M= 2 1 3 4 6 7 3 4 5
Os elementos de uma matriz podem ser acessados pelo nome da variável, se- guido de índices entre parênteses, sendo que o primeiro elemento é sempre o de índice 1. Exemplo de acesso:
» x=B(2) x=
Se uma nova informação for atribuída a um vetor ou matriz os redimensiona- mentos necessários serão feitos automaticamente. Exemplo:
» A=[4 5 9]; » A(6)= A= 4 5 9 0 0 8
Para acessar os elementos de uma matriz escreve-se o conjunto de índices entre parênteses, separados por vírgula. Exemplo:
» x=M(2,3) x= 7
Todos os elementos de uma certa dimensão de uma matriz podem ser indexa- dos em conjunto, como no comando abaixo que cria um vetor linha com todos os elementos da segunda linha da matriz M.
» v1 = M(2,:) v1 = 4 6 7
Esse comando pode ser traduzido como armazene em v1 os elementos de M que estão na linha 2 e em todas as colunas. Da mesma forma, o comando a seguir cria um vetor coluna com os elementos da primeira coluna da matriz M:
» v2 = M(:,1) v1 = 2 4 3
3 .1 sequências 11
O uso do sinal <:> também permite a atribuição de valores a uma dimensão completa de uma matriz. Por exemplo, a seguinte instrução sobre a matriz M atribui o valor 5 a todos elementos da primeira linha da matriz:
» M(1,:) = 5 M = 5 5 5 4 6 7 3 4 5
O arranjo vazio, expresso por [] não contém nenhum elemento. É possível eli- minar uma linha ou coluna de uma matriz igualando-se a linha ou coluna selecio- nada ao arranjo vazio. Por exemplo, a instrução a seguir remove a segunda linha da matriz M.
» M(2,:) = [] M = 5 5 5 3 4 5
Finalmente, matrizes podem ser concatenadas por meio de atribuições diretas. Exemplo:
M = [[5; 5; 5] v2 v1’] M = 5 2 4 5 4 6 5 3 7
O termo v1′^ significa utilizar a transposta de v 1.
A definição de uma sequência de números no MATLAB é muito simples. O sím- bolo <:> serve para criar uma sequência igualmente espaçada de valores, entre dois limites especificados, inteiros ou não. Por exemplo, a instrução abaixo cria um vetor linha com os valores 3 , 4 , 5 , 6 , 7 e 8 (o incremento padrão é unitário).
» v3 = 3: v3 = 3 4 5 6 7 8
O incremento pode ser definido pelo usuário se a seqüência for criada sob a forma [Valor inicial: Incremento: Valor final]. Exemplo:
» v4 = 2:0.5: v4 = 2.0000 2.5000 3.0000 3.5000 4.
Outra forma de se obter um vetor com valores igualmente espaçados é pelo uso da função linspace. Por exemplo, a instrução abaixo gera um vetor linha com 25 valores igualmente espaçados entre 10 e 200. Se o parâmetro que controla o número de pontos for omitido, a seqüência terá 100 valores.
» y = linspace(10,200,25);
3 .3 outras operações com matrizes 13
Considere as seguintes matrizes,
Para as operações:
C = A + B (Soma);
C = A − B (Subtração)
C = A ∗ B (Multiplicação matricial)
C = A. ∗ B (Multiplicação elemento-a-elemento)
C = A./B (Divisão elemento-a-elemento)
C = A.^ 2 (Potenciação elemento-a-elemento)
Verifique que, de acordo com as definições da matemática e as convenções do MATLAB, obtém-se os seguintes resultados:
Importante observar que a multiplicação de uma matriz A(n × k) por uma ma- triz B(k × m) produz uma matriz n × m. Para as outras operações mostradas, as matrizes A e B devem ter as mesmas dimensões.
Para o vetor linha v =
, verifique os seguintes co-
mandos,
v(3) % Extrai o terceiro elemento de v v([1 5 6]) % Extrai o primeiro, quinto e sexto elemento de v v2 = v([5:8 1:4]) % Extrai e inverte as duas metades de v 4 v(5:end) % Extrai do quinto ao ultimo elemento de v v([2 3 4]) = [10 15 20] % Substitui alguns elementos de v
Ou ainda,
A = magic(4) %Quadrado magico 4x4: mesmo valor de soma dos ... elementos ao longo de qualquer linha, coluna ou da diagonal ... principal. A(2,4) % Extrai o elemento da linha 2 e quarta coluna 4 A(2:4,1:2) % Forma uma nova matriz com os elementos das linhas 2, 3 ... e 4 e colunas 1- A(14) % usando um indice, MATLAB trata a matriz como se seus ... elementos fossem alinhados em um vetor coluna
3 .3 outras operações com matrizes 14
5 idx = sub2ind(size(A), [2 3 4], [1 2 4]) %sub2ind converte os ... indices (linha,coluna) em um indice linear A(idx) %valores de A correspondentes aos indices lineares ... encontrados anteriormente
Há uma série de funções disponíveis no MATLAB para geração ou alteração de matrizes e vetores, exemplificadas na Tabela 7. Além disso, a Tabela 8 fornece algumas matrizes especiais existentes no MATLAB.
Função Operação
x=max(A); Retorna o maior componente de A. Se A for uma matriz, o resultado é um vetor linha con- tendo o maior elemento de cada coluna. Para vetores, o resultado é o maior valor (ou o número complexo com maior módulo) entre seus componentes. x=min(A); Semelhante ao max(A), mas retorna os valo- res mínimos. [vmax imax] = max(v); Para o vetor v, retorna o maior elemento em vmax e o índice correspondente em imax. x = size(A); Retorna as dimensões da matriz A em um vetor linha, x = [m, n], contendo o número de linhas (m) e colunas (n) da matriz. [m n] = size(A); Retorna o número de linhas e colunas em va- riáveis separadas. x = length(A); Retorna o comprimento do vetor A ou o comprimento da maior dimensão da ma- triz A. Nesse último caso, length(A) = max(size(A)) x = det(A); Retorna o determinante da matriz quadrada A. d=eig(A); Determina autovalores de A. [V,D]=eig(A); Determina autovalores e autovetores de A. inv(A); Calcula a inversa de A. poly(A); Calcula a equação característica de A. norm(x); Retorna o comprimento geométrico do vetor√ x^21 + x^22 + ... + x^2 n. sort(A); Rearranja em ordem crescente cada coluna de A e retorna uma matriz com as mesmas dimensões de A. sum(A); Soma os elementos de cada coluna de A e re- torna um vetor linha que contém o resultado das somas.
Tabela 7 : Outras operações.
Vale a pena ainda mencionar o comando find para obtenção de elementos de uma matriz ou vetor que obedecem uma determinada condição,
» x = find(expressão);
3 .4 exercícios 16
Operadores relacionais
< Menor que <= Menor ou igual
Maior que = Maior ou igual == Igual a ~ = Diferente de
Operadores lógicos
& operação E | operação OU ∼ negação lógica
Tabela 9 : Operadores relacionais e lógicos.
Para vetores, a função retorna 1 se todos os elementos forem não nulos e 0 em caso contrário. A função any retorna 1 para cada coluna da matriz A que contenha algum valor não nulo e 0 em caso contrário, gerando um vetor linha. A função também trabalha com vetores. Exemplo:
» x = any(A) x= 1 1 1
Antes de iniciar qualquer nova atividade no MATLAB é recomendável limpar a janela de comando digitando clc. Em seguida, deve-se remover todas as variáveis da memória, usando o comando clear. Se quiser eliminar apenas uma variável, deve-se usar a sintaxe clear <nome da variável>.
3 .4 exercícios 17
Obtenha a matriz transposta de M
Obtenha a matriz inversa de M
Com uma linha de comando, calcule a multiplicação entre M1 e a inversa de M
Com uma linha de comando, calcule a multiplicação entre M1 e a transposta de M
Gere uma matriz de dimensão 5 × 5 com a diagonal igual a 3 e todos os outros elementos iguais a zero.
Obtenha os índices e os valores dos elementos da matriz M1 que contém valores menores do que zero.
Obtenha os índices e os valores dos elementos da matriz M2 que sejam maiores ou iguais a - 2 e menores ou iguais a 2.
(Extraído de Palm III [ 4 ]) Escreva uma sentença de atribuição no MATLAB para cada uma das seguintes funções, considerando que w, x, y, z são vetores linha de mesma dimensão e c, d são escalares: