50
1 IFSP – Instituto Federal de São Paulo LABORATÓRIO 1 Introdução ao MATLAB Prof. Dr. Cesar da Costa São Paulo Maio/2016

,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

1

IFSP – Instituto Federal de São Paulo

LABORATÓRIO 1

Introdução ao MATLAB

Prof. Dr. Cesar da Costa

São Paulo

Maio/2016

Page 2: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

2

Capítulo 4 – Software MATLAB

4.1 Introdução O MATLAB (MATrix LABoratory) é um software interativo de alto desempenho voltado para o cálculo científico. O MATLAB integra funções de alto nível, análise de dados, gráficos, análise numérica, cálculos matemáticos, processamento de sinais, modelagem e simulação. No MATLAB o elemento básico da informação é uma matrix, que não requer dimensionamento, permitindo a resolução de muitos problemas numéricos em apenas uma fração de tempo, que se gastaria para escrever um programa semelhante em linguagens de programação como Fortran, Basic ou C. O objetivo principal do MATLAB é fornecer ao usuário, técnicas de resolução de problemas, sem necessidade de desenvolver rotinas em linguagens de programação convencionais. O MATLAB possui um conjunto de bibliotecas que permitem resolver classes particulares de problemas. Associado ao MATLAB encontra-se a ferramenta de simulação denominada SIMULINK, que tem como principal função a simulação de sistemas dinâmicos. Os modelos são criados recorrendo-se a uma interface gráfica, que contém blocos que representam e modelam operações específicas. Ao contrário de linguagens de programação clássicas no ambiente MATLAB o usuário não se preocupa com: Declaração de variáveis; Alocação de memória; Utilização de ponteiros; Outras tarefas de rotinas.

4.2 Ambiente MATLAB Para iniciar uma sessão MATLAB em MS Windows, basta dar um duplo clique no ícone do MATLAB, abrindo-se uma janela designada por MATLAB Desktop. Quando o MATLAB é carregado surge uma janela principal dividida em quatro sub-janelas, com diferentes informações, conforme mostradas na Figura 4.1. As sub-janelas podem ser ativadas/desativadas, através da opção Desktop.

a) Command Windows (Janela de Comandos): permite executar os comandos e funções no MATLAB;

b) Current Folder (Navegador de Diretórios): permite visualizar ou alterar o diretório de trabalho;

c) Workspace (Espaço de Dados): permite visualizar e manipular as variáveis existentes em memória, na sessão do MATLAB;

d) Command History (Histórico de Comandos): apresenta os últimos comandos executados.

Page 3: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

3

Figura 4.1 – Janelas de trabalho do MATLAB.

4.2.1 Janela de Comandos

Nesta janela podem-se introduzir variáveis, comandos, funções e executar arquivos M. Quando a janela está pronta para receber comandos, surge o símbolo >>, designado prompt. A janela de comando pode ser limpa por meio do comando clc, ou através do comando Clear Command Window no menu Edit. Para facilitar a digitação de comandos previamente utilizados, o MATLAB permite ao usuário por meio das teclas de direção do teclado, facilidade de navegação pelo histórico dos comandos executados, conforme a Tabela 4.1. Tabela 4.1- Teclas de navegação Tecla Acessa o último, penúltimo e assim sucessivamente, os comandos utilizados. Tecla Acessa os comandos utilizados na ordem inversa a tecla Tecla Move o cursor para a direita Tecla Move o cursor para a esquerda

4.2.2 Linhas de Comando e Variáveis do MATLAB As linhas de comando do MATLAB frequentemente são da forma nome da variável = valor numérico. Podem ser compostas expressões com operadores e outros caracteres especiais, com funções, e com nomes de variáveis. A execução da expressão produz uma matriz. A matriz é mostrada na tela e assume o nome da variável definida na linha de comando, para que possa ser utilizada em outra situação. Se for omitido o nome da variável e o sinal de igual,

Page 4: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

4

o MATLAB cria automaticamente no Workspace uma variável com o nome ans . A Figura 4.2 apresenta um exemplo de linha de comando que cria duas variáveis a e b; e outro exemplo, que omite o nome da variável e o sinal de igual. As variáveis criadas são apresentadas na janela Workspace.

Figura 4.2 – Definição de variáveis. Uma linha de comando normalmente termina com a tecla Enter. Entretanto, se o último caractere for um ponto-e-vírgula (;), a variável que é produzida não é mostrada na tela. O MATLAB é uma linguagem case-sensitive, interpreta de forma diferente letras maiúsculas e minúsculas. A letra “A” (maiúscula) e a letra “a” (minúscula), não são a mesma variável. Os nomes das funções devem ser digitados em letras minúsculas. O sinal de igual (=), utilizado para definir variáveis é designado por operador ou sinal de atribuição. A Figura 4.3 apresenta a forma correta de atribuir uma variável e dois erros normalmente cometidos na atribuição de variáveis. No primeiro caso, só uma variável pode estar do lado esquerdo da expressão e no segundo caso, uma variável só pode ter atribuído uma valor, se o lado direito da expressão apresentar um valor computável. No caso do último exemplo, a variável b deveria ter sido definida anteriormente, caso contrário ocorrerá um erro.

Figura 4.3 – Erros na atribuição de variáveis.

Page 5: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

5

No MATLAB pode-se atribuir diversas variáveis numa única linha e separá-las por ponto e vírgula ou por vírgula. No caso de usar vírgula, o resultado de cada uma das atribuições é apresentado na janela de comandos, ao contrário do ponto e vírgula. A Figura 4.4 apresenta a atribuição de diferentes variáveis numa única linha e ilustra-se a possibilidade de escrever um comando em linhas sucessivas, utilizando o símbolo (...) três pontos, para separação das diferentes linhas em que o comando é escrito.

Figura 4.4 – Diversas atribuições na mesma linha.

