Baixe o app para aproveitar ainda mais
Prévia do material em texto
Prof. Vinícius Costa Prof. Matheus Cascardo Linguagem de Programação Aplicada APOSTILA DE MATLAB 2017 Com Aplicações em Engenharia MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 1 Prof. Matheus Cascardo Sumário 1.1 Iniciação do Ambiente MATLAB®..................................................................................... 2 1.2 Operações Aritméticas com Escalares ................................................................................. 3 1.2.1 Ordem de Precedência ................................................................................................ 3 1.2.2 Formato de Exibição dos Dados Numéricos ............................................................. 4 1.2.3 Funções Matemáticas Elementares Nativas do MATLAB® .................................... 4 1.3 Declarando Variáveis Escalares ........................................................................................... 6 1.3.1 Operador de Atribuição .............................................................................................. 6 1.3.2 Regras quanto ao Uso de Nomes de Variáveis .......................................................... 8 1.3.3 Variáveis Predefinidas e Palavras-chave .................................................................. 8 1.4 Comando Úteis no Manuseio de Variáveis .......................................................................... 9 1.5 Script Files ............................................................................................................................ 9 1.5.1 Informações sobre os Scripts Files ............................................................................. 9 1.6 Exercícios Propostos .......................................................................................................... 10 2 Criando Arranjos ................................................................................................................... 15 2.1 Criando um Arranjo Unidimensional (Vetor) .................................................................... 15 2.2 Exercícios Propostos .......................................................................................................... 19 2.2 Exercícios Propostos .......................................................................................................... 20 3 Operações Matemáticas com Arranjos .................................................................................. 21 3.1 Adição e Subtração ............................................................................................................. 21 3.2 Multiplicação de arranjos ................................................................................................... 23 3.3 Divisão de Arranjos ............................................................................................................ 26 3.4 Operações escalares envolvendo elementos de matrizes (operações elemento por elemento) .................................................................................................................................. 30 3.5 Usando Arranjos em Funções Nativas do MATLAB ........................................................ 32 3.6 Funções Nativas para avaliação de arranjos ....................................................................... 33 3.7 Exercícios Propostos .......................................................................................................... 35 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 2 Prof. Matheus Cascardo 1.1 Iniciação do Ambiente MATLAB® O ambiente MATLAB® é composto por quatro janelas principais: Tabela 1-1 Janelas do MATLAB® Janela Propósito Command Window Janela principal, inicialização de variáveis e execução de programas. Figure Window Apresenta o(s) resultado(s) do(s) comando(s) gráficos. Editor Window Permite a edição e a depuração de programas (script files) e funções. Help Window Ajuda na utilização do programa. Command History Window Apresenta o histórico dos comandos mais recentes digitados na janela do Command Window. Workspace Window Disponibiliza as informações sobre as variáveis que estão em uso. Current Folder Window Exibe os arquivos presentes no diretório ou pasta atual. Observações: Para digitar um comando, o cursor deve estar posicionado junto ao prompt de comando (>>). Uma vez digitado o comando e pressionado a tecla Enter, o comando é executado. Contudo, somente o último comando é executado. Qualquer comando digitado anteriormente (que pode inclusive estar presente na tela) torna-se inacessível (a menos que seja reescrito novamente). Muitos comandos podem ser digitados na mesma linha. Isto pode ser feito separando- os por vírgulas. Quando a tecla Enter é pressionada, os comandos são executados na ordem em que foram digitados, sucessivamente da esquerda para a direita. Não é possível retornar à última linha exibida, fazer uma correção (edição) e, então, executar o comando novamente, produzindo um resultado na mesma linha. Um comando anteriormente digitado pode ser chamado utilizando-se as teclas de navegação () e (). Assim que o comando desejado for exibido no prompt de comando, é possível modifica-lo (se necessário) e, então, executá-lo. Se um comando for grande demais para uma linha, basta digita reticências (...) e pressionar a tecla Enter para continuar na próxima linha. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 3 Prof. Matheus Cascardo Dicas: Ponto e vírgula (;): se um comando é executado e a tecla ponto e vírgula (;) é pressionada, o resultado é ocultado. Porcentagem (%): esse símbolo representa um comentário e o MATLAB® não executa aquela linha (ou naquele trecho) que está após o símbolo de porcentagem (%). Comando clc: limpa os últimos resultados e comandos exibidos na tela Command Window. Uma vez executado esse comando, uma janela em branco é exibida. Este comando não altera o que foi exibido anteriormente. A janela Command History: lista os comandos que foram digitados no Command Window. Isto inclui os comandos das sessões anteriores. Um comando presente na tela do Command History pode ser executado novamente, bastante copiá-lo e colá-lo. A lista de comandos podem ser apagadas clicando na opção Delete Selection. 1.2 Operações Aritméticas com Escalares Os números podem ser usados diretamente em cálculos aritméticos (como em uma calculadora) ou podem ser atribuídos a variáveis a serem utilizadas em cálculos subsequentes. Os símbolos de operações aritméticas são: Tabela 1-2 Tabela com os Operadores Aritméticos Operação Símbolo Exemplo Adição + 5 + 3 Subtração - 5 – 3 Multiplicação * 5 * 3 Divisão à direita / 5 / 3 Divisão à Esquerda \ 5 \ 3 = 3 / 5 Exponenciação ^ 5^3 (ou seja, 5³=125) 1.2.1 Ordem de Precedência O MATLAB® executa os cálculos de acordo com a ordem de precedência mostrada a seguir. Tabela 1-3 Tabela com a Ordem de Precedência Operação Símbolo Exemplo Primeira ( ) Parênteses. Quando ocorrem parênteses aninhados (consecutivos), os parênteses mais interno são executados primeiramente. Segunda ^ Exponenciação Terceira * / \ Multiplicação e Divisão Quarta + - Adição e Subtração MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 4 Prof. Matheus Cascardo 1.2.2 Formato de Exibição dos Dados Numéricos O usuário pode controlar o formato segundo o qual o MATLAB® exibe os dados de saída da tela. O formato padrão é o ponto fixo com 4 dígitos decimais, chamado short. O MATLAB® possui diversos outros formatos para dados numéricos apresentadosna tabela abaixo: Tabela 1-4 Tabela com os Formatos de Dados Numéricos Comando Descrição Visualização format 04 Casas Decimais 1.2340 format short 04 Casas Decimais 1.2340 format long 14 Casas Decimais 1.23400000000000 format short g 04 Casas Decimais sem Zeros 1.2340 format long g 14 Casas Decimais sem Zeros 1.2340 format hex Hexadecimal 3ff3be76c8b43958 format bank 02 Casas Decimais 1.23 format rat Fração 617/500 1.2.3 Funções Matemáticas Elementares Nativas do MATLAB® Adicionalmente às operações matemáticas básicas, as expressões no MATLAB® podem incluir funções matemáticas. O MATLAB® possui uma extensa biblioteca de funções já implementadas, também chamadas de funções nativas. Uma função é caracterizada por um nome e um argumento entre parênteses. Tabela 1-5 Tabela com as Funções Matemáticas Elementares Função Descrição Exemplo sqrt(x) Raiz Quadrada >> sqrt(81) ans = 9 exp(x) Exponencial >> exp(5) ans = 148.4132 abs(x) Valor Absoluto (Módulo) >> abs(-30) ans = 30 log(x) Logaritmo Natural (ln) ou Logaritmo na Base e >> log(1000) ans = 6.9078 log10(x) Logaritmo na Base 10 >> log10(1000) ans = 3 factorial(x) Fatorial de x(x!) (x deve ser um inteiro pos.) >> factorial(5) ans = 120 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 5 Prof. Matheus Cascardo Tabela 1-6 Tabela com as Funções Trigonométricas Função Descrição Exemplo sin(x) sind(x) Seno do ângulo x (x em radianos) Seno do ângulo x (x em graus) >> sin(pi/6) ans = 0.5000 cos(x) cosd(x) Cosseno do ângulo x (x em radianos) Cosseno do ângulo x (x em graus) >> cos(pi/6) ans = 0.8660 tan(x) tand(x) Tangente do ângulo x (x em radianos) Tangente do ângulo x (x em graus) >> tan(pi/6) ans = 0.5774 cot(x) cotd(x) Cotangente do ângulo x (x em radianos) Cotangente do ângulo x (x em graus) >> cotd(30) ans = 1.7321 Importante: As funções trigonométricas inversas são: asin(x), acos(x), atan(x) e acot(x) para os ângulos em radianos; asind(x), acosd(x), atand(x) e acotd(x) para os ângulos em graus. As funções trigonométricas hiperbólicas são: sinh(x), cosh(x), tanh(x) e coth(x). Tabela 1-7 Tabela de arredondamento Função Descrição Exemplo round(x) Arredonda para o inteiro mais próximo. >> round(17/5) ans = 3 fix(x) Arredonda para o inteiro na direção do zero. >> fix(13/5) ans = 2 ceil(x) Arredonda para o inteiro na de +∞. >> ceil(11/5) ans = 3 floor(x) Arredonda para o inteiro na de -∞. >> floor(-9/4) ans = -3 rem(x,y) Retorna o resta da divisão de x por y >> rem(13,5) ans = 3 sign(x) Função sinal. Retorna 1 (se x > 0); 1 (se x < 0) e 0 (se x = 0). >> sign(-5) ans = -1 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 6 Prof. Matheus Cascardo 1.3 Declarando Variáveis Escalares Uma variável escalar no MATLAB® é um nome formado por uma letra ou uma cadeira de letras (e números) a qual é atribuído um valor. Uma vez atribuído um valor numérico à variável, podemos usá-las em expressões matemáticas, em funções e em qualquer sentença ou comando MATLAB®. Tecnicamente uma variável é um espaço de memória reservado para armazenar certo tipo de dado e tendo um nome para referenciar seu conteúdo. Quando uma variável é declarada, o MATLAB® aloca um espaço de memória onde o conteúdo daquela variável é armazenado. Quando a variável é utilizada, seu conteúdo (dado armazenado) é automaticamente passado ao comando ou à sentença que fará uso dela. Se um novo valor é atribuído à variável, o conteúdo da posição de memória é substituído. 1.3.1 Operador de Atribuição No MATLAB®, o sinal de igualdade (=) é denominado operador de atribuição. O operador de atribuição inicializa ou modifica o valor de uma variável. Importante: O lado esquerdo do operador de atribuição pode conter apenas um nome de variável. O lado direito pode ser um número ou uma expressão numérica, possuindo números e/ou variáveis previamente inicializadas. Quando a tecla Enter é pressionada, o valor numérico à direita do operador é atribuído à variável no lado esquerdo e o MATLAB® exibe a variável com seu respectivo valor nas duas próximas linhas. Os exemplos a seguir mostram como o operador de atribuição é utilizado: >> x = 15 x = 15 >> x = 3 * x - 12 x = 33 >> Nome_variável = Valor numérico ou uma expressão numérica O número 15 foi atribuído à variável x. O MATLAB® exibe a variável e o valor atribuído. Um novo valor é atribuído à variável x. O novo valor é 3 vezes o valor anterior de x menos 12. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 7 Prof. Matheus Cascardo A utilização de variáveis previamente declaradas para definir uma nova variável é demonstrada a seguir: >> a = 12 a = 12 >> B = 4 B = 4 >> C = (a - B) + 40 - a / B * 10; >> C C = 18 >> Uma variável pode ter o seu conteúdo modificado. Por exemplo: >> ABB = 72; >> ABB = 9; >> ABB B = 9 >> Uma vez declarada uma variável, ela pode ser utilizada como argumento de funções. Por exemplo: >> x = 0.75; >> E = sin(x)^2 + cos(x)^2 E = 1 >> O valor numérico 12 é atribuído à variável a. O valor numérico 4 é atribuído à variável B. O valor da expressão numérica à direita do sinal = é atribuído à variável C. O valor da variável C é exibido quando o nome da variável é digitado (e pressionado a tecla Enter. O valor numérico 72 é atribuído à variável ABB. O valor atual da variável é exibido quando o nome da variável é digitado e a tecla Enter é pressionada. O novo valor numérico (no caso 9) é atribuído à variável ABB. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 8 Prof. Matheus Cascardo 1.3.2 Regras quanto ao Uso de Nomes de Variáveis Uma variável no MATLAB® pode ser nomeada de acordo com as seguintes regras: Deve iniciar com uma letra. Pode conter até 63 caracteres. Pode conter letras, dígitos e o caractere traço abaixo ou underline (_). Não pode conter caracteres de pontuação (por exemplo, ponto, vírgula, ponto e vírgula). O MATLAB® é case sensitive, ou seja, faz distinção entre nomes de variáveis maiúsculas e minúsculas. Por exemplo, AA, Aa, e aa são nomes de quatro variáveis diferentes. Não são permitidos espaços entre os caracteres (utilize underline quando o espaço é necessário). Evite usar nome de funções nativas do MATLAB® como variáveis. Se isso ocorrer, a função não poderá mais ser usada. 1.3.3 Variáveis Predefinidas e Palavras-chave Há 20 (vinte) palavras, chamadas de palavras-chave, reservadas pelo MATLAB® para vários propósitos e que não podem ser usadas como nome de variáveis. Essas palavras são: break case catch classdef continue else elseif end for function global if otherwise parfor persistent return spmd switch try while Quando digitadas, essas palavras aparecem em azul. Uma mensagem de erro é exibida se o usuário tentar utilizar como variável. Você pode digitar iskeyword e pressionar Enter para visualizar na tela do Command Window. Existem também certas variáveis que, ao inicializar o MATLAB®,são automaticamente carregadas na memória. Algumas dessas variáveis predefinidas são: ans Variável que assume o valor da última expressão não atribuída a uma variável específica. Se o usuário não atribui o valor de uma expressão a uma variável, o MATLAB® armazena, automaticamente esse resultado em ans. pi O número de . eps A menor diferença entre dois números. inf Infinito i Definido como √−1, que é: 0 + 1,0000i. j O mesmo que i. NaN Abreviação de Not-a-Number. Usado quando o MATLAB não pode determinar um valor numérico válido. Por exemplo: 0/0. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 9 Prof. Matheus Cascardo 1.4 Comando Úteis no Manuseio de Variáveis A seguir são mostrados alguns comandos usados para eliminar variáveis ou para ter informação a respeito das variáveis declaradas dentro de uma sessão do MATLAB®. Tabela 1-8 Tabela de Comandos Úteis Função Descrição Clear Apaga todas as variáveis da memória. clear x y z Apaga somente as variáveis x, y e z da memória. Who Exibe uma lista de variáveis declaradas/ativas na memória. Whos Exibe uma lista de variáveis declaradas/ativas na memória, com o respectivo tamanho e informação sobre seus bytes e classe. 1.5 Script Files No script (roteiro) é criado uma lista de comandos (programas), onde são salvos e em seguida podem ser executados. 1.5.1 Informações sobre os Scripts Files Um script é uma sequência de comandos do MATLAB®, sendo também chamado de programa. Quando um programa é executado, o MATLAB® executa os comandos na ordem em que eles foram escritos, de modo similar a se cada comando fosse digitado no Command Window. Quando um programa tem um comando que gera uma saída (por exemplo, a atribuição de um valor para uma variável sem um ponto e vírgula no fim), a saída é exibida no Command Window. A utilização de scripts é bastante conveniente, pois eles podem ser editados (corrigidos e/ou modificados) e executados inúmeras vezes. Os scripts podem ser digitados e editados em qualquer editor de texto e, após, colados no editor do MATLAB®. Os scripts files são chamados de M-files devido à extensão .m usada quando eles são salvos. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 10 Prof. Matheus Cascardo 1.6 Exercícios Propostos Problema Exemplo 1-6-1: Identidade Trigonométrica Uma identidade trigonométrica é dada por: cos2 𝑥 2 = tan 𝑥 + sen 𝑥 2 tan 𝑥 Substituindo 𝑥 = 𝜋 5 , verifique a identidade calculando cada lado da equação. Solução O problema é solucionado digitando os seguintes comandos na Command Window. >> >> x = pi / 5; % Declara e inicializa a variável x >> LE = cos(x/2)^2 % Calcula o lado esquerdo (LE) da identidade LE = 0.9045 >> >> LD = (tan(x)+sin(x))/(2*tan(x)) % Calcula o lado esquerdo (LD) % da identidade LD = 0.9045 >> MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 11 Prof. Matheus Cascardo Exercícios Propostos 1-6-1: Identidade Trigonométricas 1.) Duas identidades trigonométricas são dadas por: a. sin 4𝑥 = 4 sin 𝑥 cos 𝑥 − 8 sin³ 𝑥 cos 𝑥 b. cos 2𝑥 = 1−tan² 𝑥 1+tan² 𝑥 Para os dois itens acima, verifique a identidade calculando os lados direito e esquerdo da equação, substituindo 𝑥 = 𝜋 9 . 2.) Duas identidades trigonométricas são dadas por: a. tan 4𝑥 = 4 tan 𝑥−4 tan³ 𝑥 1−6 tan2 𝑥+tan4 𝑥 b. sin³ 𝑥 = 1 4 (3 sin 𝑥 − sin 3𝑥) Para os dois itens acima, verifique a identidade calculando os lados direito e esquerdo da equação, substituindo 𝑥 = 12°. 3.) Defina duas variáveis: 𝑎𝑙𝑝ℎ𝑎 = 5𝜋 8 e 𝑏𝑒𝑡𝑎 = 𝜋 8 . Utilizando essas variáveis, verifique a identidade trigonométrica a seguir calculando os lados direito e esquerdo da equação: sin 𝛼 cos 𝛽 = 1 2 [sin(𝛼 − 𝛽) + sin(𝛼 + 𝛽)] MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 12 Prof. Matheus Cascardo Exercícios Propostos 1-6-2: Lista Complementar 1.) O perímetro P de uma elipse com semieixos a = 9 cm e b = 3 é dado aproximadamente por: 𝑃 = 2𝜋√ 1 2 (𝑎2 + 𝑏2) 2.) Defina as variáveis a, b, c e d como: 𝑎 = 13; 𝑏 = 4.2; 𝑐 = 4𝑏 𝑎 ; 𝑑 = 𝑎𝑏𝑐 𝑎+𝑏+𝑐 . Em seguida, determine: a. 𝑎 𝑏 𝑐+𝑑 + 𝑑 𝑐 ∗ 𝑎 𝑏 − (𝑎 − 𝑏2) ∗ (𝑐 + 𝑑) b. √𝑎2+𝑏2 (𝑑−𝑐) + (𝑏2 − 𝑎−3 + 𝑐−4 − 𝑑−5) 3.) O comprimento s do arco do segmento parabólico BOC é dado por: 𝑠 = 1 2 √𝑏2 + 16 ∗ 𝑎2 + 𝑏2 8𝑎 ∗ log ( 4𝑎 + √𝑏2 + 16𝑎2 𝑏 ) Calcule o comprimento do arco de parábola com a = 12 cm e b = 8 cm. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 13 Prof. Matheus Cascardo Problema Exemplo 1-6-3: Geometria e Trigonometria Relembrando a equação da lei dos cossenos: 𝑏2 = 𝑎2 + 𝑐2 − 2 . 𝑎 . 𝑐 . cos 𝛽 Quatro círculos estão dispostos como mostra a figura. Os círculos tangenciam-se dois a dois num determinado ponto. Sabendo disto, determine a distância entre os centros C2 e C4. Os raios dos círculos são: 𝑅1 = 16𝑚𝑚, 𝑅2 = 6,5𝑚𝑚, 𝑅3 = 12𝑚𝑚 e 𝑅4 = 9,5𝑚𝑚. Solução As retas que ligam os centros geram quatro triângulos. Em dois triângulos, ∆𝐶1𝐶2𝐶3 e ∆𝐶1𝐶2𝐶4, os comprimentos de todos os lados são conhecidos. Essa informação é usada para calcular os ângulos 𝛾1 e 𝛾2, através da lei dos cossenos. Por exemplo, 𝛾1 é calculado a partir de: (𝐶2𝐶3) 2 = (𝐶1𝐶2) 2 + (𝐶1𝐶3) 2 − 2(𝐶1𝐶2)(𝐶1𝐶3) cos 𝛾1 Em seguida o comprimento do lado 𝐶2𝐶4 é calculado tomando- se como base o triângulo ∆𝐶1𝐶2𝐶4. Para tanto, basta usar novamente a lei dos cossenos (os comprimentos dos lados 𝐶1𝐶2 e 𝐶1𝐶4 são conhecidos e o ângulo 𝛾3 é a soma dos ângulos 𝛾1 e 𝛾2). O problema é solucionado escrevendo o seguinte programa: % Solução do Problema Exemplo 1-6-2. r1 = 16; r2=6.5; r3=12; r4=9.5; % Declara e inicializa as variáveis R's. c1c2 = r1+r2; c1c3= r1+r3; c1c4=r1+r4; c2c3=r2+r3; c3c4=r3+r4; % Calcula os comprimentos dos lados. Gama1 = acos((c1c2^2+c1c3^2-c2c3^2)/(2*c1c2*c1c3)); Gama2 = acos((c1c3^2+c1c4^2-c3c4^2)/(2*c1c3*c1c4)); Gama3 = Gama1 + Gama2; % Calcula os ângulos. c2c4 = sqrt(c1c2^2+c1c4^2-2*c1c2*c1c4*cos(Gama3)) % Calcula o comprimento do lado C2C4 Quando o programa é executado, o resultado a seguir (o valor da variável c2c4) é exibido no Command Window: c2c4 = 33.5051 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 14 Prof. Matheus Cascardo Exercícios Propostos 1-6-2: Geometria e Trigonometria 1.) Para o triângulo ilustrado na figura 𝑎 = 5𝑐𝑚, 𝑏 = 7𝑐𝑚 e 𝛾 = 25°. Defina 𝑎, 𝑏 e 𝛾 como variáveis e então: a. Calcule o comprimento de 𝑐 substituindo as variáveis na Lei dos Cossenos. (Lei dos Cossenos: 𝑐2 = 𝑎2 + 𝑏2 − 2 𝑎 𝑏 cos 𝛾) b. Calcule os ângulos 𝛼 e β (em graus) utilizando a Lei dos Senos. c. Verifique se a Lei das Tangentes substituindo os resultados do item anterior (b) dos lados direito e esquerdo da equação a seguir: 𝑎 − 𝑏 𝑎 + 𝑏 = tan [ 1 2 (𝛼 − 𝛽)] tan [ 1 2 (𝛼 + 𝛽)] 2.) No triângulo retângulo ilustrado na figura 𝑎 = 16𝑐𝑚 e 𝑐 = 50𝑐𝑚. Defina 𝑎 e 𝑐 como variáveis e então: a. Usando o Teorema de Pitágoras, calcule 𝑏. b. Usando o valor de𝑏 calculado no item anterior (a) e a função acosd, calcule o ângulo 𝛼 em graus. 3.) Para o triângulo ilustrado na figura 𝑎 = 200𝑚𝑚, 𝑏 = 250𝑚𝑚 e 𝑐 = 300𝑚𝑚. Defina 𝑎, 𝑏 e 𝑐 como variáveis e então: a. Calcule o ângulo 𝛾 (em graus) substituindo as variáveis na Lei dos Cossenos. (Lei dos Cossenos: 𝑐2 = 𝑎2 + 𝑏2 − 2 𝑎 𝑏 cos 𝛾) b. Calcule o raio 𝑟 do círculo inscrito ao triângulo utilizando a fórmula: 𝑟 = 1 2 (𝑎 + 𝑏 − 𝑐) tan( 1 2 𝛾) c. Calcule o raio 𝑟 do círculo inscrito ao triângulo utilizando a fórmula: 𝑟 = √𝑠(𝑠 − 𝑎)(𝑠 − 𝑏)(𝑠 − 𝑐) 𝑠 Onde 𝑠 = 1 2 (𝑎 + 𝑏 + 𝑐). A B C b c a 𝛾 𝛼 𝛽 c b a 𝛼 𝛼 a c b 𝛽 𝛾 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 15 Prof. Matheus Cascardo 2 Criando Arranjos Um arranjo é uma lista de números organizados em linhas e/ou colunas. O arranjo mais simples (unidimensional) é formado por uma linha ou por uma coluna de números, ao passo que um arranjo mais complexo (por exemplo, bidimensional) é uma coleção de números organizados em linhas e colunas. Na engenharia arranjos unidimensionais geralmente representam os vetores, e os arranjos bidimensionais representam as matrizes. 2.1 Criando um Arranjo Unidimensional (Vetor) Um arranjo unidimensional é uma lista de números dispostos em uma linha ou coluna. Um exemplo de arranjo unidimensional é a representação da posição de um ponto no espaço tridimensional no sistema de coordenadas cartesianas. De acordo com a Figura 2.1, a posição do ponto A é definida por uma lista de três números 2, 4 e 5, que são essencialmente, as coordenadas do ponto no espaço em relação à origem do sistema de coordenadas. A posição do ponto A pode ser expressa em termos de um vetor posição: 𝑟𝐴 = 2𝒊 + 4𝒋 + 5𝒌 Onde i, j e k são valores unitários nas dimensões x, y e z, respectivamente. Os números podem ser utilizados para definir um vetor linha ou um vetor coluna. Qualquer lista de números pode ser tratada como um vetor. Por exemplo, a Tabela 2.1 representa dados sobre o crescimento populacional que podem ser utilizadas para criar duas listas de números; uma de anos e outra de população em si. Cada lista pode ser visualizada como elementos em um vetor com os números colocados em uma linha ou em uma coluna. Ano 1984 1986 1988 1990 1992 1994 1996 População (milhões) 127 130 136 145 158 178 211 Criando um vetor a partir de uma lista de números conhecidos O vetor é criado digitando os elementos (números) dentro de colchetes []. Vetor linha: Para criar um vetor linha, digite os elementos dentro dos colchetes separando-os com um espaço ou uma vírgula. Vetor coluna: Para criar um vetor coluna, digite os elementos dento dos colchetes a partir do colchete esquerdo [. Então, digite os elementos separando-os por ponto e vírgula (;) ou pressionando Enter após cada elemento. Por fim, digite o colchete direito ] para terminar a criação do vetor coluna. Nome_variavel = [Digite o número de elementos] MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 16 Prof. Matheus Cascardo Veja abaixo os comandos usados para criar a Tabela 2.1 e o exemplo das coordenadas cartesianas: >> ano = [1984 1986 1988 1990 1992 1994 1996] ano = 1984 1986 1988 1990 1992 1994 1996 >> pop = [127; 130; 136; 145; 158; 178; 211] pop = 127 130 136 145 158 178 211 >> pntAH = [2, 4, 5] pntAH = 2 4 5 >> pntAV = [2 4 5] pntAV = 2 4 5 Criando um vetor com elementos espaçados de um fator constante Neste tipo de vetor, os elementos possuem a mesma separação entre si. Por exemplo, no vetor v = 2 4 6 8 10, o espaçamento (incremento) entre os elementos é 2. Um vetor cujo o primeiro elemento é m, o espaçamento é q e o último termo é n, pode ser criado digitando- se: ou A lista de anos é atribuída ao vetor linha nomeado ano Os dados populacionais são atribuídos ao vetor coluna nomeado pop As coordenadas do ponto A são atribuídas ao vetor linha chamado pntAH As coordenadas do ponto A são atribuídas ao vetor coluna chamado pntAV . (a tecla Enter é pressionada após a digitação de cada elemento). Nome_variavel = [m:q:n] Nome_variavel = m:q:n Os colchetes são opcionais neste caso MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 17 Prof. Matheus Cascardo Alguns Exemplos: %Primeiro elemento 1, espaçamento 2, último termo 13 %Primeiro elemento 1.5, espaçamento 0.1, último elemento 2.1 % Primeiro elemento -3, último termo 7. No caso de omissão, considera-se 1 o valor do espaçamento >> x = [1:2:13] %Primeiro elemento 1, espaçamento 2, último termo 13 x = 1 3 5 7 9 11 13 >> y = [1.5:0.1:2.1] %Primeiro elemento 1.5, espaçamento 0.1, último elemento 2.1 y = 1.50 1.60 1.70 1.80 1.90 2.00 2.10 >> z = [-3:7] % Primeiro elemento -3, último termo 7. No caso de omissão, considera-se 1 o valor do espaçamento z = -3 -2 -1 0 1 2 3 4 5 6 7 Criando um vetor com espaçamento linear especificando o primeiro e o último termos e o número de termos: Um vetor com n elementos que são linearmente (igualmente) espaçados no qual o primeiro elemento xi e o último elemento xf pode ser criado através do comando linspace (O MATLAB determina o espaçamento correto): Nome_variavel = linspace(xi, xf, n) Primeiro elemento Último elemento Número de elementos MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 18 Prof. Matheus Cascardo Quando o número de elementos é omitido, assume-se como default 100. Alguns exemplos: % 6 elementos, sendo o primeiro 0 e o último 8 % 11 elementos, sendo o primeiro 30 e o último 10 % Primeiro elemento 49.5 e o último 0.5 va = linspace(0,8,6) % 6 elementos, sendo o primeiro 0 e o último 8 va = 0 1.6000 3.2000 4.8000 6.4000 8.0000 vb = linspace(30,10,11) % 11 elementos, sendo o primeiro 30 e o último 10 vb = 30 28 26 24 22 20 18 16 14 12 10 u = linspace(49.5,0.5) % Primeiro elemento 49.5 e o último 0.5 u = Columns 1 through 10 49.5000 49.0051 48.5101 48.0152 47.5202 47.0253 46.5303 46.0354 45.5404 45.0455 ... Columns 91 through 100 4.9545 4.4596 3.9646 3.4697 2.9747 2.4798 1.9848 1.4899 0.9949 0.5000 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 19 Prof. Matheus Cascardo 2.2 Exercícios Propostos Exercícios Propostos 2.2.1: Arranjos Unidimensionais (Vetores) 1. Crie um vetor linha (x) contendo os seguintes elementos: 3; 4 ∙ 2,55; 68 16 ; 45 ; √110; 𝑐𝑜𝑠25º ; 0,05 2. Crie um vetor linha (x) contendo os seguintes elementos: 54 3 + 4,22 ; 32; 6,32 − 7,22; 54; 𝑒3,7; 𝑠𝑒𝑛66° + 𝑐𝑜𝑠 3𝜋 8 3. Crie um vetor linha (x) contendo os seguintes elementos: 32 3,22 ; 𝑠𝑒𝑛235°; 6,1; 𝑙𝑛292; 0,00552; 𝑙𝑛229; 133 4. Defina as variáveis 𝑥 = 0,85 e 𝑦 = 12,5 e então as use para criar um vetor coluna (a) que tem os seguintes termos: 𝑦, 𝑦2, ln ( 𝑦 𝑥 ) , 𝑦 ∙ 𝑥, 𝑥 + 𝑦 5. Defina as variáveis 𝑎 = 3,5 e 𝑏 = −6,4 e então as use para criarum vetor coluna (x) que tem os seguintes termos: 𝑎, 𝑎2, 𝑎 𝑏 , 𝑎 ∙ 𝑏, √𝑎 6. Crie um vetor linha (x) no qual o primeiro elemento é 2 e o último elemento é 37, com um incremento de 5 entre os elementos (2, 7, 12, ..., 37). 7. Crie um vetor (x) com 9 elementos igualmente espaçados no qual o primeiro elemento é 81 e o último elemento é 12. 8. Duas identidades trigonométricas são dadas por: a. sin 4𝑥 = 4 sin 𝑥 cos 𝑥 − 8 sin³ 𝑥 cos 𝑥 b. cos 2𝑥 = 1−tan² 𝑥 1+tan² 𝑥 Para os dois itens acima, verifique a identidade calculando os lados direito e esquerdo da equação, substituindo 𝑥 = 𝜋 9 . Dê a resposta em um vetor linha, sendo o primeiro elemento o lado esquerdo e o segundo elemento o lado direito da equação. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 20 Prof. Matheus Cascardo 2.2 Exercícios Propostos Exercícios Propostos 2.2.2: Lista Complementar 1. Calcule as equações abaixo: a) (𝟏𝟒,𝟖𝟐+𝟔,𝟓𝟐) 𝟑,𝟖𝟐+𝟓.𝟐 + 𝟓𝟓 √𝟐+𝟏𝟒 b) (−𝟑, 𝟓)𝟐 + 𝒆𝟔 𝒍𝒏𝟓𝟐𝟒 + 𝟐𝟎𝟔 𝟏 𝟑 c) 𝟏𝟔,𝟓𝟐(𝟖,𝟒−√𝟕𝟎) 𝟒,𝟑𝟐−𝟏𝟕,𝟑 d) 𝟓,𝟐𝟑−𝟔,𝟒𝟐+𝟑 𝟏,𝟔𝟖−𝟐+𝟏 + ( 𝟏𝟑 𝟓 ) 𝟏,𝟓 e) 𝒕𝒂𝒏𝟔𝟒° 𝒄𝒐𝒔𝟐𝟏𝟒° − 𝟑𝒔𝒆𝒏𝟖𝟎° √𝟎,𝟗 + 𝒄𝒐𝒔𝟓𝟓° 𝒔𝒆𝒏𝟏𝟏° f) 𝒔𝒆𝒏( 𝟕𝝅 𝟗 ) 𝒄𝒐𝒔𝟐( 𝟓 𝟕 𝝅) + 𝟏 𝟕 𝒕𝒂𝒏( 𝟓 𝟏𝟐 𝝅) Utilizando os resultados do exercício anterior, crie os vetores abaixo: 2. Crie um vetor linha (x) contendo os seguintes elementos: 3𝑎 − 𝑏; 4𝑐2; 𝑓 𝑐 ; cos(𝑐) ; √𝑏2 + 𝑎2 + 𝑑2; 𝑎 − 𝑏 − 𝑐 + 𝑑 ; 𝑓 3. Crie um vetor coluna (x) contendo os seguintes elementos: 𝑑2 𝑎 + 𝑐2 ; sin(𝑎) ; 𝑓2 − 𝑐2; 𝑏 4. Defina a variável x como x = 2,34 e então determine: a) 𝟐𝒙𝟒 − 𝟔𝒙𝟑 + 𝟏𝟒, 𝟖𝒙𝟐 + 𝟗, 𝟖 b) 𝒆𝟐𝒙 √𝟏𝟒+𝒙𝟐−𝒙 5. Defina as variáveis x e y como x = 8,3 e y = 2,4 e então determine: a) 𝒙𝟐 + 𝒚𝟐 − 𝒙𝟐 𝒚𝟐 b) √𝒙𝒚 − √𝒙 + 𝒚 + ( 𝒙−𝒚 𝒙−𝟐𝒚 ) 𝟐 − √ 𝒙 𝒚 6. Duas identidades trigonométricas são dadas por: a. cot 𝑥 = cos 𝑥 sin 𝑥 , 𝑜𝑛𝑑𝑒 𝑥 = 𝜋 7 b. cos(𝑎 − 𝑏) = cos(𝑎) ∗ cos(𝑏) + sin(𝑎) ∗ sin(𝑏) , 𝑜𝑛𝑑𝑒 𝑎 = 𝜋 3 ; 𝑏 = 𝜋 6 Para os dois itens acima, informe a resposta por vetor. 7. Duas identidades trigonométricas são dadas por: a. tan 𝑥 2 = 1−cos 𝑥 sin 𝑥 = sin 𝑥 1+cos 𝑥 , 𝑜𝑛𝑑𝑒 𝑥 = 𝜋 5 b. sin 𝑥 − sin 𝑦 = 2 sin ( 𝑥−𝑦 2 ) ∗ sin ( 𝑥+𝑦 2 ) , 𝑜𝑛𝑑𝑒 𝑥 = 3𝜋 𝑒 𝑦 = 4 3 𝜋 Para os dois itens acima, informe a resposta por vetor. 8. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 21 Prof. Matheus Cascardo 3 Operações Matemáticas com Arranjos O MATLAB foi desenvolvido para realizar operações matemáticas avançadas com arranjos, e isto inclui arranjos bastante genéricos, que aparecem frequentemente em muitas aplicações nas engenharias e em outros campos das ciências exatas. Este capítulo apresenta as operações matemáticas básicas que o MATLAB realiza manipulando arranjos. As operações de adição e subtração são relativamente simples. As demais operações básicas (multiplicação, divisão e Exponenciação) podem ser realizadas no MATLAB de dois modos diferentes. O modo mais elementar de realizar essas operações utiliza os símbolos padronizados (*, / e ^) e segue as regras operacionais da álgebra linear. O Segundo modo se refere às operações escalares entre os elementos de dois ou mais arranjos (também chamadas de operações elemento por elemento), onde neste tipo de operação utilizamos os símbolos .*, ./ e .^ (um ponto deve ser digitado antes do símbolo padrão da operação). Para ambos os modos o MATLAB possui os operadores de à esquerda (.\ ou \). 3.1 Adição e Subtração As operações de adição (+) e subtração (–) são realizadas apenas com matrizes de mesmo tamanho ou mesma dimensão. A soma ou a diferença entre duas matrizes é obtida adicionando-se ou subtraindo-se, respectivamente, os elementos nas posições correspondentes nas matrizes. Em geral, se A e B são duas matrizes, por exemplo, matrizes 2x3, 𝐴 = [ 𝐴11 𝐴12 𝐴13 𝐴21 𝐴22 𝐴23 ] 𝑒 𝐵 = [ 𝐵11 𝐵12 𝐵13 𝐵21 𝐵22 𝐵23 ] Segue que a matriz resultante da adição de A + B é: [ (𝐴11 + 𝐵11) (𝐴12 + 𝐵12) (𝐴13 + 𝐵13) (𝐴21 + 𝐵21) (𝐴22 + 𝐵22) (𝐴23 + 𝐵23) ] MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 22 Prof. Matheus Cascardo Exemplos: VectA=[8 5 4]; VectB=[10 2 7]; % Define dois vetores VectC = VectA + VectB % Define um vetor VectC que é igual % soma dos dois vetores VectC = 18 7 11 A=[5 -3 8; 9 2 10],B=[10 7 4;-11 15 1] % Define duas matrizes A e B de 2x3 A = 5 -3 8 9 2 10 B = 10 7 4 -11 15 1 A-B % Subtrai a matriz B da matriz A ans = -5 -10 4 20 -13 9 C = A + B % Define uma matriz C que é igual a A + B C = 15 4 12 -2 17 11 VectA+A % Tentando adicionar matrizes de dimensões diferentes Error using + Matrix dimensions must agree. % Uma mensagem de erro é exibida Quando um escalar (número) é adicionado ou subtraído a uma matriz, cada elemento da matriz é adicionado ou subtraído desse número. Exemplos: VectA = [ 1 5 8 -10 2] % Define um vetor linha nomeado de VectA VectA = 1 5 8 -10 2 VectA + 4 % Adiciona o escalar 4 ao vetor VectA ans = 5 9 12 -6 6 % O valor 4 é adicionado ao VectA MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 23 Prof. Matheus Cascardo 3.2 Multiplicação de arranjos A operação de multiplicação (*) é executada pelo MATLAB de acordo com as regras de álgebra linear. Significa que, se A e B são duas matrizes, a operação A*B tem sentido se, somente se, o número de colunas da matriz A for igual ao número de linhas da matriz B. O resultado é uma matriz que possui o mesmo número de linhas de A e o mesmo número de colunas de B. Por exemplo, se A for uma matriz 4x3 e B uma matriz 3x2: 𝐴 = [ 𝐴11 𝐴12 𝐴13 𝐴21 𝐴22 𝐴23 𝐴31 𝐴32 𝐴33 𝐴41 𝐴42 𝐴43 ] 𝑒 𝐵 = [ 𝐵11 𝐵12 𝐵21 𝐵22 𝐵31 𝐵32 ] Então, a matriz obtida da operação A*B possui dimensão 4x2 e os elementos são: [ (𝐴11𝐵11 + 𝐴12𝐵21 + 𝐴13𝐵31) (𝐴11𝐵12 + 𝐴12𝐵22 + 𝐴13𝐵32) (𝐴21𝐵11 + 𝐴22𝐵21 + 𝐴23𝐵31) (𝐴21𝐵12 + 𝐴22𝐵22 + 𝐴23𝐵32) (𝐴31𝐵11 + 𝐴32𝐵21 + 𝐴33𝐵31) (𝐴31𝐵12 + 𝐴32𝐵22 + 𝐴33𝐵32) (𝐴41𝐵11 + 𝐴42𝐵21 + 𝐴43𝐵31) (𝐴41𝐵12 + 𝐴42𝐵22 + 𝐴43𝐵32) ] Um exemplo numérico é: [ 1 4 3 2 6 1 5 2 8 ] [ 5 4 1 3 2 6 ] = [ (1𝑥5 + 4𝑥1 + 3𝑥2) (1𝑥4 + 4𝑥3 + 3𝑥6) (2𝑥5 + 6𝑥1 + 1𝑥2) (2𝑥4 + 6𝑥3 + 1𝑥6) (5𝑥5 + 2𝑥1 + 8𝑥2) (5𝑥4 + 2𝑥3 + 8𝑥6) ] = [ 15 34 18 32 43 74 ] O resultado da multiplicação de duas matrizes quadradas é outra matriz quadrada do mesmo tamanho (dimensão) das matrizes originais. Contudo, a multiplicação das matrizes não obedece à propriedade comutativa. Significa que, se A e B são matrizes n x n, em geral, 𝐴 ∗ 𝐵 ≠ 𝐵 ∗ 𝐴. Além disto, a operação de potenciação somente pode ser executada com matrizes quadradas (linha x coluna). Dois vetores podem ser multiplicados um pelo outro somente se possuírem o mesmo número de elementos e se um vetor é linha e o outro um vetor coluna. O resultado da multiplicação de um vetor linha por um vetor colunaé um arranjo 1 x 1, ou seja, um escalar. Esse é o produto escalar usual de dois vetores. [O MATLAB possui uma função nativa para isso, dot(a,b), que calcula o produto escalar de dois vetores]. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 24 Prof. Matheus Cascardo A multiplicação é demonstrada abaixo: > A = [1 4 2; 5 7 3; 9 1 6; 4 2 8] % Define uma matriz A 4x3 A = 1 4 2 5 7 3 9 1 6 4 2 8 B = [6 1; 2 5; 7 3] % Define uma matriz B 3x2 B = 6 1 2 5 7 3 C = A * B C = 28 27 65 49 98 32 84 38 D = B * A % Erro por conta das dimensões das matrizes Error using * Inner matrix dimensions must agree. F=[1 3; 5 7], G=[4 2; 1 6] % Define duas matrizes 2x2, F e G F = 1 3 5 7 G = 4 2 1 6 F * G % Executa a multiplicado F*G ans = 7 20 27 52 G * F % Executa a multiplicação G * F ans = 14 26 31 45 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 25 Prof. Matheus Cascardo % Observe que o resultado de F * G é diferente de G * F AV = [2 5 1] % Define um vetor linha com três elementos AV = 2 5 1 BV = [3; 1; 4] % Define um vetor coluna com três elementos BV = 3 1 4 AV * BV % O resultado da multiplicação é escalar. (Produto escalar de dois vetores) ans = 15 BV * AV % O resultado é uma matriz 3x3 ans = 6 15 3 2 5 1 8 20 4 Quando um arranjo é multiplicado por um número, cada elemento do arranjo é multiplicado pelo número (lembre-se que um número é um arranjo 1X1). As regras para a multiplicação de arranjos da álgebra linear fornecem um modo bastante conveniente de escrever um sistema de equações lineares. Por exemplo, o sistema de três equações a três incógnitas: 𝐴11𝑥1+𝐴12𝑥2+𝐴13𝑥3 = 𝐵1 𝐴21𝑥1+𝐴22𝑥2+𝐴23𝑥3 = 𝐵2 𝐴31𝑥1+𝐴32𝑥2+𝐴33𝑥3 = 𝐵3 Pode ser escrito na forma matricial como: [ 𝐴11 𝐴12 𝐴13 𝐴21 𝐴22 𝐴23 𝐴31 𝐴32 𝐴33 ] [ 𝑥1 𝑥2 𝑥3 ] = [ 𝐵1 𝐵2 𝐵3 ] E na notação matricial como: AX = B onde A = [ 𝐴11 𝐴12 𝐴13 𝐴21 𝐴22 𝐴23 𝐴31 𝐴32 𝐴33 ], X = [ 𝑥1 𝑥2 𝑥3 ] e B = [ 𝐵1 𝐵2 𝐵3 ] MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 26 Prof. Matheus Cascardo 3.3 Divisão de Arranjos A divisão de arranjos também está condicionada às regras da álgebra linear. Esta é uma operação ainda mais complexa e, por isso, será dada uma breve explanação sobre o assunto a seguir. Explicações mais completas podem ser encontradas em livros específicos sobre álgebra linear. A operação de divisão pode ser explicada como auxílio da matriz identidade e da matriz inversa. Matriz Identidade A Matriz Identidade é uma matriz quadrada cujos elementos da diagonal principal são unitários (1’s) e os demais elementos são nulos (0’s). Uma matriz identidade pode ser criada no MATLAB através do comando eye. Quando uma matriz ou um vetor e multiplicado pela matriz identidade, o resultado é a própria matriz ou o próprio vetor (a multiplicação deve ser feita de acordo com as regras da álgebra linear). Isto é o equivalente matricial à multiplicação de um escalar por 1. Exemplos: [ 7 3 8 4 11 5 ] [ 1 0 0 0 1 0 0 0 1 ] = [ 7 3 8 4 11 5 ] ou [ 1 0 0 0 1 0 0 0 1 ] [ 8 2 15 ] = [ 8 2 15 ] ou [ 6 2 9 1 8 3 7 4 5 ] [ 1 0 0 0 1 0 0 0 1 ] = [ 6 2 9 1 8 3 7 4 5 ] Se a matriz A for quadrada, não importa a ordem de multiplicação pela matriz identidade I, isto é, à esquerda ou à direita de A: AI = IA = A Inversa de uma matriz A matriz B é a inversa da matriz A se o produto dessas duas matrizes é a matriz identidade (isso supondo que podemos multiplicar as duas matrizes). Ambas as matrizes devem ser quadradas e a multiplicação deve comutar, isto é, a ordem BA ou AB não é importante. BA = AB = I Obviamente, se B é inversa de A, naturalmente A será a inversa de B. Por exemplo: [ 2 1 4 4 1 8 2 −1 3 ] [ 5,5 −3,5 2 2 −1 0 −3 2 1 ] = [ 5,5 −3,5 2 2 −1 0 −3 2 1 ] [ 2 1 4 4 1 8 2 −1 3 ] = [ 1 0 0 0 1 0 0 0 1 ] Tipicamente, a inversa da matriz A é simbolizada por 𝐴−1. No MATLAB, a inversa de A pode ser obtida elevando A à potência -1 ou utilizando a função nativa inv(A). MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 27 Prof. Matheus Cascardo Por exemplo, a multiplicação das matrizes A e B anteriores é mostrada na Comand Windows do MATLAB a seguir: A = [2 1 4;4 1 8; 2 -1 3]; B = inv(A) % Obter o inverso da matriz A B = 5.5000 -3.5000 2.0000 2.0000 -1.0000 0 -3.0000 2.0000 -1.0000 A * B % O resultado será uma matriz identidade ans = 1 0 0 0 1 0 0 0 1 A * A^-1 % Usa a potência para obter a inversa de A. O resultado será uma matriz identidade ans = 1 0 0 0 1 0 0 0 1 Nem toda matriz possui uma matriz inversa. Uma matriz tem inversa se ela é quadrada e possui determinante diferente de zero. Determinantes: Determinante é uma função associada às matrizes quadradas. Uma rápida revisão de determinantes é dada a seguir. Mais detalhes sobre os determinantes podem ser encontrados em livros específicos sobre álgebra linear. O determinante é uma função que associa uma mátria quadrada A à um número, chamado determinante da matriz. Simbolicamente, o determinante de uma matriz A é escrito como det(A) ou |A|. O cálculo do determinante é feito segundo regras especificas. Para uma matriz 2X2, a regra é: |A| = | 𝑎11 𝑎12 𝑎21 𝑎22 | = 𝑎11𝑎22-𝑎12𝑎21, por exemplo, | 6 5 3 9 | = 6 . 9 – 5 . 3 = 39 O MATLAB possui uma função nativa, chamada det, que calcula o determinante das matrizes quadradas. Divisão de Arranjos O MATLAB possui dois tipos de operadores de divisão: operador de divisão à direita (/) e o operador de divisão à esquerda (\). MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 28 Prof. Matheus Cascardo Operador de divisão à esquerda (\): O operador de divisão à esquerda é usado, dentre outras coisas, para resolver a equação matricial AX=B. Nessa equação, X e B são vetores coluna. Ela pode ser resolvida multiplicando-se (à esquerda) ambos os lados da equação pela inversa de A: 𝐴−1 AX = 𝐴−1B O lado esquerdo dessa equação é X uma vez que: 𝐴−1AX = IX = X Então a solução de AX=B é: X = 𝐴−1B No MATLAB, a última equação pode ser escrita utilizando o operador de divisão à esquerda: X = A\B Deve ser que, embora as duas últimas equações produzam o mesmo resultado, o método segundo o qual o MATLAB determina X é diferente do apresentado. Na primeira equação, o MATLAB calcula a inversa de A (isto é 𝐴−1) e a utiliza na multiplicação por B. Na segunda (divisão à esquerda), a solução para X é obtida numericamente através do método de eliminação de Gauss. O método de eliminação de Gauss é mais recomendado na solução de um conjunto de equações lineares, porque o cálculo da inversa pode ser menos preciso que o método de Gauss, quando o sistema de equações é formado por matrizes de dimensão muito elevada.Operador de divisão à direita, /: O operador de divisão à direita é usado para resolver a equação matricial XC=D. Nessa equação, X e D são vetores linha. A equação pode ser resolvida multiplicando ambos os lados da igualdade pela inversa de C: X . C𝐶−1 = D . 𝐶−1 Que fornece: X = D . 𝐶−1 No MATLAB, a última equação pode ser escrita utilizando o operador de divisão à direita: X = D/C O exemplo a seguir ilustra o modo de utilização dos operadores de divisão à esquerda e à direita, além de mostrar como a função nativa inv pode ser utilizada para resolver um sistema de equações lineares. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 29 Prof. Matheus Cascardo Exemplo 1: Solucionando um sistema linear com três equações (divisão de arranjos): Use operações matriciais para resolver o seguinte sistema de equações lineares: 4x – 2y + 6z = 8 2x + 8y + 2z = 4 6x + 10y +3z = 0 Solução Utilizando as regras de álgebra linear mostradas anteriormente, o sistema de equações acima pode ser escrito na forma matricial AX=B ou na forma XC=D [ 4 −2 6 2 8 2 6 10 3 ] [ 𝑥 𝑦 𝑧 ] = [ 8 4 0 ] ou [x y z] [ 4 −2 6 2 8 2 6 10 3 ] = [8 4 0] As soluções para ambas as formas são mostradas a seguir: A = [ 4 -2 6; 2 8 2; 6 10 3]; B = [8; 4; 0]; %Resolvendo a forma AX = B X = A \ B % Resolvendo utilizando a divisão à esquerda X = -1.8049 0.2927 2.6341 Xb = inv(A)*B % Resolvendo utilizando a inversa A: X = A^-1*B Xb = -1.8049 0.2927 2.6341 C = [ 4 2 6; -2 8 10; 6 2 3]; % Resolvendo na forma XC = D D = [8 4 0]; Xc = D/C % Resolvendo a divisão à direita Xc = -1.8049 0.2927 2.6341 Xd = D * inv(C) % Resolvendo pelo inverso Xd = -1.8049 0.2927 2.6341 Xe = D * C^-1 Xe = -1.8049 0.2927 2.6341 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 30 Prof. Matheus Cascardo 3.4 Operações escalares envolvendo elementos de matrizes (operações elemento por elemento) Há muitas situações que requerem operações escalares envolvendo elementos correspondentes em dois ou mais arranjos (vetores ou matrizes). Essas operações são realizadas em cada elemento dos arranjos. A adição e subtração são, por definição, operações elemento por elemento, visto que quando dois arranjos são somados ou subtraídos, a operação é executada com os elementos que ocupam a mesma posição nos arranjos. Estas operações só podem ser realizadas com arranjos de mesma dimensão. As operações escalares de multiplicação, divisão e Exponenciação de matrizes, envolvendo elemento por elemento dos arranjos, são sinalizadas no MATLAB digitando um ponto antes do operador aritmético. Se dois vetores a e b são da forma a= [𝑎1𝑎2𝑎3𝑎4] e b= [𝑏1𝑏2𝑏3𝑏4], então a multiplicação, divisão e exponenciação escalares, envolvendo elementos correspondentes dos dois vetores, resultam: a . *b = [𝑎1𝑏1 𝑎2𝑏2 𝑎3𝑏3 𝑎4𝑏4] a . /b = [𝑎1/𝑏1 𝑎2/𝑏2 𝑎3/𝑏3 𝑎4/𝑏4] a . ^b = [ (𝑎1 𝑏1) (𝑎2 𝑏2) (𝑎3 𝑏3) (𝑎4 𝑏4)] Se duas matrizes A e B são: A = [ 𝐴11 𝐴12 𝐴13 𝐴21 𝐴22 𝐴23 𝐴31 𝐴32 𝐴33 ] e B = [ 𝐵11 𝐵12 𝐵13 𝐵21 𝐵22 𝐵23 𝐵31 𝐵32 𝐵33 ] Então a divisão e multiplicação escalares, elemento por elemento, das duas matrizes fornece: A = [ 𝐴11𝐵11 𝐴12𝐵12 𝐴13𝐵13 𝐴21𝐵21 𝐴22𝐵22 𝐴23𝐵23 𝐴31𝐵31 𝐴32𝐵32 𝐴33𝐵33 ] e A ./ B = [ 𝐴11/𝐵11 𝐴12/𝐵12 𝐴13/𝐵13 𝐴21/𝐵21 𝐴22/𝐵22 𝐴23/𝐵23 𝐴31/𝐵31 𝐴32/𝐵32 𝐴33/𝐵33 ] A exponenciação elemento por elemento da matriz A fornece: A .^n = [ (𝐴11) 𝑛 (𝐴21) 𝑛 (𝐴13) 𝑛 (𝐴21) 𝑛 (𝐴22) 𝑛 (𝐴23) 𝑛 (𝐴31) 𝑛 (𝐴32) 𝑛 (𝐴33) 𝑛 ] MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 31 Prof. Matheus Cascardo A figura abaixo demonstra o uso das operações de multiplicação, divisão e exponenciação escalares (elemento por elemento). A = [2 6 3; 5 8 4]; B = [1 4 10; 3 2 7]; A.*B % Multiplicação escalar elemento por elemento ans = 2 24 30 15 16 28 C = A./B % Divisão escalar elemento por elemento C = 2.0000 1.5000 0.3000 1.6667 4.0000 0.5714 B .^ 3 % Exponenciação. Todos os elementos da serão elevados ao cubo ans = 1 64 1000 27 8 343 A * B % Erro de dimensão Error using * Inner matrix dimensions must agree. Cálculo envolvendo elementos correspondentes em arranjos (operações elemento por elemento) são bastante úteis quando se quer testar múltiplos valores no argumento de uma função ao mesmo tempo. Primeiro é declarado um vetor contendo os possíveis valores da variável independente e, então, esse vetor é usado para gerar um outro vetor contendo os vetores correspondentes da função a ser calculada. Exemplo: x = [1:8] % Cria um vetor linha com 8 elementos x = 1 2 3 4 5 6 7 8 y = x.^2-4*x % O vetor x é usado em uma operação do tipo elemento por elemento para gerar o vetor y y = -3 -4 -3 0 5 12 21 32 No exemplo acima, y=𝑥2-4x. A operação envolvendo elemento por elemento do vetor x é necessária quando é calculado o quadrado de x. Cada elemento no vetor y possui um valor tal que seria obtido substituindo-se o elemento correspondente do vetor x na equação de y. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 32 Prof. Matheus Cascardo Outro exemplo: z = [1:2:11] z = 1 3 5 7 9 11 z = [1:2:11] % Cria um vetor z com 6 elementos z = 1 3 5 7 9 11 y = (z.^3+5*z)./(4*z.^2-10) % % O vetor z é usado em uma operação do tipo elemento por elemento para gerar o vetor y y = -1.0000 1.6154 1.6667 2.0323 2.4650 2.9241 Neste exemplo, 𝑦 = 𝑧3+5𝑧 4𝑧2−10 . As operações escalares (elemento por elemento) são usadas três vezes: para encontrar z³, z² e para dividir o numerador pelo denominador. 3.5 Usando Arranjos em Funções Nativas do MATLAB As funções nativas do MATLAB são escritas de tal forma que, sendo o argumento (entrada) um arranjo, a operação é executada em cada elemento desse arranjo. Por exemplo, se um vetor x com sete elementos é o argumento da função cos(x), o resultado da operação é um vetor com sete elementos, em que cada elemento é o cosseno do elemento correspondente em x. Exemplo: x = [0:pi/6:pi] x = 0 0.5236 1.0472 1.5708 2.0944 2.6180 3.1416 y = cos(x) y = 1.0000 0.8660 0.5000 0.0000 -0.5000 -0.8660 -1.0000 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 33 Prof. Matheus Cascardo 3.6 Funções Nativas para avaliação de arranjos O MATLAB está repleto de funções nativas para cálculos envolvendo arranjos. A tabela a seguir mostra algumas delas: Função Descrição Exemplo mean(A) Se A é um vetor, retorna o valor médio dos elementos do vetor. >> A=[5 9 2 4] >> mean(A) ans = 5 C=max(A) Se A é um vetor, C receberá o maior elemento de A. Se A é uma matriz, C é um vetor linha contendo o maior elemento em cada coluna A. >> A=[5 9 3 4 11 6 11 1] >> C = max(A) ans = 11 [d,n]=max(A) Se A é um vetor, d recebe o maior elemento de A e n indica a posição desseelemento no vetor. >> [d,n]=max(A) d = 11 n = 5 min(A) Semelhante a função max, retorna o menor elemento de A. >> A=[5 9 2 4] >> min(A) ans = 2 [d,n]=min(A) Se A é um vetor, d recebe o menor elemento de A e n indica a posição desse elemento no vetor. >> [d,n]=min(A) d = 11 n = 5 sum(A) Se A é um vetor, retorna a soma médio dos elementos do vetor. >> A=[5 9 2 4] >> sum(A) ans = 20 sort(A) Se A é um vetor, ordena os elementos em ordem crescente. >> A=[5 9 2 4] >> sort(A) ans = 2 4 5 9 median(A) Se A é um vetor, retorna o valor mediano dos elementos do vetor. >> A=[5 9 2 4] >> median(A) ans = 4.5000 std(A) Se A é um vetor, retorna o desvio padrão dos elementos do vetor. >> A=[5 9 2 4] >> std(A) ans = 2.9439 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 34 Prof. Matheus Cascardo det(A) Retorna o determinante da matriz quadrada A. >> A=[2 4; 3 5] >> det(A) ans = -2 dot(a,b) Determina o produto escalar de dois vetores a e b. Os vetores podem ser tanto linhas quanto colunas. >> a=[1 2 3] >> b=[3 4 5] >> dot(a,b) ans = 26 cross(a,b) Determina o produto vetorial de dois vetores a e b (axb). Os dois vetores devem possuir três elementos. >> a=[1 3 2] >> b=[2 4 1] >> cross(a,b) ans = -5 3 -2 inv(A) Retorna a inversa da matriz quadrada A >> A=[2 -21;32 -1] >> inv(A) ans = -0.0015 0.0313 -0.0478 0.0030 MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 35 Prof. Matheus Cascardo 3.7 Exercícios Propostos Exercícios Propostos: Operações com arranjos 1. Para a função 𝑦 = 𝑥3 − 2𝑥2 + 𝑥, calcule o vetor y para os seguintes valores de x utilizando operações elemento por elemento: -2, -1, 0, 1, 2, 3, 4. 2. Para a função 𝑦 = 𝑥2−2 𝑥+4 , calcule o vetor y para os seguintes valores de x utilizando operações elemento por elemento: -2, -1, 0, 1, 2, 3, 4. 3. Para a função 𝑦 = (𝑥−3)(𝑥2+3) 𝑥2 , calcule o vetor y para os seguintes valores de x utilizando operações elemento por elemento: 1, 2, 3, 5, 6, 7.. 4. Defina o vetor v=[2 4 6 8 10]. Após, utilize esse vetor em operações matemáticas para os seguintes vetores: (a) 𝑎 = [ 1 2 1 4 1 6 1 8 1 10 ] (b) 𝑏 = [1 2 3 4 5] (c) 𝑐 = [ 1 22 1 42 1 62 1 82 1 102 ] (d) 𝑏 = [1 1 1 1 1] 5. Defina o vetor v=[5 4 3 2 1]. Após, utilize esse vetor em operações matemáticas para criar os seguintes vetores: (a) 𝑎 = [52 42 32 22 12] (b) 𝑏 = [25 20 15 10 5] (c) 𝑐 = [55 44 33 22 11] (d) 𝑑 = [4 3 2 1 0] 6. Defina x e y como vetores x=[1, 3, 5, 7, 9] e y=[2, 5, 8, 11, 14]. Após, utilizando as operações elemento por elemento, calcule z de acordo com as seguintes expressões: (a) 𝑧 = 𝑥𝑧2 𝑥+𝑦 (b) 𝑧 = 𝑥(𝑥 2 − 𝑦) − (𝑥 − 𝑦)2 7. Defina p e w como escalares p = 2.3 e w = 5.67, t=[1,2,3,4,5], x=[2.8, 2.5, 2.2, 1.9, 1.6] e y=[4, 7, 10,13,17] como vetores linha Após, utilizando as operações elemento por elemento, calcule z de acordo com as seguintes expressões: (a) 𝑇 = 𝑝(𝑥+𝑦)2 𝑦 𝑤 (b) 𝑆 = 𝑝(𝑥+𝑦)2 𝑦𝑤 + 𝑤𝑥𝑝 𝑝𝑦 8. O crescimento de uma população de peixes pode ser estimada utilizando a lei de von Bertalanffy: 𝐿 = 𝐿𝑚𝑎𝑥(1 − 𝑒 −𝐾(𝑡+𝜏)) Onde 𝐿𝑚𝑎𝑥 é o tamanho máximo, K é uma taxa constante e 𝜏 é uma constante de tempo. Essas constantes variam de acordo com as espécies de peixe. Assumindo que 𝐿𝑚𝑎𝑥 = 58 𝑐𝑚, 𝐾 = 0,45 𝑎𝑛𝑜𝑠 −1 e 𝜏 = 0,65 𝑎𝑛𝑜𝑠, calcule o tamanho de um peixe de 0, 1, 2, 3, 4 e 5 anos de idade. 9. Crie as três matrizes a seguir no MATLAB: 𝐴 = [ 2 4 −1 3 1 −5 0 1 4 ] 𝐵 = [ −2 5 0 −3 2 7 1 6 9 ] 𝐶 = [ 0 3 5 2 1 0 4 6 −3 ] (a) Calcule A+B e B+A para mostrar que a adição de matrizes é comutativa; (b) Calcule A+(B+C) e (A+B)+C para mostrar que a adição das matrizes é associativa; (c) Calcule 5(A+C) e 5A+5C para mostrar que, quando matrizes são multiplicadas por um escalar, a multiplicação é distributiva; (d) Calcule A*(B+C) e A*B*+A*C para mostrar que a multiplicação matricial é distributiva. MATLAB com Aplicações em Engenharia Apostila Prof. Vinícius Costa 36 Prof. Matheus Cascardo 10. Utilize as matrizes A, B e C do exercício anterior para verificar os itens a seguir: (a) A*B=B*A? (b) A*(B*C)=(A*B)*C? (c) (A*B)t=Bt*At? (d) (A+B) t = A t+B t? (e) Determine de cada matriz: a soma, a média(mean), o valor médio(median), o valor mínimo e máximo, ordene os elementos em ordem crescente, calcule os determinantes e o inverso das matrizes. Resolva o seguinte sistema de três equações lineares: 3𝑥 − 2𝑦 + 5𝑧 = 7,5 −4,5𝑥 + 2𝑦 + 3𝑧 = 5,5 5𝑥 + 𝑦 − 2,5𝑧 = 4, 11. Resolva o seguinte sistema de cinco equações lineares: 3𝑢 + 1,5𝑣 + 𝑤 + 0,5𝑥 + 4𝑦 = −11,75 −2𝑢 + 𝑣 + 4𝑤 − 3,5𝑥 + 2𝑦 = 19 6𝑢 − 3𝑣 + 2𝑤 + 2,5𝑥 + 𝑦 = −23 𝑢 + 4𝑣 − 3𝑤 + 0,5𝑥 − 2𝑦 = −1,5 3𝑢 + 2𝑣 − 𝑤 + 1,5𝑥 − 3𝑦 = −3,5
Compartilhar