Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução aos Métodos Numéricos e Computacionais LOB1056 • Carga Horária: 60 horas/aula Ementa: - Introdução ao MATLAB: Cálculos simples; Uso de variáveis e funções; Matrizes e Vetores (- álgebra linear: propriedades e operações com vetores e matrizes; resolução de sistemas de equações lineares); - Gráficos; - Programação em MATLAB: escrevendo programas: comandos de entrada e saída de dados; comandos de controle de fluxo de execução(comandos de seleção e de repetição). Introdução aos Métodos Numéricos e Computacionais Introdução ao MATLAB • O MATLAB é um software de alto desempenho destinado a fazer cálculos com matrizes (MATrix LABoratory). • MATLAB foi criado no fim dos anos 1970 por Cleve Moler, então residente do departamento de ciência da computação da Universidade do Novo México, e logo se espalhou para outras universidades. • Jack Little, um engenheiro, conheceu a linguagem MATLAB, durante uma visita feita por Moler a Universidade de Stanford em 1983. Reconhecendo o seu potencial comercial, ele juntou-se a Moler e Steve Bangert. • Eles reescreveram MATLAB na Linguagem de Programação C. • Em 1984 fundaram a MathWorks e prosseguiram no seu desenvolvimento. Introdução ao MATLAB Introdução ao MATLAB • O MATLAB é um software de alto desempenho destinado a fazer cálculos com matrizes (MATrix LABoratory). • Pode funcionar como uma calculadora ou como uma linguagem de programação científica (FORTRAN, Pascal, C/C++, etc.). • Os comandos do MATLAB são mais próximos da forma como escrevemos expressões algébricas, o que torna mais simples o seu uso. • O MATLAB é um sistema interativo e uma linguagem de programação para computação técnica e científica, integrando a capacidade de fazer cálculos e visualização gráfica. MATLAB – Ambiente de Trabalho - O MATLAB apresenta um ambiente de trabalho com muitos recursos operacionais: • Janela de Histórico (de Comandos) • Janela de Figuras (Gráficos) • Navegador de Diretórios Correntes • Navegador de Espaço de Trabalho • Navegador de Ajuda MATLAB – Ambiente de Trabalho AMBIENTE GERAL DO MATLAB Tela Inicial MATLAB – Ambiente de Trabalho AMBIENTE GERAL DO MATLAB Tela Inicial : com Editor de programas MATLAB – Ambiente de Trabalho • Janela de Comandos - Uma vez inicializado o MATLAB, aparecerá na tela uma janela de comandos e o "prompt" padrão ( fx >> ), nas versões recentes, ou simplesmente ( >> ) é exibido na tela. - A partir deste ponto, o MATLAB espera um comando (instruções) do usuário. Todo comando deve ser finalizado teclando-se Enter. - Para a edição das linhas de comando as teclas com setas ( ↑ ↓ ) podem ser usadas para se encontrar comandos dados anteriormente, para execução novamente ou sua reedição. fx >> MATLAB – Ambiente de Trabalho • Exemplo: fx >> sen(0) Ao apertar a tecla Enter , o MATLAB responde com uma mensagem de erro: Undefined function or variable ´sen´. - Isto acontece porque para se determinar o seno de um ângulo é necessário digitar em inglês o comando sin. - Ao invés de rescrever a linha inteira, simplesmente pressione a tecla "seta para cima". O comando errado retorna, e você pode, então, corrigir: fx >> sin(0) ans = 0 • Note que o MATLAB chamou o resultado de ans (answer=resposta). MATLAB – Ambiente de Trabalho - Além das teclas com setas, pode-se usar outras teclas para reeditar a linha de comando. A seguir, uma breve descrição de algumas teclas: ↑ retorna a linha anterior ↓ retorna a linha posterior ← move um espaço para a esquerda → move um espaço para a direita Ctrl ← move uma palavra para a esquerda Ctrl → move uma palavra para a direita Home move para o começo da linha End move para o final da linha - Conhecer os elementos básicos do MATLAB é estudar: • Operações • Expressões • Constantes • Variáveis • Funções MATLAB – Elementos Básicos MATLAB – Operações na Área de Trabalho • Operações Aritméticas Básicas Operação Símbolo Exemplos Adição, a+b + 5 + 6 Subtração, a-b - 19 - 4.7 Multiplicação, a.b * 5.02 * 7.1 Divisão, a÷b / (ou \) 45/5 (ou 5\45) Potência, 𝐚𝐛 ^ 3^4 - Precedência ( ordem hierárquica ) dos operadores aritméticos: • A precedência de operadores é a ordem ( hierárquica ) em que as operações são executadas pelo computador. • As operações de maior precedência são executadas antes das operações de menor precedência. • Se duas operações possuem a mesma precedência, então a expressão é executada da esquerda para a direita. Precedência Operação Primeira Parênteses, começando com o par mais interno Segunda Exponenciação Terceira Multiplicação e Divisão (mesma precedência) Quarta Adição e Subtração (mesma precedência) MATLAB – Operações na Área de Trabalho • Operações Aritméticas Básicas - Precedência ( ordem hierárquica ) dos operadores aritméticos: Exemplo - qual o resultado da expressão: 5 + 3 * ( 3 – 1 ) – 2 ^ 5 / 4 – 1 5 + 3 * ( 3 – 1 ) – 2 ^ 5 / 4 – 1 5 + 3 * 2 – 2 ^ 5 / 4 – 1 5 + 3 * 2 – 32 / 4 – 1 5 + 6 – 32 / 4 – 1 5 + 6 – 8 – 1 11 – 8 – 1 3 – 1 2 MATLAB – Operações na Área de Trabalho MATLAB – Operações na Área de Trabalho - Operações Aritméticas Básicas no MatLab: • Expressões Numéricas: conjunto de constantes e variáveis relacionado por operadores aritméticos ( veremos adiante ). Como representar as expressões dos exercícios abaixo no Matlab e obter os resultados? 1. A distância percorrida por uma bola em queda livre é dada pela equação: Calcular a posição da bola no tempo t =5 s; para x =10 m, v =15 m/s e a= -9,81 m/s. 2. Para x=3 e y=4, calcular a seguinte expressão: ttvxx a 2 00 2 1 )( 2 22 yx yx MATLAB – Operações na Área de Trabalho • Expressões Lógicas: os operadores relacionais realizam comparações entre valores do mesmo tipo (veremos adiante). Os operadores relacionais utilizados pelo MATLAB são: Operador Relacional Descrição == igual a ~= diferente de > maior que >= maior ou igual < menor que <= menor ou igual MATLAB – Operações na Área de Trabalho • Constantes e Variáveis - Constantes: O MATLAB faz cálculos simples e científicos como uma calculadora. Para tal, os comandos devem ser digitados diretamente no prompt (usaremos : >> nos nossos exemplos) do MATLAB (software interativo). Exemplo: >> 3*25 + 5*12 ans = 135 Lembre-se que no MATLAB a multiplicação tem precedência sobre a adição. Uma constante numérica no MATLAB é formada por uma sequência de dígitos que pode estar ou não precedida de um sinal positivo (+) ou negativo (-) e pode conter um ponto decimal (.). MATLAB – Operações na Área de Trabalho • Constantes: O formato em que uma constante numérica é mostrada no MATLAB, como opção default, seguem os critérios: - se um resultado é inteiro, o MATLAB mostra o número como inteiro; - quando o resultado é real, o MATLAB mostra o número com 4 dígitos à direita do ponto decimal, exemplo: >> 5.123456789 ans = 5.1235 MATLAB – Operações na Área de Trabalho • Constantes: O formato em que uma constante numérica é mostrada no MATLAB, como opção default, seguem os critérios: - o MATLAB mostra também, o resultado, usando a notação científica. - Os dígitos da constante pode terminar por exemplo com a letra e, seguida de outra sequência de dígitos precedida ou não de um sinal de (+) ou de (-). - Esta segunda sequência é a potência de 10 pela qual a primeira sequência deve ser multiplicada. Por exemplo, >> 1.23e-1 ans = 0.1230 MATLAB – Operações na Área de Trabalho • Constantes e Variáveis - Expressões Numéricas: conjunto de constantes e variáveisrelacionado por operadores aritméticos. - Comando de Atribuição: o sinal de igual ( = ) A variável ( nome da variável ) deve estar à esquerda do sinal de igual. Variável = Constante/ Variável / Expressão . MATLAB – Operações na Área de Trabalho • Constantes e Variáveis - Expressões Numéricas - Comando de Atribuição: Variável = Constante/ Variável / Expressão Obs.: prompt usado nos exemplos... >> >> K=2 K= 2 >> L=3 L= 3 Nos exemplos acima: Primeiro, criamos duas variáveis, K e L, atribuindo a elas os seus valores respectivos. Assim, o que estiver à direita do sinal de igual é “colocado” na variável que estiver à esquerda. MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Expressões Numéricas - Comando de Atribuição: Variável = Constante/ Variável / Expressão >> M= K + L M= 5 >> M= L + 11 M= 14 >> K= K + 5 K = 7 Em seguida, criamos uma variável chamada M que recebeu a soma de K mais L. Logo após, o valor da variável M e da variável K foram alterados. MATLAB – Operações na Área de Trabalho • Expressões Numéricas: Como representar as expressões dos exercícios abaixo no Matlab e obter os resultados? 1. A distância percorrida por uma bola em queda livre é dada pela equação: Calcular a posição da bola no tempo t=5 s; para 𝑥0=10 m, 𝑣0 =15 m/s e a= -9,81 m/s. >> t=5; >> x0=10; >> v0=15; >> a= -9.81; >> x= x0 + v0 * t + 1 / 2 * a * t^2 X = -37.6250 ttvxx a 2 00 2 1 MATLAB – Operações na Área de Trabalho - Operações Aritméticas Básicas no MatLab: • Expressões Numéricas: Como representar as expressões dos exercícios abaixo no Matlab e obter os resultados? 2. Para x=3 e y=4, calcular a seguinte expressão: >> x=3; >> y=4; >> calculo= x ^2 * y ^3 / ( x – y ) ^2 calculo = 576 )( 2 32 yx yx MATLAB – Operações na Área de Trabalho • Variáveis: Regras de construção de NOMES de variáveis: - Os nomes das variáveis devem consistir de uma única palavra. - As variáveis devem começar com uma letra e pode ser seguida de letras, números ou subscrito - underscore ou underline ( _ ). - Variáveis com letras minúsculas e maiúsculas são diferentes (case sensitive), mesmo que consistam das mesmas letras. - As variáveis podem consistir de até 63 caracteres (versão). - Nomes não devem possuir acentos, espaços e operadores aritméticos. NOTA_DO_ALUNO nota_do_aluno Nota_do_aluno nota1_do_aluno MATLAB – Operações na Área de Trabalho • Variáveis: - As variáveis podem ser redefinidas a qualquer momento, bastando para isso executar a atribuição de um novo valor. - Alguns nomes são usados para variáveis predefinidas, ou seja, são variáveis especiais do MATLAB, por exemplo: • ans : usada para exibir os resultados • pi : número 3,14159 >> pi ans = 3.1416 MATLAB – Operações na Área de Trabalho • Variáveis: - Alguns nomes são usados para variáveis predefinidas, ou seja, são variáveis especiais do MATLAB, por exemplo: • ans : usada para exibir os resultados • eps : epsílon - representa a menor diferença entre 2 números que pode ser representada no computador. >> eps ans = 2.2204e-16 MATLAB – Área de Trabalho • Constantes e Variáveis: Comentário e pontuações Símbolo Função , Separar comandos dados em uma mesma linha. ; Separar comandos dados em uma mesma linha. Se o último caractere da declaração é um ponto e vírgula, a impressão na tela é suprimida, mas a tarefa é realizada. % Todo e qualquer caractere depois do símbolo de porcentagem é tomado como comentário. ... Pode-se continuar uma certa expressão na próxima linha usando um espaço em branco e três pontos,"...", ao final das linhas incompletas. MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Comentário e pontuações Exemplo: Quando se coloca o sinal de ponto e vírgula no final da sentença do MATLAB, o resultado de uma operação ou comando não é exibido na tela do MATLAB. Veja a diferença: >> g=3 g = 3 >> g=3; - Os espaços em branco entre os operadores (aritméticos, lógicos, relacionais) e as variáveis (ou constantes) são opcionais. O mesmo vale para a vírgula, o ponto e vírgula e o símbolo de porcentagem. - No entanto, o espaço em branco entre a última variável (ou constante) de uma linha e os três pontos é obrigatório (veja exemplo a seguir). MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Comentário e pontuações Exemplo: >> e1=3, f1=20, ... e2=15; f2=42; % Exemplo de uso da vírgula, ponto e vírgula e três pontos e1 = 3 f1 = 20 MATLAB – Operações na Área de Trabalho • Variáveis: Variáveis literais - Uma variável pode conter uma cadeia de caracteres ao invés de um número. - Estes caracteres são manipulados como vetores linha (assunto que será tratado mais adiante). - A cadeia de caracteres deve estar limitada por apóstrofes (‘cadeia de caracteres’) para ser atribuída a uma variável literal. Por exemplo: >> L='MATLAB' L = MATLAB MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Obtendo Informações da Área de Trabalho Os exemplos de declarações mostrados nos itens acima criaram variáveis que são armazenadas na Área de Trabalho do MATLAB. - O comando who: mostra as variáveis ativas do ambiente, em ordem alfabética. - O comando whos: mostra as variáveis ativas do ambiente mais o tamanho e tipo. >> who Your variables are: ans e1 e2 f1 f2 g L % variáveis utilizadas como exemplo até aqui >> whos Name Size Bytes ans 1x1 8 e1 1x1 8 MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Obtendo Informações da Área de Trabalho Em qualquer momento, podemos ver o valor que está contido em uma variável, simplesmente digitando no prompt o seu nome. >> f2 f2= 42 - O comando clear: permite apagar variáveis do sistema As variáveis no espaço de trabalho podem ser removidas incondicionalmente usando o comando clear. >> clear f1 % remove a variável f1 >> clear (ou clear all) % remove todas as variáveis do espaço de trabalho - O comando clc: limpa a janela de comandos e coloca o cursor na posição inicial. MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Obtendo Informações da Área de Trabalho - Comandos de auxílio No MATLAB, pode-se obter ajuda sobre qualquer comando ou função através do comando help, que mostra uma listagem de todos os pacotes disponíveis. A ajuda sobre um comando ou função específica é obtida com o comando help <tópico>, onde tópico pode ser o nome de um pacote, de um comando ou função. Por exemplo: >> help sqrt MATLAB – Operações na Área de Trabalho • Funções Matemáticas Categorias gerais de funções matemáticas disponíveis no MATLAB: - Matemática elementar; - Funções especiais; - Matrizes elementares e especiais; - Decomposição e fatoração de matrizes; - Polinômios; - Solução de equações diferenciais; - Equações não-lineares; - Integração numérica; MATLAB – Operações na Área de Trabalho • Funções Matemáticas - O MATLAB tem uma série de funções científicas pré-definidas. - A palavra função no MATLAB tem um significado diferente daquele que tem na Matemática. - Aqui, função é um comando, que pode ter alguns argumentos de entrada e alguns de saída. - Algumas dessas funções são intrínsecas, ou seja, não podem ser alteradas pelo usuário. - Outras funções estão disponíveis em uma biblioteca externa distribuídas com o programa original (MATLAB TOOLBOX). MATLAB – Operações na Área de Trabalho • Constantes e Variáveis: Funções Matemáticas Funções científicas disponíveis e exemplos:• cos(x) : cosseno de x. • sqrt(x) : raiz quadrada de x. • acos(x) : arco cujo cosseno é x. • abs(x) : valor absoluto de x. • exp(x) : exponencial 𝑒𝑥. MATLAB – Operações na Área de Trabalho • Funções Matemáticas - Exemplo de algumas funções podem ser usadas da mesma forma que seria escrita matematicamente: >> x_graus = 45 x_graus = 45 >> x_rad = x_graus * pi / 180 x_rad = 0.7854 >> y= cos(x_rad) y= 0.7071 MATLAB – Operações na Área de Trabalho • Funções Matemáticas - Exemplo de algumas funções podem ser usadas da mesma forma que seria escrita matematicamente: >> x = sqrt(2)/2 x = 0.7071 >> y = acos(x) % em radianos y = 0.7854 >> y_graus = y*180/pi y_graus = 45.0000 (Estes comandos calculam o arco cujo cosseno é 2 / 2 , inicialmente em radianos, depois em graus.) MATLAB – Operações na Área de Trabalho • Funções Matemáticas >> x = -0.8913 ; >> abs(x) ans = 0.8913 >> exp(1) ans = 2.7183 MATLAB – Operações na Área de Trabalho MATLAB – Operações na Área de Trabalho • VETORES E MATRIZES - A unidade de dados fundamental para o Matlab é a matriz. - Matriz é uma coleção de valores organizados em linhas e colunas representada por um nome de variável. - As matrizes podem ser declaradas como vetores ou matrizes propriamente ditas. - O termo vetor descreve uma matriz com somente uma dimensão, enquanto que o termo matriz descreve uma matriz com duas ou mais dimensões. - Mesmo os dados escalares são tratados como matrizes no Matlab ( com somente uma linha e uma coluna ). MATLAB – Operações na Área de Trabalho • VETORES E MATRIZES - Exemplo de uma matriz bidimensional com 4 linhas e 3 colunas Col. 1 Col. 2 Col.3 Linha 1 Linha 2 Linha 3 Linha 4 MATLAB – Operações na Área de Trabalho • VETORES E MATRIZES - Exemplo de um vetor (unidimensional) linha Col. 1 Col. 2 Col.3 Linha 1 MATLAB – Operações na Área de Trabalho • VETORES E MATRIZES - Exemplo de um vetor (unidimensional) coluna Col. 1 Linha 1 Linha 2 Linha 3 Linha 4 MATLAB – Operações na Área de Trabalho • VETORES E MATRIZES: INSERÇÃO DE DADOS • Escalar >> 3 ans = 3 • Vetor >> [1 2 3 4] ans = 1 2 3 4 • Matriz >> [1 2 3; 4 5 6] ans = 1 2 3 4 5 6 QUALQUER DADO NUMÉRICO É TRATATO COM UMA MATRIZ MATLAB – Operações na Área de Trabalho • VETORES E MATRIZES O MATLAB permite a manipulação de linhas, colunas, elementos individuais e partes de matrizes. Um resumo das diversas formas de se construir um vetor no MATLAB. X=primeiro : último Cria um vetor x começando com o valor primeiro, incrementando-se de (um) em 1(um) até atingir o valor último ou o valor mais próximo possível de último X=primeiro:incremento:último * O MAIS USADO Cria um vetor x começando com o valor primeiro, incrementando-se do valor incremento até atingir o valor último ou o valor mais próximo possível de último X=linspace(primeiro, último, n) Cria um vetor x começando com o valor primeiro e terminado no valor último, contendo n elementos linearmente espaçados. X=logspace(primeiro, último, n) Cria um vetor x começando com o valor 𝟏𝟎𝒑𝒓𝒊𝒎𝒆𝒊𝒓𝒐 e terminando no valor 𝟏𝟎ú𝒍𝒕𝒊𝒎𝒐, contendo n elementos logaritmicamente espaçados X=[2 2*pi sqrt(2) 7] Cria um vetor x contendo os elementos especificados MATLAB – Operações na Área de Trabalho • Construção de Vetores - Exemplo 1: >> x = 1:5 %gera um vetor linha contendo os números de 1 a 5 com incremento unitário. x= 1 2 3 4 5 >> x=1:10.5 x= 1 2 3 4 5 6 7 8 9 10 - Exemplo 2: >> z = 3: 2 : 15 %dados inteiros: formato inteiro z= 3 5 7 9 11 13 15 MATLAB – Operações na Área de Trabalho • Construção de Vetores - Exemplo 3: Pode-se, também, gerar vetores usando a função linspace. >> k = linspace (0, 1, 6) k = 0 0.2000 0.4000 0.6000 0.8000 1.0000 gera um vetor linearmente espaçado de 0 a 1, contendo 6 elementos. >> L=linspace(20, 40,5) L= 20 25 30 35 40 MATLAB – Operações na Área de Trabalho • Construção de Vetores - Exemplo 4: >> x=logspace(1,5,5) % dados em potência de 𝟏𝟎𝟏 𝟏𝟎𝟐 𝟏𝟎𝟑 𝟏𝟎𝟒 𝟏𝟎𝟓 x= 10 100 1000 10000 100000 - Exemplo 5: >> x=[8 6 8.10 5] % dados: inteiro e real – formato real x= 8.0000 6.0000 8.1000 5.0000 MATLAB – Operações na Área de Trabalho • Construção de Vetores - Nos exemplos anteriores os vetores possuem uma linha e várias colunas (vetores linha). - Da mesma forma podem existir vetores coluna (uma coluna e várias linhas). - Para se criar um vetor coluna elemento por elemento estes devem estar separados por ( ; ). >> v=[1.5; -3.2; 9] v = 1.5000 -3.2000 9.0000 MATLAB – Operações na Área de Trabalho • Construção de Vetores - Esses vetores coluna podem também ser criados a partir dos comandos utilizados anteriormente para criar os vetores linha, acompanhados do símbolo apóstrofe ( ' ), que é o operador de transposição. >> y=(1: 0.5: 3)' y = 1.0000 1.5000 2.0000 2.5000 3.0000 MATLAB – Operações na Área de Trabalho • ENDEREÇAMENTO DE VETORES - No MatLab, cada um dos elementos de um vetor podem ser acessados através de seu índice que identifica cada uma das colunas. Por exemplo : >> x=5:2:20 x= 5 7 9 11 13 15 17 19 >> x(3) % Acessa o terceiro elemento de x ans = 9 >> x(6) % Acessa o sexto elemento de x ans = 15 MATLAB – Operações na Área de Trabalho • ENDEREÇAMENTO DE VETORES - Esses elementos de um vetor também podem ser acessados em blocos. Por exemplo: >> c=linspace(10,40,7) c = 10 15 20 25 30 35 40 >> c(3:5) % terceiro a quinto elemento de c ans = 20 25 30 MATLAB – Operações na Área de Trabalho • Operações entre vetores - As operações básicas entre vetores só são definidas quando estes tiverem o mesmo tamanho e orientação (linha ou coluna). Estas operações são: - Seja a=[ a1 a2 ... an] , b=[ b1 b2 ... bn] e c um escalar operação expressão resultado adição escalar a + c [a1+c a2+c ... an+c] adição vetorial a + b [a1+b1 a2+b2 ... an+bn] multiplicação escalar a * c [a1*c a2*c ... an*c] multiplicação vetorial a. * b [a1*b1 a2*b2 ... an*bn] divisão a. / b [a1/b1 a2/b2 ... an/bn] MATLAB – Operações na Área de Trabalho • Operações entre vetores - Exemplos: - Seja a=[ a1 a2 ... an] , b=[ b1 b2 ... bn] e c um escalar >> a=[ 1 2 3 4 5 ] ; b=[ 6 7 8 9 0] ; c= 10; >> a+c ans = 11 12 13 14 15 MATLAB – Operações na Área de Trabalho • Operações entre vetores - Exemplos: - Seja a=[ a1 a2 ... an] , b=[ b1 b2 ... bn] e c um escalar >> a=[ 1 2 3 4 5 ] ; b=[ 6 7 8 9 0] ; c= 10; >> a+b ans = 7 9 11 13 5 MATLAB – Operações na Área de Trabalho • Operações entre vetores - Exemplos: >> a=[ 1 2 3 4 5 ] ; b=[ 6 7 8 9 0] ; c= 10; >> a*c 10 20 30 40 50 >> a.*b % mult. vetorial: elemento x elemento 6 14 24 36 0 >> a*b Error using * Inner matrix dimensions must agree. % a[1,4], b[1,4] => 4≠1 >> a./b 0.1667 0.2857 0.3750 0.4444 Inf MATLAB – Cálculos na Área de Trabalho • MATRIZES - O MATLAB trabalha essencialmente com um tipo de objeto: matriz numérica ( 1x1; 2x2; 3x3; i ( linha) x j (coluna); etc). - Os elementos de cada linha da matriz são separados por espaços em branco ou vírgulas e as colunas separadas por ponto e vírgula, colocando-se colchetesem volta do grupo de elementos que formam a matriz. Por exemplo, digite: >> A=[ 1 2 3; 4 5 6; 7 8 9 ] % +espaços - Pressionando <enter> o MATLAB mostra o resultado A = 1 2 3 4 5 6 7 8 9 MATLAB – Operações na Área de Trabalho • MATRIZES - As linhas das matrizes também podem ser definidas através dos comandos, utilizados anteriormente, para se definir vetores linha. Exemplo: >> M=[1:3;linspace(4,9,3);0:.5:1] M = 1.0000 2.0000 3.0000 4.0000 6.5000 9.0000 0 0.5000 1.0000 - Também podem ser definidos por operações ou funções matemáticas. Exemplo: >> N=[15 7; sqrt(36) cos(pi/3); 12/7 22.53^2] N = %ajuste numérico real pelo ponto decimal 15.0000 7.0000 6.0000 0.5000 1.7143 507.6009 MATLAB – Operações na Área de Trabalho • MATRIZES • OPERAÇÕES COM MATRIZES - As operações com matrizes no MATLAB são as seguintes: · Transposta; · Adição; · Subtração; · Multiplicação; · Divisão à direita; · Divisão à esquerda; · Exponenciação; MATLAB – Operações na Área de Trabalho • MATRIZES • OPERAÇÕES COM MATRIZES - Transposta: o caractere apóstrofe, " ' " , indica a transposta de uma matriz. Ex.: >>A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> B = A' B = 1 4 7 2 5 8 3 6 9 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Adição e Subtração A adição e subtração de matrizes são indicadas, respectivamente, por "+" e "-". As operações são definidas somente se as matrizes tiverem as mesmas dimensões. Por exemplo, a soma das matrizes, A + x, não é correta porque A é 3x3 e x é 3x1. A = 1 2 3 4 5 6 7 8 9 x = -1 0 2 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Adição e Subtração >> C = A + B % a imagem de A e B são apenas ilustrativas A = 1 2 3 4 5 6 7 8 9 B = 1 4 7 2 5 8 3 6 9 C = %ajuste numérico inteiro à direita 2 6 10 6 10 14 10 14 18 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Adição e Subtração A adição e subtração também são definidas se um dos operadores é um escalar. Seja a matriz x do exemplo anterior, o escalar é (adicionado ou) subtraído de todos os elementos do outro operador. MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Adição e Subtração x = -1 0 2 >> y = x – 1 % resulta em y = -2 -1 1 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Multiplicação A multiplicação de matrizes é indicada por "*". A multiplicação x*y (para o nosso exemplo abaixo) é definida somente se a segunda dimensão de x (coluna) for igual à primeira dimensão de y(linha). Seja: x = y = -1 -2 0 -1 2 1 >> x* y % [3,1] x [3,1] => 1 ≠ 3 Error using * Inner matrix dimensions must agree. MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Multiplicação Entretanto, seja: x = y = -1 -2 0 -1 2 1 >> x'* y % x’ => -1 0 2 [1,3] [3,1] é aceitável: (-1x-2 + 0x-1 + 2x1) % e o resultado [1,1] ans = 4 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Multiplicação A = B= 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 >> C = A * B % C(1,1)= A(1,1).B(1,1)+A(1,2).B(2,1)+A(1,3).B(3,1) % C(1,1)= 1 x 1 + 2 x 2 + 3 x 3 = 14 C = %ajuste numérico inteiro à direita 14 32 50 32 77 122 50 122 194 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Multiplicação O produto de uma matriz por um vetor é um caso especial do produto entre matrizes. Por exemplo: A (3x3) e X(3x1), é possível, e b será (3x1). A = x = 1 2 3 -1 4 5 6 0 7 8 9 2 >> b = A*x % que resulta em b = 5 8 -7 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES: - Multiplicação Naturalmente, um escalar pode multiplicar ou ser multiplicado por qualquer matriz. Seja x: x = -1 0 2 >> pi * x ans = -3.1416 0 6.2832 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Multiplicação Além da multiplicação matricial e escalar, podemos ter a multiplicação por elemento de matrizes de mesma dimensão. Esse tipo de operação é feita utilizando-se um ponto ( . ) antes do operador de multiplicação ( * ). Ou seja, se A e B são matrizes definidas por A=[ a11 a12 ... a1n ; a21 a22 ... a2n ; ... ; am1 am2 ... amn] e B=[ b11 b12 ... b1n ; b21 b22 ... b2n ; ... ; bm1 bm2 ... bmn ], então A.*B =aij*bij. MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Multiplicação por elemento. Exemplo: A = B = 1 2 3 1 4 7 4 5 6 2 5 8 7 8 9 3 6 9 >> A.*B % A(1,1).B(1,1) A(1,2).B(1,2) A(1,3).B(1,3) % A(2,1).B(2,1) A(2,2).B(2,2) ........... ans = 1 8 21 8 25 48 21 48 81 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Divisão Existem dois símbolos para divisão de matrizes no MATLAB "\" e "/". Se A é uma matriz quadrada não singular, então A\B corresponde à multiplicação da matriz B pela inversa da matriz A: inv(A)*B. X = A\B é a solução de A*X = B MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Divisão A = x = 1 2 3 -1 4 5 6 0 7 8 9 2 >> b = A*x % A[3,3] x=[3,1] ==> b=[3,1] b= 5 8 7 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Divisão A = x = b= ( >> b = A*x ) 1 2 3 -1 5 ( >> x= inv(A)*b OU >>x= A\b ) 4 5 6 0 8 7 8 9 2 -7 No exemplo, como o vetor b foi definido como A*x , a declaração >> z = A\b resulta em z = -1 0 2 A divisão por elemento entre matrizes é definida de maneira similar à multiplicação por elemento, ou seja, A./B= aij/bij e A.\B= aij\bij , onde A e B têm mesma dimensão. MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Álgebra Linear: Sistemas Lineares - fatoração LU (Low/Upper) Exemplo - dado o sistema abaixo formado por três equações lineares: 1,2x + 6y + 4z = 12 5x + 8y = 3 7x + 12y + 5z = 12 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Álgebra Linear: Sistemas Lineares - fatoração LU (Low/Upper) A resolução deste sistema através da aplicação de matriz é dado por: M . X = N onde, - a matriz M formada por 9 elementos, ou seja, os 9 coeficientes (A1,1 ... A3,3) - a matriz X será um vetor coluna formado pelas incógnitas: x, y, z. - a matriz N será um vetor coluna formado pelos termos dos resultados: N1, N2, N3. MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Álgebra Linear: Sistemas Lineares - fatoração LU (Low/Upper) 1,2x + 6y + 4z = 12 5x + 8y = 3 7x +12y + 5z = 6 - Colocando o sistema dado no formato matricial, temos: M X N 1,2 6 4 5 8 0 7 12 5 . 𝑥 𝑦 𝑧 = 12 3 6 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES- Álgebra Linear: Sistemas Lineares - fatoração LU (Low/Upper) M X N 1,2 6 4 5 8 0 7 12 5 . 𝑥 𝑦 𝑧 = 12 3 6 Geramos agora a matriz M e o vetor N através do MATLAB: >> M =[1.2 6 4;5 8 0;7 12 5] % matriz dos coeficientes >> N =[12; 3; 6] % matriz dos resultados Sendo M.X=N podemos então encontrar os valores de x, y e z. A fatoração LU pode ser implementada no Matlab pela expressão ( inv(M)*N ) ou através do operador: >> M\N MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Álgebra Linear: Sistemas Lineares - fatoração LU (Low/Upper) >>M =[1.2 6 4;5 8 0;7 12 5] >>N=[12; 3; 6] M= N = 1.200 6.0000 4.0000 12 5.000 8.0000 0 3 7.0000 12.0000 5.0000 6 >> M\N ans = -3.9767 2.8605 -0.0977 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Álgebra Linear: Sistemas Lineares - fatoração LU (Low/Upper) M X N 1,2 6 4 5 8 0 7 12 5 . 𝑥 𝑦 𝑧 = 12 3 6 >> M\N ans = -3.9767 2.8605 -0.0977 Solução do sistema: x= -3.9767 y= 2.8605 z= - 0.00977 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Exponenciação A expressão A^p eleva A à p-ésima potência e é definida se A é matriz quadrada e p um escalar. Se p é um inteiro maior do que um, a exponenciação é computada como múltiplas multiplicações. Por exemplo, seja: A = 1 2 3 4 5 6 7 8 9 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Exponenciação >> A.^3 ans = 1 8 27 64 125 216 343 512 729 A exponenciação por elemento entre matrizes é definida de maneira similar à multiplicação por elemento, ou seja, A.^B= 𝒂𝒊𝒋𝒃𝒊𝒋, onde A e B têm mesma dimensão. De maneira similar, a potenciação por elemento entre uma matriz e um escalar apresenta as seguintes formas: A.^c = 𝒂𝒊𝒋𝒄 e c.^A = 𝒄𝒂𝒊𝒋 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Elementos das Matrizes Um elemento individual da matriz pode ser indicado entre parênteses. Por exemplo: A = 1 2 3 4 5 6 7 8 9 a declaração >> A(3,3) = A(1,3) + A(3,1) resulta em A = 1 2 3 4 5 6 7 8 10 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Elementos das Matrizes Um elemento individual da matriz pode ser indicado incluindo os seus subscritos entre parênteses. Por exemplo, dada a matriz A: A = 1 2 3 4 5 6 7 8 9 a declaração >> A(1:3,2) ans = 2 5 8 MATLAB – Operações na Área de Trabalho • OPERAÇÕES COM MATRIZES - Elementos das Matrizes ( ... São muitas combinações e detalhes ) Por exemplo, dada a matriz A: A = 1 2 3 4 5 6 7 8 9 >> A(1:3,2:3) é uma submatriz 3x2, consiste das três linhas e das últimas duas colunas de A. ans = 2 3 5 6 8 9
Compartilhar