Como apresentado nas Figuras anteriores os comentários são iniciados com o símbolo (%) percentual. Quando o MATLAB executa o programa e encontra este símbolo, não executa o que se encontra à sua direita, até o final da linha. Os comentários devem ser utilizados para descrever a funcionalidade das linhas de comando. Caso deseje saber quais as variáveis que estão atribuídas no Workspace, utiliza-se o comando who. Na Figura 4.5 é apresentado um exemplo de aplicação do comando who. Para um melhor detalhamento da variável como, tipo e tamanho ocupado em bytes na memória, utiliza-se o comando whos.

Figura 4.5 – Informações sobre variáveis.

A Tabela 4.2 lista as teclas que podem ser usadas para edição na linha de comandos do

Page 6: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

6

MATLAB e alguns comandos importantes para gerenciamento de variáveis e do Workspace. Tabela 4.2- Lista de teclas e comandos importantes na edição

Ctrl-P Chama uma linha de comando anterior. Ctrl-N Chama uma linha de comando posterior. Ctrl-B Move o cursor um caractere à esquerda. Ctrl-F Move o cursor um caractere à direita. Delete Move o cursor à esquerda, apagando um caractere. Ctrl-L Move o cursor uma palavra à esquerda. Ctrl-R Move o cursor uma palavra à direita. Ctrl-A Move o cursor para o começo da linha. Ctrl-E Move o cursor para o final da linha. Ctrl-U Cancela a linha. Ctrl-D Apaga o caractere que está sobre o cursor. Ctrl-K Apaga até o final da linha. clc Limpa a janela Command Window. who Lista de variáveis correntes. whos Detalha as variáveis. clear Limpa as variáveis correntes na memória. what Lista diretório de arquivos no diretório corrente. ver Lista a versão do software, número da licença e todas as Toolbox

instaladas com as respectivas versões. load Carrega arquivo do disco no Workspace. save Salva arquivo do Workspace no disco.

4.2.3 Funções Matemáticas no MATLAB

O MATLAB é uma ferramenta completa para funções matemáticas básicas e elementares. A

utilização das funções matemáticas no MATLAB é de uso intuitivo, porém para um melhor entendimento recomenda-se a consulta à documentação do MATLAB, comando help < nome da função>, e também no Apêndice 1 deste livro está disponível um resumo das principais funções do MATLAB. A seguir serão apresentados alguns exercícios resolvidos, para analisar algumas funções matemáticas elementares do MATLAB. Podem ser construídas expressões com os operadores de aritmética usuais e as regras de precedência. A Tabela 4.3 apresenta as funções matemáticas básicas. Tabela 4.3- Funções matemáticas básicas

+ adição - subtração

Page 7: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

7

* multiplicação / divisão por número à direita \ divisão por número à esquerda ^ Potência

Exercício 4.1: Dada a igualdade trigonométrica na Equação 4.1, prove que ela é verdadeira para um ângulo de 20 radianos.

22 22

sinsec 1 1 costg (4.1) Solução: A Figura 4.6 apresenta a solução do problema apresentado em MATLAB.

Figura 4.6 – Igualdade trigonométrica.

Exercício 4.2: Dada a igualdade trigonométrica hiperbólica na Equação 4.2, prove que ela é verdadeira para um ângulo de 30 radianos.

1 cosh cot ghtgh senh (4.2)

Solução:

Page 8: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

8

A Figura 4.7 apresenta a solução da igualdade trigonométrica hiperbólica em MATLAB.

Figura 4.7 – Igualdade trigonométrica hiperbólica. Exercício 4.3: O cálculo logarítmico é muito utilizado em cálculos matemáticos. No MATLAB o logaritmo na base natural é representado por log, na base 10 é representado por log10 e na base 2 é representado por log2. A Equação 4.3 representa uma propriedade dos logaritmos. Prove que a propriedade é verdadeira. log( * ) log( ) log( )a b a b (4.3) Solução: A Figura 4.8 apresenta a prova da propriedade dos logaritmos em MATLAB.

Page 9: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

9

Figura 4.8 – Propriedade logarítmica.

Exercício 4.4: A representação de um número complexo em MATLAB é realizada por meio dos símbolos j ou i. No exercício a seguir apresente a representação de um número complexo recorrendo ao símbolo j, i e a raiz quadrada. Solução: A Figura 4.9 ilustra as representações de um número complexo através dos símbolos j, i e raiz quadrada.

Figura 4.9 – Representação de um número complexo.

Page 10: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

10

. Exercício 4.5: A representação de um número complexo em MATLAB, também pode ser realizada pela função complex. Represente o número complexo z=2+j pela função dada. Solução: A Figura 4.10 apresenta a representação do número complexo dado pela função complex.

Figura 4.10 – Representação de um número complexo pela função complex. 4.2.4 Matrizes

Qualquer variável MATLAB é uma matriz. Este aspecto permite efetuar de forma fácil e intuitiva operações matemáticas, que em outras linguagens exigiriam o recurso de técnicas de programação avançadas. As operações estudadas até o presente momento envolveram a utilização de variáveis denominadas escalares. Na verdade, as variáveis escalares são tratadas no MATLAB como um caso particular de matrizes, ou seja, um escalar é uma matriz de dimensão 1 x 1, uma matriz de uma linha por uma coluna. Matriz é uma tabela de números dispostos em m linhas e n colunas. Assim, um simples número pode ser considerado uma matriz com uma linha e uma coluna, uma coordenada x y pode ser considerada uma matriz com uma linha e duas colunas, e um grupo de quatro coordenadas x y z pode ser considerada uma matriz com quatro linhas e três colunas. Se uma matriz contiver m linhas e n colunas, então conterá um total de .m n elementos. Cada elemento da matriz é indicado por índices, ija . O primeiro i , indica a linha, o segundo j , indica a coluna onde o elemento se encontra. Se o número de linhas e colunas for igual, então dizemos que a matriz é uma matriz quadrada. Se a matriz tiver apenas uma linha e uma coluna, podemos dizer que o valor é um escalar, se a matriz contiver apenas uma linha ( 1m ) ou uma coluna ( 1n ), a matriz é chamada vetor-linha ou vetor-coluna, respectivamente.

Page 11: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

11

Exercício 4.6: Dada a matriz a , 2 linhas x 2 colunas. Mostre no MATLAB as duas formas possíveis de defini-la.

1 35 2a

Solução: Na Figura 4.11, na primeira instrução as linhas são definidas com espaçamento entre os elementos e na segunda instrução as linhas são definidas com os elementos separados por vírgulas.

Figura 4.11 – Formas de definir uma matriz. Exercício 4.7: Dado um vetor linha [1,3]a e um vetor linha [5, 2]b . Defina uma matriz [ , ]c a b , constituída dos vetores linhas dados. Solução: Na Figura 4.12, a partir da definição dos vetores linhas a e b é definida a matriz c .

Page 12: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

12

Figura 4.12 – Matriz definida a partir de vetores linhas.

Exercício 4.8: Sabendo-se que a função zeros ( ,m n ) gera uma matriz mxn preenchida com zeros e a função ones ( ,m n ) gera uma matriz mxn preenchida com uns. Gere uma matriz zeros (3, 4 ) e uma matriz ones ( 4, 2 ). Solução: A Figura 4.13, apresenta as matrizes geradas com as funções zeros e ones.

Figura 4.13 – Matriz gerada com as funções zeros e ones. Exercício 4.9: Deseja-se gerar uma matriz com elementos aleatórios 2 x 2, com distribuição uniforme. Gerar também, uma matriz com elementos aleatórios 3 x 2, com distribuição normal.

Page 13: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

13

Solução: Na Figura 4.14, a função randn(n) cria uma matriz quadrada de dimensão nxn com distribuição uniforme e a função randn (m,n) gera uma matriz com dimensão mxn com distribuição normal.

Figura 4.14 – Matrizes com elementos aleatórios.

Exercício 4.10: As matrizes identidades são muito utilizadas nos cálculos matriciais. Criar uma matriz a identidade quadrada 3 x 3 e uma matriz b identidade 2 x 3. Solução: O MATLAB tem duas funções específicas para criação de matrizes identidades. Na Figura 4.15, a função eye (n) cria uma matriz a identidade de dimensão nxn e a função eye (m,n) cria uma matriz b identidade de dimensão mxn.

Page 14: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

14

Figura 4.15 – Matrizes identidades. Exercício 4.11:

Dada uma matriz a de valores aleatórios, determine as suas dimensões, número de linhas e o número de colunas. Solução: O MATLAB tem duas funções para determinação das dimensões de uma matriz. Na Figura 4.16 é apresentada a função d = size(a), que retorna um vetor linha cujo primeiro elemento é o número de linhas e o segundo elemento o número de colunas da matriz a. A segunda função [m,n] = size(a), retorna na variável m o número de linhas e na variável n o número de colunas da matriz a.

Page 15: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

15

Figura 4.16 – Dimensões, número de linhas e colunas de uma matriz.

4.2.4.1 Operador Dois Pontos ( : )

A técnica de acesso a determinados elementos ou conjunto de elementos de um vetor ou matriz designa-se por indexação matricial. O operador dois pontos (:) é útil no acesso a um conjunto de elementos de uma matriz ou vetor. Dado um vetor pode-se ter acesso aos seus elementos usando índices numéricos, que identificam o elemento que se pretende acessar. Para o caso genérico de uma matriz A, pode-se acessar o elemento localizado na linha i, coluna j, por meio do comando A(i, j). Por exemplo, para acessar o primeiro elemento de um vetor x, utiliza-se o comando x(1), o segundo elemento x(2), e assim sucessivamente. Dependendo do argumento, pode significar todas as linhas ou todas as colunas da matriz. Se o operador dois pontos for usado na notação A = 1 : 8; a matriz A conterá os valores 1, 2, 3, 4, 5, 6, 7 e 8. O operador dois pontos “ : ” entre dois números inteiros gera todos os inteiros entre os dois números especificados. Se for usado, para separar três números, os dois pontos gerarão valores entre o primeiro e terceiro número, usando o segundo número como incremento. Por exemplo, a notação t=0.0:0.5:5.0 gera um vetor linha denominado tempo que contém os números de 0.0 a 5.0 com incrementos de 0.5. O incremento também pode ser um valor negativo como, por exemplo, a notação v = 10: -1: 0 gera os elementos 10, 9, 8, 7, 6, … 0. A função linspace (x1, x2, n) gera um vetor com n pontos igualmente espaçados entre x1 e x2. No caso de n não ser especificado, a função assume um valor n=100. Por exemplo,

(1,10,10)a linspace , define um vetor linha com 10 elementos, em que o primeiro elemento é

Page 16: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

16

igual a 1 e o último elemento é igual a 10, ou seja, [1,2,3, 4,5,6,7,8,9,10]a . Exercício 4.12: Dada a matriz A, extraia um vetor x correspondente a primeira coluna da matriz e um vetor z correspondente a sua primeira linha.

[0.0,0.0;0.1,0.2;0.3,0,6]A Solução: Na Figura 4. 17, os elementos do vetor x correspondem à primeira coluna da matriz A. O segundo comando cria um vetor z cujos elementos correspondem aos elementos da primeira linha da matriz A.

Figura 4.17 – Vetor coluna x e vetor linha z extraídos da matriz A. Exercício 4.13: Dado o vetor 1: 2 :10a extraia o elemento a(2), o segundo, o terceiro e o quarto elemento do vetor. Também altere o primeiro elemento do vetor atribuindo-lhe o valor 7. Solução: Na Figura 4. 18 são apresentados os elementos a(2), o segundo até o quarto elemento e a alteração do primeiro elemento para o valor 10 do vetor a.

Page 17: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

17

Figura 4.18 – Extração e substituição dos elementos de um vetor.

Exercício 4.14: Dado a matriz A acesse o elemento composto da segunda linha e segunda coluna e acesse uma sub matriz constituída pelas duas primeiras linhas e duas primeiras colunas.

3 1 54 9 02 6 6

A

Solução: Na Figura 4. 19 são apresentados o elemento A(2,2) e a sub matriz A(1:2,1:2).

Page 18: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

18

Figura 4.19 – Extração do elemento e a sub matriz.

Exercício 4.15: Na matriz A do exercício anterior, extrair a terceira linha, a primeira coluna e a sub matriz formada pela primeira e terceira linha e as três colunas. Solução: Na Figura 4. 20 são apresentadas a terceira linha A(3, :), a primeira coluna A(:, 1) e a sub matriz A([1 3], :).

Page 19: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

19

Figura 4.20 – Extração da linha, coluna e sub matriz.

Exercício 4.16: Na matriz A do exercício anterior, apagar a primeira linha e alterar o elemento 11A para zero. Solução: Na Figura 4. 21 o comando A (1, :) = [] apaga a primeira linha da matriz A, e o comando A(1,1) = 0 altera o elemento 11A (primeira linha, primeira coluna) para 0.

Page 20: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

20

Figura 4.21 – Eliminação de uma linha e substituição de um elemento da matriz A.

Exercício 4.17: Na matriz A do exercício anterior, introduza duas linhas à matriz original, sendo que a quarta linha com os elementos 1, 2 e 3 e a quinta linha com os elementos 4, 5 e 6. Solução: Na Figura 4. 22 o comando A ([4 5], :) = [1 2 3; 4 5 6] concatena duas linhas a matriz A, com os elementos 1, 2 e 3 na quarta linha e os elementos 4, 5 e 6 na quinta linha.

Page 21: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

21

Figura 4.22 – Concatenação de duas linhas a matriz A.

4.2.4.2 Operações com Matrizes e Vetores Para ilustrar as operações matemáticas com matrizes e vetores consideraremos duas matrizes

genéricas a e b de ordem mxn e dois vetores genéricos a e b de n elementos, conforme representados a seguir.

11 12 1421 22 24

1 2

...

...... ... ... ...

...m m mn

a a aa a aaa a a

11 12 1421 22 24

1 2

...

...... ... ... ...

...m m mn

b b bb b bbb b b

1 2[ , ,..., ]na a a a 1 2[ , ,..., ]nb b b b

4.2.4.3 Adição e Subtração de Arranjos

As operações de adição e subtração são efetuadas apenas com matrizes de mesmo tamanho ou mesma dimensão. A operação é obtida adicionando-se ou somando-se elementos em posições correspondentes nas matrizes. Em geral, se a e b são duas matrizes, por exemplo, matrizes 2 x 3, a matriz resultante da adição a + b será dada pelo arranjo da Equação 4.4. Os exercícios resolvidos a seguir ilustram as operações de adição e subtração com matrizes e vetores.

11 12 1321 22 23

a a aa a a a

11 12 1321 22 23

b b bb b b b

Page 22: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

22

11 11 12 12 13 1321 21 22 22 23 23

a b a b a ba b a b a b a b (4.4)

Exercício 4.18: Dado o vetor a= -2:3 e o vetor b= [1 2 3 4 5 6]. Calcule a soma e a subtração dos vetores a e b. Solução: Na Figura 4. 23 observe que os vetores a e b tem a mesma dimensão. A adição ou subtração é realizada entre cada elemento dos vetores.

Figura 4.23 – Soma e subtração dos vetores.

Exercício 4.19: Considerando os vetores a e b do exercício anterior. Some o escalar 4 ao vetor a e subtraia do vetor b o escalar 5. Solução:

Page 23: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

23

Na Figura 4. 24 a operação é realizada somando ou subtraindo o escalar a cada elemento do vetor.

Figura 4.24 – Soma e subtração entre escalar e vetor.

Exercício 4.20: Dada as matrizes a e b. Efetue a soma entre as matrizes.

[2,3,1;3,4,5;1, 2,2]a [3,7,9;2,1,0;0,4,1]b

Solução: Na Figura 4. 25 como as matrizes são quadradas de dimensões 3 x 3, a operação é realizada somando-se cada elemento das matrizes.

Page 24: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

24

Figura 4.25 – Soma entre matrizes.

Exercício 4.21: Dada as matrizes a e b do exercício anterior. Efetue a subtração entre as matrizes. Solução: Na Figura 4. 26 como as matrizes são quadradas de dimensões 3 x 3, a operação é realizada subtraindo-se cada elemento das matrizes.

Page 25: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

25

Figura 4.26 – Subtração entre matrizes.

Exercício 4.22: Considerando as matrizes a e b do exercício anterior. Some o escalar 4 a matriz a. Na Figura 4. 27 a soma entre um escalar e uma matriz realiza a operação individualmente sobre cada elemento da matriz.

Page 26: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

26

Figura 4.27 – Soma entre um escalar e uma matriz.

4.2.4.4 Multiplicação de Arranjos

A operação de multiplicação (*) é executada conforme as regras da álgebra linear. Ou seja, se a e b são duas matrizes, a operação ( )a b só é possível se, e somente se, o número de colunas da matriz a for igual ao número de linhas da matriz b. O resultado da operação será uma matriz, que possui o mesmo número de linhas da matriz a e o mesmo número de colunas da matriz b. Por exemplo, se a matriz a for uma matriz 4x3 e a matriz b for uma matriz 3x2, a multiplicação de ( )a b será dada pela Equação 4.5.

11 12 1321 22 2331 32 3341 42 43

a a aa a aa a a aa a a

11 1221 2231 32

b bb b b

b b

11 11 12 21 13 31 11 12 12 22 13 3221 11 22 21 23 31 21 12 22 22 23 3231 11 32 21 33 31 31 12 32 22 33 3241 11 42 21 43 31 41 12 42 22 43 42

( ) ( )( ) ( )( ) ( )( ) ( )

a b a b a b a b a b a ba b a b a b a b a b a ba b a b a b a b a b a b a ba b a b a b a b a b a b

(4.5)

Page 27: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

27

Exercício 4.23: Dado os vetores a e b. Efetue a multiplicação entre os dois vetores e a multiplicação entre o vetor a e o escalar 3.

[2,3,1]a [1;1;1]b

Solução: Na Figura 4. 28, a multiplicação dos vetores obriga que o número de colunas do vetor à esquerda do operador de multiplicação, seja igual ao número de linhas do vetor a direita do operador de multiplicação. A operação de multiplicação do vetor a pelo escalar 3, resulta num vetor constituído pelos elementos do vetor a multiplicados pelo escalar 3.

Figura 4.28 – Multiplicação entre vetores e vetor e escalar.

Exercício 4.24:

Dada as matrizes a, b e c. Calcule a matriz *d a b ; a matriz *e c a e a matriz *f a c .

[1,1;3,2]a

Page 28: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

28

[0,1;0,2]b [0,1]c

Solução: Na Figura 4. 29, a multiplicação das matrizes resulta na matriz d de ordem 2 x 2 e na matriz e de ordem 1 x 2. A operação de multiplicação de matrizes só pode ser efetuada quando o número de colunas da matriz à esquerda do operador de multiplicação é igual ao número de linhas da matriz à direita do operador de multiplicação. A matriz f resulta em um erro, pois a condição não é satisfeita.

Figura 4.29 – Multiplicação entre matrizes.

4.2.4.5 Divisão de Arranjos

A operação de divisão de matrizes também está condicionada às regras da álgebra linear. O MATLAB possui dois tipos de operadores de divisão. O operador de divisão à direita ( / ) e o operador de divisão à esquerda ( \ ). Os exercícios a seguir ilustram o modo de utilização dos operadores de divisão, além de mostrar a função inv (inversa de uma matriz). Exercício 4.25: Dada as matrizes a e b. Calcule a matriz 1 \X a b e a matriz 2 ( )*X inv a b .

[2,1,1;1,6,2;3, 4,4]a [1;2;1]b

Solução: Na Figura 4. 30, a matriz 1X é igual a matriz 2X . A relação aX b pode ser transformada em

Page 29: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

29

1X a b . Assim, a divisão entre as matrizes a e b pode ser realizada pela multiplicação da inversa de a pela matriz b, ou com base no operador à esquerda \a b .

Figura 4.30 – Divisão entre matrizes.

Exercício 4.26: Dado o sistema de equações lineares, utilizando as regras de divisão de matrizes apresentadas no exercício anterior, resolva o sistema. 4 2 6 82 3 4 65 10 3 0

x y zx y zx y z

Solução: Na Figura 4. 31, aplicando-se as regras da álgebra linear, o sistema de equações pode ser rescrito na forma matricial aX b .

4 2 6 82 3 4 65 10 3 0

xyz

Page 30: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

30

Figura 4.31 – Solução de sistema de equações lineares.

4.2.4.6 Operações Escalares Envolvendo Elementos de Vetores e Matrizes

Existem situações que requerem operações escalares envolvendo elementos correspondentes em dois ou mais arranjos (vetores ou matrizes). As operações escalares de multiplicação, divisão e exponenciação de vetores ou matrizes, envolvendo elemento por elemento dos arranjos são sinalizadas digitando-se um ponto antes do operador aritmético, conforme apresentado na Tabela 4.4. Tabela 4.4 - Operações escalares de matrizes Símbolo Descrição . Multiplicação escalar ./ Divisão escalar à direita .\ Divisão escalar à esquerda .^ Exponenciação escalar As Equações 4.6, 4.7 e 4.8 apresentam a multiplicação, divisão e exponenciação escalar envolvendo elementos correspondentes de dois vetores a e b. 1 1 2 2 3 3 4 4.* , , ,a b a b a b a b a b (4.6)

1 1 2 2 3 3 4 4. / / , / , / , /a b a b a b a b a b (4.7) 31 2 41 1 2 3 4.^ ( ) , ( ) , ( ) , ( )bb b ba b a a a a (4.8)

As Equações 4.9, 4.10 e 4.11 apresentam a multiplicação, divisão e exponenciação escalar envolvendo elementos correspondentes de duas matrizes a e b.

Page 31: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

31

11 11 12 12 13 1321 21 22 22 23 2331 31 32 32 33 33

.*a b a b a b

a b a b a b a ba b a b a b

(4.9)

11 11 12 12 13 1321 21 22 22 23 2331 31 32 32 33 33

/ / /. / / / /

/ / /

a b a b a ba b a b a b a b

a b a b a b

(4.10)

11 12 1321 22 2331 32 33

( ) ( ) ( ).^ ( ) ( ) ( )

( ) ( ) ( )

n n nn n nn n n

a a aa n a a a

a a a

(4.11)

Os exercícios a seguir demonstram a aplicação das operações escalares envolvendo elementos correspondentes de matrizes e vetores.

Exercício 4.27: Dada a função 2 4y x x . Crie um vetor x de oito elementos, tal que 1;8x e calcule os valores da função para os elementos do vetor criado. Solução: Na Figura 4. 32 cria-se o vetor x, a seguir o vetor x é utilizado em operações escalares para gerar os elementos do vetor y.

Figura 4.32 – Valores da função y para o vetor x criado.

Page 32: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

32

Exercício 4.28: Dada a função 3

25

4 10z zy z . Crie um vetor z de oito elementos, tal que 1;2;5z e calcule

os valores da função para os elementos do vetor criado. Solução: Na Figura 4. 33, as operações escalares, elemento por elemento, são usadas para gerar 3z e 2z e dividir o numerador pelo denominador.

Figura 4.33 – Valores da função y para o vetor z criado. .

4.2.4.7 Funções Nativas do MATLAB O MATLAB contém diversas funções nativas para cálculos com arranjos, que são muito úteis

para o programador. A seguir serão apresentados alguns exercícios exemplos. Exercício 4.29: Dado o vetor 9,2, 4,5a . Calcule o valor médio dos elementos do vetor a. Solução: Na Figura 4. 34 a função mean (a), se a é um vetor, retorna o valor médio dos elementos do vetor.

Page 33: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

33

Figura 4.34 – Valor médio de um vetor.

Exercício 4.30: Dado o vetor 9, 2, 4,5,0,12, 20,3,1,36a . Calcule o valor máximo e o valor mínimo entre os elementos do vetor a. Solução: Na Figura 4. 35 a função max (a) e a função min (a), se a é um vetor , retorna o valor máximo e mínimo entre os elementos do vetor.

Figura 4.35 – Valor máximo e mínimo de um vetor.

Page 34: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

34

Exercício 4.31: No vetor 9, 2, 4,5,0,12, 20,3,1,36a . Calcule o valor máximo e o valor mínimo entre os elementos do vetor a, indicando a respectiva posição do elemento no vetor. Solução: Na Figura 4. 36 as funções [d,n]=max (a) e [d,n]=min (a), se a é um vetor , d retorna o valor máximo e mínimo entre os elementos do vetor, e n a respectiva localização do elemento máximo ou mínimo no vetor.

Figura 4.36 – Valor máximo e mínimo, com sua localização no vetor.

Exercício 4.32: No vetor 9, 2, 4,5,0,12, 20,3,1,36a . Calcule a soma dos elementos do vetor. Solução: Na Figura 4. 37, se a é um vetor, a função sum(a) retorna a soma dos elementos do vetor.

Page 35: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

35

Figura 4.37 – Soma dos elementos de um vetor.

Exercício 4.33: No vetor 9, 2, 4,5,0,12, 20,3,1,36a . Ordene os elementos do vetor na ordem crescente. Solução: Na Figura 4. 38, se a é um vetor, a função sort(a) ordena os elementos do vetor na ordem crescente.

Figura 4.38 – Ordenação dos elementos de um vetor.

Exercício 4.34: No vetor 9, 2, 4,5,0,12, 20,3,1,36a . Calcule a mediana e o desvio padrão dos elementos do vetor a. Solução:

Page 36: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

36

Na Figura 4.39, se a é um vetor, a função median(a) e a função std(a) calculam respectivamente a mediana e o desvio padrão dos elementos de um vetor.

Figura 4.39 – mediana e desvio padrão dos elementos de um vetor.

Exercício 4.35: Dada a matriz 2, 2,1;3, 2, 1;2, 3,2a . Calcule o determinante de a e a sua matriz inversa. Solução: Na Figura 4.40 a função det(a) e a função inv(a) calculam respectivamente o determinante e a matriz inversa da matriz a.

Page 37: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

37

Figura 4.40 – Determinante e a matriz inversa de uma matriz.

Exercício 4.36: Sabendo-se que o coeficiente de atrito cinético ( ) entre um corpo de massa (m) e uma superfície plana com atrito pode ser determinado experimentalmente. Numa experiência de laboratório de Física foram realizadas seis medidas de força, com seis corpos de massa (m) diferentes. Os resultados obtidos são apresentados na Tabela 4.5. A Equação 4.12 determina o valor do coeficiente de atrito ( ) em função da força ( F ), da massa (m) e da gravidade (g), que deve ser considerada 29.81 /g m s . Determine o coeficiente de atrito por medida, a média e o desvio padrão.

Fmg (4.12)

Tabela 4.5- Dados obtidos no experimento Medida 1 2 3 4 5 6 Massa (m) 3 5 6 11 21 51 Força (F) 13.5 24.5 31 62 118 295 Solução: Na Figura 4.41 define-se um vetor com os valores da massa (m), um segundo vetor com os valores de força (F). Usando-se a Equação 4.6, operação elemento por elemento, calcula-se o valor do atrito ( ) para cada medida. As funções mean e std calculam, respectivamente, a média e o desvio padrão dos coeficientes de atritos.

Page 38: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

38

Figura 4.41 – Coeficientes de atrito das medidas, com valor médio e desvio padrão.

4.2.5 Rotinas com Lista de comandos no MATLAB

Todos os comandos do MATLAB mostrados até este ponto deste livro são executados na janela Command Windows. Esta forma de interação não é prática, nem eficaz quando se pretende executar um número significativo de comandos, reproduzir os resultados de uma determinada sequencia de processamento ou modificar o valor de algumas variáveis e reavaliar os resultados obtidos. Quando se deseja executar muitos comandos em série, encadeados logicamente entre si, deve-se primeiro criar um arquivo designado por arquivo M-Files ou script files. Quando o arquivo for chamado, os comandos vão sendo executados na ordem em que são listados, como em um programa em uma linguagem convencional. A sequencia de instruções armazenadas é executada como se cada instrução fosse introduzida manualmente na linha de comandos pelo próprio usuário.

4.2.5.1 Criando Rotinas no MATLAB As rotinas criadas no MATLAB na janela Editor/Debugger Windows podem ser apenas sequencias de comandos (Scripts) ou funções. Para criar uma rotina tipo Script, acesse o editor de programas, na janela principal, no menu File, selecione New e Script. A Figura 4.42 ilustra a janela do Editor de programas do MATLAB.

Page 39: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

39

Figura 4.42 – Janela do Editor/Debugger Windows. Na janela do Editor/Debugger, na coluna lateral esquerda, surge a numeração das linhas do programa. Os comandos dentro do programa são digitados linha por linha. As linhas são numeradas automaticamente. Durante a edição do programa, para passar para a próxima linha deve-se pressionar a tecla Enter. As linhas utilizadas para os comentários, sempre devem ser precedidas pelo caracterer % (percentual), para que não sejam executadas pelo programa MATLAB. Após a edição do programa, antes de sua execução, o programa deve ser salvo, no menu File, opção Save as , selecione o caminho e a localização da unidade de armazenamento. O nome do arquivo deve ser iniciado por uma letra, pode incluir dígitos, underline e possuir até no máximo 63 caracteres de extensão. O nome do arquivo não pode conter espaços, caso contrário, no momento que executar o programa, ocorrerá um erro: “Undefined function or method ‘file name‘ for input arguments of type ‘char’”. O programa pode ser executado, digitando-se o nome do programa na linha do prompt, na janela Command Windows, seguida da tecla Enter ou diretamente na janela Editor/Debugger Windows, clicando no ícone Run. A Figura 4.43 apresenta um Script editado na janela do editor de programas do MATLAB.

Figura 4.43 – Programa editado na janela do Editor/Debugger Windows.

Page 40: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

40

4.2.5.2 Exemplo de Script Elaborados no MATLAB A seguir são apresentados alguns Scripts com funções de entrada e saída de dados, elaborados

no MATLAB. Caso necessite de maiores informações sobre as funções apresentadas nos exercícios resolvidos, recomenda-se que o leitor estude as funções no Apêndice A deste livro ou no Help do MATLAB. Exercício 4.37: Criar uma rotina no MATLAB, que gere duas tabelas de conversão. Uma tabela converte velocidade em milhas por hora (mi/h) em velocidade em quilômetros por hora (km/h). A segunda tabela converte libras (lb) em Newton (N). Cada tabela deve ser salva em um arquivo texto (extensão .txt) diferente. As Equações 4.13 e 4.14 apresentam as relações entre mi/h em km/h e, libra em Newton, respectivamente.

/ / *1.609km h mi h (4.13)

*4.448N lb (4.14) Solução: Na rotina apresentada na Figura 4.44, inicialmente define-se um vetor de velocidade em Vmph, aplica-se a fórmula de conversão da Equação 4.13 e cria-se uma matriz com duas colunas (Vmph e Vkph). Depois se define um vetor de força em Flb, aplica-se a fórmula de conversão da Equação 4.14 e cria-se uma matriz com duas colunas (Flb e FN). A função fopen do MATLAB abre (com o argumento ‘w’) o arquivo chamado Vmph_Vkph e o arquivo Flb_FN. A função fprintf escreve os resultados de saída em dois arquivos textos e o comando fclose fecha os arquivos.

Page 41: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

41

Figura 4.44 – Rotina de conversão Vmph em Vkmp e Flb em FN. Essa rotina gera e salva dois arquivos textos, extensão .txt, no diretório selecionado no Current Directory, que podem ser abertos em qualquer editor de textos, por exemplo, o Word. As Figuras 4.45 e 4.46 apresentam as tabelas lidas pelo editor de texto Word.

Figura 4.45 – O arquivo Vmph_Vkpm gerado no editor de texto do Word.

Page 42: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

42

Figura 4.46 – O arquivo Flb_FN gerado no editor de texto do Word. Exercício 4.38:

Considerando a altura ( )h t e a velocidade ( )v t de um projétil lançado de uma plataforma, com um ângulo em relação a horizontal, com velocidade inicial 0v e gravidade

29,8 /g m s . A altura e a velocidade do projétil podem ser determinadas, respectivamente, pelas Equações 4.15 e 4.16. O tempo de voo do projétil é expresso pela Equação 4.17.

20

1( ) sin( ) 2h t v t gt (4.15)

2 2 20 0( ) 2 sin( )v t v v gt g t (4.16)

02 sin( )vtvoo g

(4.17) Assumindo um valor de velocidade inicial 0 50 /v m s e um ângulo de lançamento 070 . Crie uma rotina no MATLAB, que determine o intervalo de tempo em que a velocidade do projétil é maior ou igual a 30 /m s , para uma altura menor ou igual a 25m . Apresente um gráfico que indique a relação altura por velocidade. O vetor de saída conterá os elementos do vetor t, que respeitam a relação imposta pela condição 25 & 30h v . Solução: Na rotina apresentada na Figura 4.47, inicialmente define-se os vetores velocidade inicial e gravidade. Converte-se o ângulo alfa em radianos. Define-se o tempo de voo aplicando-se a Equação 4.17, cria-se um vetor tempo utilizando-se a função linspace com 50 elementos. Define-se a altura e a velocidade aplicando-se as Equações 4.15 e 4.16. Aplica-se a condição imposta 25 & 30h v , por meio da função find e encontra-se o vetor de saída, cujos elementos são apresentados na janela do Command Window. A Figura 4.48 apresenta o gráfico

Page 43: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

43

altura (h) e velocidade (v) por tempo, do movimento do projétil, gerado pela função plot.

Figura 4.47 – Rotina que determina o intervalo de tempo do movimento de um projétil com condições de altura e velocidade determinadas.

Figura 4.48 – Gráfico altura (h) e velocidade (v) por tempo do movimento de um projétil

Page 44: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

44

4.2.5.3 Exemplo de Funções Elaboradas no MATLAB A resolução de problemas matemáticos complexos no MATLAB, geralmente necessita da

divisão em problemas mais simples ou elementares. Nesse caso, quando o valor de uma função matemática precisa ser determinado dentro do programa, o MATLAB oferece o recurso das funções. As funções são utilizadas para a implementação de soluções elementares, que podem ser declaradas em rotinas, que são depois reutilizados na solução de outros problemas. As funções são Scripts com algumas características especiais. A sua estrutura básica é a declaração da função no início do Script, para definir a sua sintaxe. A forma geral da declaração de uma função é apresentada a seguir:

function [parâmetro(s)_saída] = nome_da_função (parâmetro(s)_entrada)

Uma função declarada e salva como um arquivo no MATLAB pode ser chamada em qualquer parte do MATLAB. Desse modo, programas muito grande podem ser divididos em segmentos menores, que podem ser testados independentes. As funções são semelhantes as sub-rotinas das linguagens convencionais, como Basic e Fortran. A Figura 4.49 ilustra os passos para criar uma função no MATLAB. No menu principal selecione File, New e Function.

Figura 4.49 – Passos iniciais para criar um função no MATLAB. A Figura 4.50 ilustra um template gerado na janela Editor do MATLAB, onde deve ser criada a função. Toda a função começa com a palavra em inglês function. Deve ser digitada em letras minúsculas (1). Um argumento ou uma lista de argumentos (parâmetros) de saída devem ser digitados entre colchetes (2). Nome da função pelo qual deve ser salva e chamada quando necessário (3). Um argumento ou uma lista de argumentos de entrada devem ser digitados entre parênteses (4). Os exercícios resolvidos a seguir apresentam alguns exemplos de funções utilizadas na solução de problemas com o MATLAB.

Page 45: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

45

Figura 4.50 – Template de uma função disponível no Editor do MATLAB. Exercício 4.39: Escreva uma função em MATLAB, que converta temperatura em graus Fahrenheit (F) em graus Celsius (C). Salve a função como FparaC. A Equação 4.18 representa a relação entre as duas escalas de temperaturas. Crie um vetor F de temperaturas em graus Fahrenheit entre 30 e 50 graus, com intervalo de 5 graus e teste a função.

325* 9FC (4.18)

Solução: Na Figura 4.51 é apresentada a declaração da função FparaC, que converte temperatura em grau Fahrenheit em temperatura em grau Celsius. Utilizou-se o template do Editor do MATLAB para criar a função FparaC. Na janela do Command Window criou-se o vetor de temperaturas F e chamou-se a função para a conversão de graus Fahrenheit em Celsius.

Page 46: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

46

Figura 4.51 – Função FparaC que faz a conversão de graus Fahrenheit em Celsius.

Exercício 4.41: Sabendo-se que a variação no comprimento de um objeto ( L ), devido à variação da temperatura é dada pela Equação 4.19, onde o coeficiente linear de dilatação e L o comprimento do objeto. Determine a variação na área de uma chapa de alumínio de dimensões 4.5m x 2.25m, se a temperatura variar de 040 F para 092 F . Considere

6 023.10 / C .

L L T (4.19) Solução: Na Figura 4.52 inicialmente são declaradas as variáveis correspondentes às dimensões da chapa ( 1 1,a b ), temperaturas ( 1 2,T T ) e o coeficiente de dilatação ( ). A seguir usando-se a função FparaC calcula-se a diferença de temperatura em graus Celsius. Calcula-se o novo comprimento da chapa ( 2a ) e a nova largura ( 2b ). Por fim calcula-se a variação total da área da chapa.

Page 47: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

47

Figura 4.52 – Variação total da área da chapa utilizando-se a função FparaC.

4.3 Exercícios Propostos

a) Dada a identidade trigonométrica pela Equação 4.20. Substituindo-se 5x , verifique a

identidade calculando cada lado da equação. 2 tan sincos 2 2 tan

x x xx

(4.20) b) Declare e inicialize as variáveis a, b, c e d como: 18.45; 5.03; 45.5; 0.5a b c d .

Em seguida calcule a Equação 4.21. 2( )ab a da c ac

(4.21)

Page 48: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

48

c) Crie os seguintes vetores. c.1) Vetor linha contendo os seguintes elementos: 32; 4; 2.5e ; 63; cos 3

; 14.12. c.2) Vetor coluna contendo os seguintes elementos: 55; 14; ln(51) ; 987; 0; 5sin(2.5 ) . c.3) Vetor linha, onde o primeiro elemento é 1 e o ultimo 33. Produza números entre os dois, incremente-os de 2 unidades.

d) Resolva o seguinte sistema de equações lineares: 3 4 5 92 7 26 10 3 0

x y zx y zx y z

e) Construa dois gráficos da função 5 3( ) 0.6 5 9 2f x x x x separadamente; no primeiro use o intervalo 4 4x e, no segundo use o intervalo 2.7 2.7x .

f) Um mecanismo pistão-manivela-biela é apresentado na Figura 4.53, sendo constituído por uma manivela de êmbolo, usada em muitas aplicações na engenharia. A manivela gira a uma velocidade constante de 500 rpm. Calcule e esboce a posição, a velocidade e a aceleração do embolo (pistão) para uma revolução da manivela. Construa três gráficos na mesma janela de saída. Considere inicialmente 00 em 0.t

Figura 4.53 – Sistema pistão-manivela-biela.

Baseada na Figura 4.53, as Equações 4.22, 4.23, 4.24 e 4.25 podem ser utilizadas para calcular as distancias 1d , 2d , h e a posição x do pistão. Derivando-se x em relação a t obtemos a velocidade do êmbolo; a derivada segunda de x em relação a t obtemos a aceleração do êmbolo.

Page 49: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

49

1 cosd r (4.22) h rsen (4.23)

1 12 2 2 2 22 22 ( ) ( sin )d c h c r (4.24)

12 2 2 21 2 cos ( sin )x d d r c r (4.25)

g) Quando resistores são ligados em série, a queda de tensão em cada resistor é determinada pela Equação 4.26, onde nV é a queda de tensão sobre o resistor n , eq nR R é a resistência equivalente ou total e sV é a tensão da fonte. A potência dissipada em cada resistor pode ser determinada pela Equação 4.27.

nn seq

RV VR (4.26)

22nn seq

RP VR (4.27) A Figura 4.54 apresenta um circuito com quatro resistores conectados em série. Desenvolva um programa (Script), que calcule a queda de tensão e a potencia dissipada em cada resistor. Ao executar a rotina, o usuário deve ser solicitado a digitar em um vetor o valor da fonte de tensão e o valor de cada resistor. O programa exibirá uma tabela com os resistores listados na primeira coluna, a queda de tensão na segunda coluna e a potencia dissipada na terceira coluna. Após a tabela, o programa deve exibir a corrente total no circuito e a potência total dissipada. Teste o programa com os seguintes valores de sV e nR .

1 2 3 424 ; 10 ; 15 ; 6 ; 12sV V R R R R h) Quando n resistores são conectados para formar um circuito paralelo, a resistência

equivalente eqR desse circuito pode ser determinada pela Equação 4.28. Escreva uma função no MATLAB que determine a eqR . Como sugestão utilizar para o nome da função e dos argumentos, por exemplo, REQ = req ( R ).Os parâmetros de entrada devem estar disponível em um vetor, onde cada entrada desse vetor corresponde a um valor de resistor, e o parâmetro de saída é eqR . Teste a função para determinar a

Page 50: ,)63 ± ,QVWLWXWR )HGHUDO GH 6mR 3DXOR /$%25$7Ï5,2 ...professorcesarcosta.com.br/upload/imagens_upload... · &dstwxor ± 6riwzduh 0$7/$% ,qwurgxomr 2 0$7/$% 0$7ul[ /$%rudwru\ p xp

50

resistência equivalente quando os seguintes resistores são conectados em paralelo: 30 ,45 ,100 ,60 ,500 ,180 e 200 .