·
Engenharia de Produção ·
Linguagens de Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
Texto de pré-visualização
COMPUTAÇÃO APLICADA À ENGENHARIA Dra Dorotéa Vilanova Garcia GUIA DA DISCIPLINA 2022 1 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância INTRODUÇÃO Segundo Paulo Freire A teoria sem a prática vira verbalismo assim como a prática sem teoria vira ativismo No entanto quando se une a prática com a teoria temse práxis a ação criadora e modificadora da realidade Com o avanço das técnicas computacionais e a possibilidade de tratar grandes volumes de dados o conhecimento e o desenvolvimento tecnológico vêm passando por radicais transformações Na compreensão do mundo em nossa volta o homem organiza suas observações e ideias em estruturas conceituais Tendo em vista a coleção de ideias que irão gerar os modelos matemáticos frente à realidade necessitamos de um tratamento computacional para elaborar as tarefas repetitivas presentes no modelo para que tenhamos agilidade e precisão desejada nos resultados O objetivo da disciplina é capacitar o discente na resolução de problemas de engenharia e serviços com origem no mundo científico e tecnológico desde sua formulação até a implementação dos algoritmos computacionais e a análise dos resultados 2 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Que essa disciplina seja inspiradora para aguçar essa função de conhecimentos e que traga um cabedal de informações conceitos e noções para habilitar o desempenho do futuro profissional de Engenharia Bom semestre a todos e continuamos sempre junto para somar o saber Profa Dorotéa Vilanova Garcia 3 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 1 AMBIENTE MATLAB E OPERAÇÕES MATEMÁTICAS Objetivo Apresentar o ambiente MATLAB suas principais áreas e permitir que o discente execute operações matemáticas elementares de forma interativa Introdução O MATLAB original foi desenvolvido em linguagem Fortran por Clever Moler Essas novas versões foram desenvolvidas em linguagem C por Steve Bangeret Steve Kleiman e Clever Moler Stanford University MATLAB que abrevia MATriz LABoratory Laboratório de Matrizes é um programa de computador especializado e otimizado para cálculos científicos e de engenharia Inicialmente era projetado para cálculos com matrizes ao longo dos anos transformouse em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico O MATLAB possui todas as operações básicas da matemática adição subtração multiplicação divisão potência radiciação exponencial logaritmos operações trigonométricas podendo ser utilizado como uma simples máquina de calcular que será tratado nesse tópico 11 Ambiente MATLAB No MATLAB desktop existe uma janela principal que gerencia todas as outras 4 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância As principais janelas são 1 Command Window onde são digitados os comandos para o MATLAB processar desde que o prompt esteja disponível 2 2 Workspace GUI para visualização carga e armazenamento de variáveis no MATLAB 3 Command History exibe o histórico de comandos executados na janela Command Window 4 Current Directory GUI para visualização de diretórios e acesso a arquivos no MATLAB Outras que são úteis 1 Help GUI para encontrar e visualizar documentação online digite helpwin no prompt do Command Window 2 Array Editor GUI para modificar o conteúdo de variáveis no MATLAB 3 EditorDebugger Editor de texto e depurador para arquivos texto do MATLAB 4 Figure Windows usadas para exibir informações gráficas e criar GUIs Dicas de comandos iniciais 1 O MATLAB é um ambiente sensitve case isto é diferencia letra maiúscula de minúscula assim sendo todos os comandos são sempre em letra minúscula 2 Para finalizar o ambiente de forma estável e retirar o sistema da memória do seu computador digite no Command Window o comando exit ou quit 3 Para limpar seu Command Window deve digitar no prompt clc 4 Para limpar seu Workspace completamente deve digitar no prompt clear 5 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Veja esse link httpswwwyoutubecomwatchvUuGDGlet7w4 12 Operações Básicas Inicialmente utilizaremos o MATLAB como se fosse uma calculadora cientifica para executar alguns cálculos básicos e observar as variações de suas notações Para tanto vamos observar a tabela a seguir Notação Matemática Notação no MATLAB Prioridade 4 4 ou x 3 ou 3 𝑥𝑦 x y 2 𝑥 x 12 ou sqrt x 1 𝑥𝑚 𝑛 x mn 1 𝑥 absx 1 121 Digitando a operação de forma direta Caso você precise fazer uma operação direta por exemplo 25 Teria que digitar no Command Window a operação então o resultado seria 6 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Entendemos que o resultado está correto isto é 7sete Mas o que o MATLAB quer dizer com ans O termo ans vem do inglês answer resposta Assim sendo o MATLAB está dizendo 25 resposta 7 Se observarmos o Workspace veremos que temos Isto quer dizer que a variável ans guarda o número 7 Caso façamos outra operação o ans assumirá o valor do novo cálculo consequentemente perderemos o cálculo anterior 122 Criando variáveis e gerando expressões Uma variável é um local na memória do computador capaz de conter um valor que pode ser modificado durante a execução do programa Uma outra forma de armazenar a informação é Nesse exemplo temos a variável x e está sendo atribuído a ela o valor 2 Podese notar que o MATLAB replica a informação gerado o que chamamos de eco O que normalmente não é interessante nos cálculos Nesse caso o valor está sendo atribuído porém no final tem a presença do o que evita a geração do eco desta forma não poluindo o Command Window 7 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para escrever uma expressão Para alterar as prioridades naturais descritas na tabela de operações utilizase parênteses tantos quantos necessários na expressão Lembrando que a quantidade de parênteses abertos deve obrigatoriamente ser igual a quantidade de parênteses fechados para não ocorrer erro sintático Vejamos como seria o cálculo das raízes da equação acima O armazenamento de um dado numérico decimal se dá utilizando ponto para separar a parte inteira da parte decimal e a princípio no MATLAB o seu resultado é expresso com quatro casas decimais podendo ou não ser expresso em notação cientifica conforme o cálculo executado Para tanto levemos em consideração o seguinte exemplo Tomemos como exemplo uma equação do segundo grau x² 5x 6 0 onde por exemplo queremos calcular o delta veja como isso pode ser feito no MATLAB Uma dona de casas foi ao mercado e levou para pagar suas compras uma nota de R10000 Sua lista de compra tinha os seguintes produtos 3kg de arroz à R180 o quilo 4kg de batatas à R250 o quilo 1kg de feijão à R340 e 5kg de frango à R590 o quilo Com base nessas informações calcule o valor do troco dessa compra 8 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 123 Formatação Numérica Como você já deve ter observado o resultado que o MATLAB apresenta é inteiro ou decimal Se for decimal normalmente apresenta com quatro casas decimais Ai surge a seguinte dúvida Seria possível alterar isso Na tabela a seguir serão mostrados alguns comandos que possibilita essa mudança Mas é importante destacar que quando alterado para um tipo ele mantem esse tipo até que ocorra outra mudança comando descrição format short Exibe o resultado com até 4 dígitos decimais Com ou sem notação cientifica dependendo da operação format long Exibe o resultado com até 15 dígitos decimais Com ou sem notação científica dependendo da operação format bank Exibe o resultado com dois dígitos decimais format rat Exibe o resultado na forma de fração a mais simplificada possível format compact Exibe o resultado suprimindo as linhas adicionais format loose Exibe o resultado restaurando as linhas adicionais Observação quando surgir a notação cientifica terá a seguinte simbologia por exemplo 97205e004 onde e004 quer dizer nesse caso 𝟏𝟎𝟒 Portanto o valor seria 97205 vezes 104 caracterizando assim o resultado 124 Operações exponenciais e operações logarítmicas Para representar essas operações no MATLAB veja a tabela a seguir Notação Matemática Notação no MATLAB 𝒆𝑥 expx log𝟐 𝑥 log 2 x 9 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância log𝟏𝟎 𝑥 log 𝑥 log 10 x log𝑒 𝑥 ln x log x Na primeira representação temos a função exponencial natural ex pode ser formalmente caracterizada de diversas maneiras distintas porém equivalentes Em particular podemos definila pela seguinte série de potências 𝑒𝑥 𝑥𝑛 𝑛 1 𝑥 𝑥2 2 𝑛0 𝑥3 3 𝑥4 4 Porém no MATLAB toda vez que a base for e se representa por exp e o expoente deve estar obrigatoriamente entre parênteses Assim sendo veja alguns exemplos dessa representação As representações das funções logarítmicas no MATLAB são obtidas se a base do logaritmo for um desses valores apenas 2 10 ou e Na edição do comando no MATLAB como já pode ser observado dispomos apenas de uma linha Assim sendo ao criar a função logarítmica ficou estabelecida a seguinte sintaxe Matematicamente temos log𝑏𝑎𝑠𝑒 𝑙𝑜𝑔𝑎𝑟𝑖𝑡𝑚𝑎𝑛𝑑𝑜 𝑒0 𝑒1 𝑒2 𝑒 ඥ𝑒1 2 𝑒 1 2 10 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância No MATLAB a sintaxe é log base logaritmando A exceção é o lnx que no MATLAB fica sendo logx Vejamos alguns exemplos Porém se precisarmos calcular um logaritmo em outra base então devemos aplicar a propriedade de mudança de base isto é 𝑙𝑜𝑔𝒃 𝒂 𝑙𝑜𝑔𝒄 𝒂 𝑙𝑜𝑔𝑐 𝒃 Caso por exemplo precise calcular 𝑙𝑜𝑔5 3 no MATLAB terá que mudar para uma das bases conhecidas isto é 2 10 ou e lembrando que o resultado será sempre o mesmo como pode ser observado na figura a seguir 𝑙𝑜𝑔𝟐 3 𝑙𝑜𝑔7 𝑙𝑜𝑔𝟏𝟎 7 𝑙 𝑛8 𝑙𝑜𝑔𝒆 8 log8 𝑛𝑜𝑀𝐴𝑇𝐿𝐴𝐵 c 11 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 125 Operações trigonométricas O computador só trata dados alfanuméricos strings ou dados numéricos inteiro ou real no caso do MATLAB vai até os complexos Nas operações trigonométricas é comum utilizarmos um dado numérico na unidade graus porém o computador não é capaz de interpretar essa unidade Assim sendo se faz necessário converter graus para radianos que é a representação linear do ângulo em um valor numérico inteiro ou real Como são grandezas diretamente proporcionais podemos sempre utilizar a regra de três simples utilizando 180º π Então Graus Radianos 180 𝐱 𝛼𝜋 180 x Uma vez compreendido esse conceito vem a pergunta como calcular sen30 Vamos analisar o que precisamos fazer 1 Converter 30 em radianos seja ele um arco notável ou não devemos deixar o computador fazer a operação então se xgr30 xrdxgrpi180 𝑙𝑜𝑔5 3 𝑙𝑜𝑔𝟐 3 𝑙𝑜𝑔𝟐 5 2 𝑙𝑜𝑔5 3 𝑙𝑜𝑔𝟏𝟎 3 𝑙𝑜𝑔𝟏𝟎 5 10 𝑙𝑜𝑔5 3 𝑙𝑛3 𝑙𝑛5 log3 log5 𝑛𝑜𝑀𝐴𝑇𝐿𝐴𝐵 e MatLab é representado pela palavra pi onde 3141592653589793 é uma palavra reservada no MATLAB isto é para utilizar esse valor basta escrever pi 12 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 2 Com a conversão feita temos que entender como representar a função seno no MATLAB e ela se dá através da sintaxe sinx onde x obrigatoriamente deve estar em radianos 3 Executando no MATLAB temos Na tabela a seguir teremos as funções trigonométricas com sua representação matemática e a correspondente notação no MATLAB Notação Matemática Notação no MATLAB sen x sinx cos x cosx tg x senxcosx sinxcosx ou tanx sec x 1cosx 1cosx ou secx cossec x 1senx 1sinx ou cscx cotgx 1tgx cosxsenx 1tanx ou cotx Obs reforçando que o x na notação MATLAB deve sempre estar em radianos Agora vamos ver a notação das funções trigonométricas inversa então Bom com o conceito matemático em dia vamos ver como escrever as funções inversas no MATLAB Notação matemática Notação no MATLAB arc cosx acosx arc senx asinx arc tgx atanx arc secx asecx Veja o conceito matemático no link a seguir httpswwwyoutubecomwatchvXSXNG2zdNB8 13 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância arc cossecx acscx arc cotgx acotx Então resolvendo uma equação trigonométrica arcsen 12x com x02 no MATLAB temos 𝑎𝑟𝑐𝑠𝑒𝑛 ൬1 2൰ 𝑥 𝑠𝑒𝑛 𝑥 1 2 14 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 2 GRÁFICOS NO MATLAB EM R2 NO PLANO XOY Objetivo Neste capítulo será discutido os aspectos básicos dos recursos gráficos disponíveis no plano cartesiano xOy gerando gráficos em R2 As informações detalhadas sobre gráficos podem ser obtidas no helpwin do MATLAB 21 Gerando o primeiro gráfico O MATLAB oferece inúmeras opções para criarmos e editarmos gráficos Porém iremos discutir o que fazemos normalmente ao criar um gráfico manualmente Por exemplo Gostaríamos de construir o gráfico da função y x 5 Então estabelecemos o valor do domínio x que irá compor os valores do eixo da abscissa e depois aplicando na função os pontos obtemos a imagem y que caracteriza os valores do eixo da ordenada O próximo passo seria marcar os pares ordenados xy no plano cartesiano e por fim fazer a ligação dos pontos Esse processo tão conhecido por nós pode ser colocado da mesma forma na plataforma MATLAB Suponha que gostaríamos de traçar a função y x 5 com 2 x 2 no MATLAB 1 passo Definir os valores de x como posso fazer x22 Uma vez digitada a linha acima o MATLAB atribui para a variável x os seguintes valores 2 1 0 1 2 pois o valor inicial de x é 2 o valor final de x é 2 e o MATLAB nessa sintaxe entende automaticamente que deve caminhar de 1 em 1 compondo assim os valores de x 2 passo Obter os valores de y então devese digitar a função que será desenhada isto é yx5 15 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Com essa instrução são gerados os valores da variável y com os seguintes valores 7 6 5 4 3 compondo o eixo da ordenada 3 passo Para ligar os pares ordenados criados isto é 27 16 05 14 e 23 e ligalos e traçando o gráfico devese digitar plotxy Desta forma será gerada a representação gráfica da função no intervalo definido 4 passo Para finalizar é interessante ter um fundo quadriculado para identificar a representação gráfica então digitase grid on O comando grid representa uma grade quadriculado que é ativado através da cláusula on ou desativada se a cláusula for off Executando estes quatro passos temos como resultado 22 Gerando traçados de curvas Quando for necessário traçar uma função circular por exemplo podemos continuar executando os quatro passos para obter o gráfico Ao executar o comando plot será apresentado uma nova GUI denominada Figure 1 onde é possível observar a presença de todos os valores gerados e calculados dando origem ao gráfico Reforçados por sinalizações adicionais 16 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Resposta SIM mas é importante entender que quantos mais valores tivermos no tabelamento x e y melhor será a precisão do traçado do gráfico Então para entender isso com clareza vamos tomar o seguinte exemplo façamos o gráfico da função ycos2x para 0 x 2π 221 Gerando o gráfico com passo 1 222 Gerando o gráfico com um passo qualquer Para melhorar a precisão de um gráfico muitas vezes precisamos ter muitos pontos então isso só se torna possível quando no primeiro passo do traçado do gráfico inserimos um passo que promova vários valores De uma forma geral podemos escrever o primeiro passo da seguinte forma x xi passo xf onde xi seria o valor inicial de x e xf seria o valor final de x Vamos analisar as possibilidades dessa construção 1 Se o valor de xi for menor que xf isto representa um intervalo crescente logo o passo deve ser positivo um valor escolhido no intervalo 0 passo 1 2 Se o valor de xi for maior que xf isto representa um intervalo decrescente logo o passo deve ser negativo um valor escolhido no intervalo 1 passo 0 No nosso exemplo temos 0 x 2π Portanto xi0 e xf 2π logo o intervalo é crescente então escolheremos um valor para o passo por exemplo 01 Então teremos Fica evidente o valor de x sai de 0 até 2π 6 e caminha de 1 em 1 O gráfico está sem precisão 17 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 23 Alterando o estilo da linha marcadores e cor Para fazer essas alterações temos uma tabela com os códigos de cada caso como pode ser observado a seguir Mas antes de mais nada é importante saber que esses códigos devem ser usados junto com o comando que traça o gráfico no nosso caso seria o comando plot Algumas observações se fazem necessárias 1 A especificação deve estar entre aspas 2 Não importa a ordem das variações 3 Pode ser alterada as três variações ou apenas duas ou até mesmo apenas uma Tipos de cores Marcadores de ponto Tipos de linhas código descrição código descrição código descrição y yellow amarelo point ponto solid sólida m magenta lilás o circle círculo dotted pontilhada c cyan azulclaro x xmark x dashdot traçoponto r red vermelho plus dashed tracejada g green verde star asterisco b blue azul escuro s square quadrado w white branco d diamond diamante k black preto v triangle triângulo triangle triângulo triangle triângulo triangle triângulo p pentagram pentágono h hexagram hexagono Agora temos 63 valores para x e 63 valores para y no intervalo 02π com passo 01 Melhorando muito a precisão do gráfico 18 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para exemplificar o uso desse recurso imagine que você deseje traçar o gráfico da função y5cosx com 0 x 2π e sua derivada sendo o primeiro gráfico na cor vermelha usando marcador círculo e traçado sólido enquanto que a derivada seria na cor preta com traçado tracejado Na execução da proposta devemos calcular a derivada da função Assim y 5cosx y 5senx 24 Comandos importantes no traçado de um gráfico no MATLAB Além do traçado de um gráfico e suas características temos que dar atenção a alguns itens de importância para finalizar esse tipo de trabalho Bom o que será explicado a seguir por comandos também pode ser feito pela GUI Figure na opção Insert mas como podemos automatizar toda a criação de um gráfico é valioso conhecer os comandos a seguir Lembrando que eles devem ser utilizados depois que o gráfico fora feito 1 Como definir o eixo horizontal eixo da abscissa ou eixo X O comando é xlabel isto é o rótulo do eixo x Sua sintaxe é xlabelmensagem A mensagem que identifica o eixo deve sempre estar entre apóstrofe 2 Como definir o eixo vertical eixo da ordenada ou eixo Y O comando é ylabel isto é o rótulo do eixo y Sua sintaxe é ylabelmensagem Atenção Você percebeu que usei apenas um comando plot para fazer os dois gráficos Essa técnica é bem interessante pois podemos fazer vários gráficos simultaneamente só declarando os respectivos pares ordenados 19 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 3 Como definir o título de um gráfico O comando é title isto é título Sua sintaxe é titlemensagem 4 Como criar uma legenda se necessário O comando é legend Sua sintaxe é legendgrafico1graf ico2posição Aqui é importante que entenda uma ordem obrigatória ou seja o gráfico quando criado se mais que um irá ter a necessidade da legenda para identificar cada traçado Assim sendo a legenda segue a ordem o traçado isto é o primeiro gráfico deve ser declarado primeiro na legenda e assim sucessivamente tantos gráficos quantos houver A posição é onde a legenda ser disponibilizada isto é Observação para desativar uma legenda digitase legend off 5 Como traçar vários plot gerando gráficos distintos sem que um gráfico apague o outro O comando que atende esse tipo de situação é o hold então se digitar hold on Estar fixando a região do traçado do gráfico permitindo assim sobreposições sem perdas das definições Caso digite hold off Estará liberando a região do traçado do gráfico Vejamos um exemplo explorando esses comandos 20 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Um corpo suspenso em uma mola é deslocado em cinco unidades da posição de repouso e solto no instante t0 para oscilar para cima e para baixo Sua posição em qualquer instante t é s5cost Sua velocidade é v 5sent Sua aceleração é a 5cost O período do movimento é 2π Tracemos os gráficos identificando os eixos gerando o título criando a legenda e tal sorte que cada gráfico será gerado pelo seu plot individual 25 Caso especial no traçado de um gráfico no MATLAB Para um rápido esclarecimento sobre o assunto imagine que se deseje executar uma operação algébrica em cada elemento do seu tabelamento Isto é execute a operação para cada escalar Se esse for o caso se faça necessário na frente da operação colocar um ponto para que o MATLAB execute a operação para cada escalar Veja o exemplo a seguir Tracemos o gráfico da função 𝑦 1 𝑥 com 2 x 2 21 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 26 Gerando subgráficos no MATLAB Algumas vezes em situações bem peculiares precisamos criar gráficos um do lado do outro para efetuar uma possível comparação das tendências das funções Então precisamos entender um pouco melhor a região na qual estamos trabalhando até o presente momento Até o presente momento temos traçado gráficos em uma região unitária reconhecida pelo MATLAB como sendo subplot111 Aí surge a seguinte pergunta É possível colocar mais de um conjunto de eixos em uma mesma figura criando assim múltiplos diagramas Os subdiagramas são criados pelo comando subplot Agora imaginemos que essa área unitária deveria ser subdividida em quatro partes por exemplo então como ficaria a identificação de cada região Nesse caso queremos pegar cada elemento de x e calcular seu inverso 1x isto é fazer a divisão para cada valor Logo se não houver o PONTO na frente a operação gera o erro acima sinalizado 22 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Acionada a região pelo comando subplot então é possível utilizar todos os comandos vistos para a criação do gráfico na respectiva região Cabe destacar que também é possível se necessário traçar mais do que um gráfico na região Além do plot no plano cartesiano xOy temos outros comandos veja como eles funcionam pie pareto histfit área fplot semilogx semilogy stem e acredite tem muito mais Agora para ver gráfico em R3 veja a princípio esse link httpswwwyoutubecomwatchvMMdPEVUtSTQ 23 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 3 SCRIPT MATLAB CONCEITOS E COMANDOS INICIAIS Quando temos uma sequência de declarações e essas devem ser repetidas por várias vezes em momentos distintos devemos ter como armazenadas e para isso que criamos os scripts no MATLAB chamados de arquivos M por conta de sua extensão m Os scripts são roteiros ou funções que tem a finalidade de agilizar o dia a dia do Engenheiro Os scripts que serão criados deste instante em diante no ambiente MATLAB tem a característica de ser interpretados não existe o processo de compilação Desta forma são gerados os Mfile Os arquivos do tipo Mfile são arquivos texto que contêm uma sequência de comandos MATLAB A execução do script se dá como se o MATLAB estivesse executando os comandos na janela de comandos isto é um a um dentro de uma sequência lógica Quando o script for criado e devidamente gravado o mesmo pode ser executado digitando o nome do arquivo no command window lembrando que não se coloca a extensão m desde que o MATLAB esteja no diretório corrente current directory onde se encontra o respectivo script Vamos então começar a trabalhar para tanto o primeiro passo seria 31 Ativando o editor de Script Então inicialmente no command window podemos ativar o editor nativo para tanto devemos digitar no prompt do MATLAB a palavra edit e em seguida pressione enter Porém um Script m pode ser criado usandose qualquer editor de texto lembrando que o arquivo deve ter extensão m Ao executar esse procedimento será disponibilizada uma nova GUI para editar o script desejado Isto é 24 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Aproveitando os conceitos do capítulo anterior vamos imaginar que se precise o gráfico da função ysen2x e sua derivada com 0 x 2π Porém gostaria de gerar um script para esse tipo de tarefa então podemos observar que o que faríamos no command window agora vamos escrever no editor Isto é 32 Gravando o Script Estando no editor na área de ícone você verá que o ícone do disquete está ativo então clique nele Como mostra a figura 25 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Aí você verá o broswer caixa de diálogo para que possa escolher onde será gravado seu script Conforme figura Clicando em Este Computador terá acesso a todas as mídias disponível então direcione para a que escolher identifique o diretório onde será armazenado seu script Uma vez selecionado o caminho você deve definir o nome do script Para isso existe duas considerações a ser feita 1 O nome do script não pode ter caracteres especiais 2 Se o nome do script for composto por mais de uma palavra não pode ter espaço em branco Então separe as palavras utilizando underline É interessante que o nome do arquivo represente o que o script faz 33 Executando o Script Antes de mais nada se faz necessário atualizar o diretório corrente no MATLAB então veja a figura a seguir 26 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 1 Clique no ícone que tem os três pontos onde a seta está sinalizando então terá acesso novamente ao browser direcione para onde gravou o script e clique em OK 2 Observe se ao lado no Current Directory lá deve estar o caminho indicado 3 Ai clique na janela do Current Directory e terá que visualizar o arquivo m que gravou nesse lugar Com essas etapas executadas você poderá executar o seu script digitando no Command Window no prompt o nome do programa Lembrando que não deve colocar a extensão isto é m 34 Comandos iniciais de um Script Quando fazemos um script devemos seguir o que chamamos de boas práticas A primeira providência seria criar linhas de comentários para que através dela sem ter que ler o código conseguíssemos entender a finalidade do script e também registrar a autoria data de criação entre outras informações Então vejamos qual é esse comando e como utilizar no nosso script Comando Usar esse comando não influencia diretamente na lógica de desenvolvimento mas serve para gerar uma documentação no próprio script Outra utilidade desse comando e gerar comentários em uma linha para deixar registrado sua função ou até mesmo sinalizar o começo de uma estrutura em um código mais longo No script poderia ser assim por exemplo 27 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Outras duas instruções ainda fazem parte das boas práticas é garantir que seu programa quando for executado tenha a memória limpa e a área de comandos também esteja limpa para o registro dos resultados advindos do processamento Então Agora pensemos no usuário O script atende as nossas necessidades mas caso o gráfico demore para aparecer o usuário ficará em dúvida sobre a execução do programa 28 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Isso nos remete ao fato de procurar um comando capaz de enviar uma mensagem para o usuário Assim sendo Comando dispmensagem Um outro comando que já temos utilizado em larga escala e agora recebe sua definição seria o comando de atribuição isto é Comando variável atribuição Neste comando definimos uma variável que normalmente representa um conteúdo como por exemplo numero 2 isto é a variável numero irá armazenar na memória o valor 2 valor numero 2 isto é a variável valor irá armazenar o processamento da expressão consequentemente na variável valor ficará armazenado o valor 4 x 0012pi também é uma atribuição onde na variável x ficará armazenado um vetor isto é x 0 01 02 03 60 61 representando assim um vetor com uma linha e sessenta e três colunas 1x63 29 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância y sin2x é mais uma atribuição onde a variável y só existirá se e somente se a variável x já tenha sido criada usando o exemplo acima y armazenará o cálculo de cada valor de x assim sendo y também será um vetor com uma linha e sessenta e três colunas 1x63 Mas mediante ao colocado até aqui o nosso script é estático isso é ele funciona mas sempre gera o mesmo resultado e o usuário não tem interação com o processamento ou seja ele não fornece nenhuma informação Surge então a seguinte pergunta O usuário poderia enviar um dado para o computador em tempo de execução E a resposta é sim através Comando variável input mensagem Vejamos como implementar isso no nosso exemplo imagine que você continua querendo o gráfico da função e de sua derivada porém você gostaria de definir em que intervalo de x isso seria traçado Logo 30 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Nessa implementação você deve observar alguns detalhes importantes no cunho lógico 1 A mensagem Aguarde traçando o gráfico foi deslocada para baixo antes do comando plot Pois seria necessário primeiro receber as informações para depois traçar o gráfico 2 Assim sendo se tornou primordial a criação de uma nova mensagem no começo do programa para que o usuário pudesse entender o que estaria para acontecer 3 Para que uma mensagem não ficasse abaixo da outra na linha 7 do script utilizamos o comando disp para promover o salto de uma linha 4 Depois de recebido o valor inicial de x xi e o valor final de x xf se fez necessário ajustar a atribuição do vetor x em função dos dados de entrada Desta forma agora temos um programa flexível que atende as necessidades do usuário e permite sua interação algo extremamente comum num processamento computacional Agora vejamos uma possibilidade o usuário querer fornecer um valor de x no intervalo do gráfico e precisar obter retorno da função y e da derivada yd sendo que estes valores devem ter 6 casas decimais Bom agora precisamos saber como exibir um resultado de um processamento Para tanto temos Comando fprintfmensagem formataçãovariável 31 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância No contexto da formatação a mais usual é a penúltima pois permite que você flexibilize o resultado de acordo com a necessidade Complementada com a última informação do quadro Vejamos como implementar isso no nosso código de trabalho Comentando as linhas para uma melhor compreensão Na linha 20 recebemos o valor de x para tanto criamos a variável vx Na linha 21 calculamos o valor de y na função yvx e em seguida na sua derivada ydvx Na linha 22 exibimos o valor calculado em yvx com a formatação 106f isto é formata o resultado com a seguinte mascara nnnnnnnnn isto é 10 casas ao todo incluindo o ponto decimal e tendo seis casas decimais como solicitado Na linha 23 o raciocínio é equivalente para ydvx Mas se avaliarmos o código até aqui ele já evoluiu bastante mas ainda tem pontos frágeis isto é os dados fornecidos se não forem querentes teremos erro de processamento Para evitar esse tipo de problema deveríamos consistir os dados de entrada para garantir sua integridade Assim sendo precisamos conhecer um comando condicional 32 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância O comando condicional tem por finalidade avaliar uma condição simples ou composta e decidir se os comandos serão ou não executados Assim sendo temos as seguintes notações Condição é a sintaxe da pergunta formulada na condicional para tanto usase operadores e estes se dividem em dois grandes grupos a saber Operadores Relacionais estes operadores permitem que se estabeleça uma relação entre variáveis com outra variável ou variável com uma constante assim sendo utilizase os seguintes símbolos comando comando comando comando sim Não 33 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Operadores Lógicos permitem a composição de condições utilizando os conectores e ou não utilizando os seguintes símbolos Como poderíamos implementar esse comando no nosso script Bom para responder essa pergunta primeiramente devemos avaliar as informações fornecidas isto é xi xf e vx Já que o xi percorre um valor qualquer do eixo do x e sabemos que x é o eixo da abscissa que contém os números reais e nas funções trigonométricas não temos restrição a valores Podemos concluir que xi pode ser qualquer valor real Agora vamos avaliar o valor de xf como esse valor será um valor final e teremos um intervalo crescente é necessário que xf seja sempre um valor maior que xi Logo isso é uma condição Agora caso isso não seja atendido informaremos ao usuário que ocorreu esse tipo de erro e encerraremos o script Com relação ao valor de x vx essa informação deverá ser obrigatoriamente um valor contido no intervalo xi vx xf Caso isso não seja atendido exibiremos uma mensagem de erro e encerraremos o script Então teremos 34 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância s n s n 35 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 4 CONDICIONAL ENCADEADA E ESTRUTURA DE REPETIÇÃO Nesse tópico iremos falar sobre dois comandos que podem auxiliar bastante na geração de um script A condicional encadeada permite dentro de um cenário especifico uma redação do comando mais confortável favorecendo o tratamento lógico do desenvolvimento de um script A estrutura de repetição é um conjunto de instruções que é realizado repetidamente em um script Utilizando esse conceito será discutido estrutura de repetição com limiar 41 Comando Condicional Encadeada A possibilidade de uma instrução condicional se estar dentro de outra condicional é que se denomina Condicional Encadeada Ao ingressar em uma condição ou até mesmo executando a clausula else mediante a explicação acima devemos entender que o procedimento foi cumprido e o controle do processamento será transferido para o comando imediatamente após o end Se o retorno for sim para condição acima executa os comandos Se nenhuma das condições forem atendidas executa os comandos Se o retorno for sim para condição acima executa os comandos Se o retorno for sim para condição acima executa os comandos Se o retorno for sim para condição acima executa os comandos 36 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para que possamos entender o funcionamento da condicional encadeada pensemos em um exemplo bem simples Em um script o usuário deverá fornecer um número inteiro positivo e mediante a informação daremos o retorno se o mesmo é para ou ímpar Fazendo a consistência do dado de entrada Então pensando na proposta vem a nossa cabeça o seguinte conceito se o número for divisível por 2 é par senão é ímpar Agora vem a seguinte dúvida como chegar no resto da divisão inteira Bom para isso temos no MATLAB duas funções equivalente a saber mod ou rem cuja sintaxe é resto mod dividendodivisor ou resto remdividendodivisor Com os conceitos ajustados a resolução seria Observação final depois da linha 13 onde está o end o script seguirá executando as linhas 14 e 15 Na linha 15 você pode observar que foi usado o comando pause ele é um 37 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância temporizador e o número inteiro no caso 5 caracteriza o tempo da pausa em segundos aproximadamente Vejamos agora um exemplo aplicado na Engenharia isto é um problema fundamental para empresas que armazenam líquidos em tanques esféricos é a necessidade de realizar cálculos da área da superfície e volume de regiões esféricas a partir do conhecimento da altura do líquido h e do raio da esfera R Como podemos observar na figura então vamos lembrar quais são as fórmulas da área da superfície da calota esférica Sc e do volume da calota esférica Vc 𝑆𝑐 2 𝜋 𝑅 ℎá𝑟𝑒𝑎𝑑𝑎𝑠𝑢𝑝𝑒𝑟𝑓í𝑐𝑖𝑒 𝑉𝑐 𝜋ℎ23𝑅ℎ 3 𝑣𝑜𝑙𝑢𝑚𝑒 Com base nessas informações façamos um script que receba os dados e permita que o usuário escolha entre as opções 1 Área da superfície 2 Volume 3 Sair 38 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Observação o script acima quando gravado foi definido seu nome como sendo reservatórioesferico Na opção 3 sair o último comando close faz com que o MATLAB encerre o programa porém não fecha o ambiente MATLAB 42 Conversão de Dados O MATLAB é usado extensivamente para cálculos Sendo assim é bem mais comum o seu uso com números Entretanto nas situações em que há necessidade de se lidar com textos MATLAB também oferece ferramentas que permitem este tipo de manipulação Vamos apresentar duas delas aqui com a intenção de melhorar a forma de apresentar um resultado porém o MATLAB possui diversas funções para manipulação de strings as outras podem ser encontradas na bibliografia e no help online 421 Convertendo número para string No MATLAB temos uma função capaz de converter um número para string onde string que dizer dados alfanuméricos Escrevendo essa conversão em inglês teríamos number to string é daí que surge a função com a seguinte sintaxe num2strx Onde x pode ser uma variável numérica ou até mesmo um número qualquer 422 Convertendo string para número Também existe no MATLAB uma função com essa finalidade isto é transformar uma informação numérica que fora armazenada com um texto e convertela para número Para tanto teríamos em inglês string to number gerando assim a função com a sintaxe str2numy Onde y pode ser uma variável alfanumérica ou até mesmo uma string do tipo 98 423 Compondo um resultado utilizando o comando fprintf Para compor uma string que será exibida através do comando fprintf mesclando string fixas com valores convertidos devemos gerar uma variável string concatenando as informações seguindo a seguinte sintaxe variável string convertida string fixa string convertida string fixa fprintfvariável 39 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Vejamos um exemplo para melhor compreensão do uso da função e o seu resultado final Para tanto imaginemos o seguinte caso temos uma variável n que armazena o número 2 temos uma variável f que armazena o número 1 e na variável p irá armazenar o resultado de nf Mas gostaríamos que fosse exibida a seguinte sentença como resultado final 2 x 1 2 onde o primeiro número 2 está em n logo dado numérico o número 1 está em f logo dado numérico o último número 2 está em p logo dado numérico Mas x e não são numéricos e sim string Assim sendo temos que gerar tudo em um único padrão isto é ou tudo será número ou tudo será string Como não conseguimos transformar x e em número será necessário converter os dados numéricos para string Então o script ficaria assim Tendo como resultado no command window É importante acessar o help online e verificar essas outras funções que podem ajudar muito no desenvolvimento de script char strvcat strcat int2str str2double mat2str sscanf 43 Estrutura de repetição com limiar Uma estrutura de repetição com limiar é um laço que repete instruções em um número especificado de vezes assim antes da execução sabese quantas vezes as instruções devem ser repetidas 40 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Iniciemos com um exemplo bem simples isto é façamos um script que exibe a tabuada de um número qualquer Então o usuário deverá informar o número n e ai será exibida a tabuada clássica de nx1 até nx10 Vejamos o script Observe que o próprio MATLAB faz o jump do end para o for isso quer dizer que quando o laço se inicia o valor de f é igual a 1 então executa os comandos a seguir ao chegar no end ele retorna para o for e como não foi definido nenhum passo o MATLAB entende que o incremento é de 1 assim sendo executa as instruções para f igual a 2 e assim sucessivamente até chegar no valor de f igual a 10 fazendo então a execução das instruções pela última vez Quando chegar no end irá retornar para o for somando um consequentemente f valerá 11 só ai sairá da estrutura de repetição Cabe destacar que após o end houvesse outras instruções elas seria executadas por a execução da estrutura de repetição 41 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância O resultado final da execução do script é Fazendo agora uma primeira aplicação na área de Engenharia podemos pensar em algo desse tipo Num ensaio químico fora medido a temperatura em Celsius A água estava inicialmente com a temperatura de 25 passando por um processo de aquecimento notou se que a temperatura subia de 2 em 2 até atingir 40 Faça um programa que converta essa escala em Kelvin e Fahrenheit exibindo as informações em uma tabela Sabendo que K C 27315 F C x 18 32 Implementando no MATLAB temos Nesse desenvolvimento vale alguns comentários importantes 42 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 1 Na linha 6 é gerado o cabeçalho da tabela para que haja o espacejamento entre as colunas no MATLAB utilizamos como pode ser observado em detalhe fprintfCelsius Kelvin Farenheit 2 No laço for notamos que o passo agora é de 2 em 2 como mostra a linha for c25240 3 Na linha 10 temos a composição do resultado de cada linha da tabela para tanto temos a formatação de cada temperatura separa respectivamente por distância e para poder exibir os valores deve ser observado que as variáveis estão entre colchetes e separadas por virgula Essa prática deve ser realizada sempre que precisarmos exibir mais de um valor Agora vejamos como é possível representar uma série no MATLAB então faça um script que determine a soma dos m primeiros termos da série de Leibniz aonde a quantidade m deve ser informada pelo usuário Essa série converge para o valor 𝜋 4 Sua implementação no MATLAB é Façamos mais um exemplo de aplicação na Engenharia Uma viga tem pesos iguais colocados nos pontos representados pela equação dn 2n onde d é local de cada peso sobre a viga e n é a quantidade de peso sabendo que esse deve ser maior que zero e menor que 10 210 1 2 1 1 0 m n com n m n n 43 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Assim sendo o usuário deve informar a quantidade de peso Será exibido a que posição ficará cada peso e também mostrar a média dos pesos distribuídos que irá caracterizar o ponto de equilíbrio para essa viga Implementando temos Reforce os conceitos desse tópico e conheça uma outra estrutura de repetição através do link httpswwwyoutubecomwatchvnicZWmf3Oc 44 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 5 MATRIZES E DETERMINANTE NO MATLAB Matematicamente podemos entender matriz da seguinte forma Dados dois números m e n naturais e não nulos denominase matriz m por n indicando por m x n toda tabela M formada por números reais elementos ou termos distribuídos na m linhas e n colunas Escrevemos uma matriz dispondo os elementos entre colchetes ou entre parênteses Como por exemplo 𝑀 1 𝜋 2 0 12 3 2𝑥3 Em uma matriz qualquer M cada elemento é indicado por 𝑎𝑖𝑗 Onde o índice i indica a posição a linha e j a posição da coluna em que o elemento se encontra Genericamente uma matriz M é representada por 𝑀 𝑎𝑖𝑗𝑚𝑋𝑛𝑐𝑜𝑚1 𝑖 𝑚𝑒1 𝑗 𝑛 𝑜𝑛𝑑𝑒𝑖 𝑗 ℕ ou simplesmente 𝑀 𝑎𝑖𝑗𝑚𝑋𝑛 Agora vejamos com levar esse conceito para o MATLAB então vale as seguintes diretrizes 1 Identificar a matriz por uma letra maiúscula gerando a variável que irá receber a matriz através de uma atribuição 2 Os elementos devem estar entre colchetes 3 A digitação deve iniciar pelo primeiro elemento isto é 𝑎11 seguindo os elementos da respectiva linha 4 Cada elemento de uma linha deve ser separado por espaço ou por virgula 5 Para finalizar a linha editada o último elemento deve ser seguido por ponto e vírgula indicando para o MATLAB que irá ocorrer a digitação de uma nova linha 6 Ao concluir a inclusão dos elementos linha a linha não esqueça de fechar o parêntese Executando a matriz acima no MATLAB temos 45 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 51 Tipos de matrizes em função do seu dimensionamento Matriz Quadrada é quando a quantidade de linhas é igual a quantidade de colunas Matematicamente MATLAB 𝐴 1 03 5 14 2𝑋2 Matriz Retangular é quando a quantidade de linhas é diferente da quantidade de colunas Matematicamente MATLAB 𝐴 1 0 23 5 1 𝜋 2𝑋3 Matriz Linha é quando só tem uma linha e uma quantidade de coluna qualquer maior que um Matematicamente MATLAB 𝐴 5 31𝑋2 46 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Matriz Coluna é quando se tem várias linhas m1 e uma única coluna Matematicamente MATLAB 𝐴 2 13 0 3𝑋1 52 Adição de matrizes Dadas duas matrizes Aaijmxn e Bbijmxn chamase adição AB a matriz Ccijmxn tal que cijaijbij para todo i e todo j Isto significa que a adição de duas matrizes A e B do tipo mxn é uma matriz C do mesmo tipo em que cada elemento é a soma dos elementos correspondentes em A e B Exemplo Dadas as matrizes A e B calcule a adição de A por B e a adição de B por A no MATLAB Observe que 53 Subtração de matrizes Dadas duas matrizes Aaijmxn e Bbijmxn chamase subtração AB a matriz Ccijmxn tal que cijaijbij para todo i e todo j Isto significa que a adição de duas matrizes A e B do tipo mxn é uma matriz C do mesmo tipo em que cada elemento é a soma dos elementos correspondentes em A e B 𝐴 1 2 3 4 5 6 𝐵 1 0 1 2 1 1 Então calcule AB e BA 𝐴𝑚𝑋𝑛 𝐵𝑚𝑥𝑛 𝐵𝑚𝑥𝑛 𝐴𝑚𝑥𝑛 Então calcule AB e BA 47 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Exemplo Dadas as matrizes A e B calcule a subtração de A por B e a subtração de B por A no MATLAB Observe que 54 Multiplicação de um escalar por uma Matriz Dado um número k e uma matriz Aaijmxn chamase produto kA a matriz Bbijmxn tal que bij kaij para todo i e todo j Isto significa que multiplicar uma matriz A por um número k é construir uma matriz B formada pelos elementos de A todos multiplicados por k Exemplo Seja k2 o escalar e a matriz Calcule a matriz B com sendo kA no MATLAB Então 55 Multiplicação de Matrizes Dadas duas matrizes Aaijmxn e Bbjknxp chamase produto AB a matriz Ccikmxp tal que para todo i Є 12m e todo k Є 12p Assim para garantir a multiplicação entre matrizes é necessário que 𝐴 1 2 3 4 5 6 𝐵 1 0 1 2 1 1 Então calcule AB e BA 𝐴𝑚𝑋𝑛 𝐵𝑚𝑥𝑛 𝐵𝑚𝑥𝑛 𝐴𝑚𝑥𝑛 𝐴 1 2 3 4 5 6 n j jk ij nk in k i k i k i ik b a b a b a b a b a c 1 3 3 2 2 1 1 Para garantir a multiplicação entre matrizes é necessário que 48 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Esse conceito matemático também é válido no MATLAB assim sendo com a condição de existência da multiplicação de duas matrizes não é satisfeita no MATLAB temos um retorno de erro desse tipo Error using Inner matrix dimensions must agree Exemplo Se no MATLAB for fornecida as matrizes 𝐴 1 2 3 4 5 6 2𝑥3 e 𝐵 0 1 1 0 2 1 3𝑥2 Calcule A x B Então temos 56 Matriz transposta Dada uma matriz chamase transposta de A a matriz tal que para todo i e todo j Isto significa que as colunas de At são ordenadamente iguais às linhas de A Matematicamente teríamos No MATLAB ij ji a a mxn A aij nxm ji t a A 𝑆𝑒𝑗𝑎 𝐴 1 2 3 4 5 6 𝐸𝑛𝑡ã𝑜 𝐴𝑡 1 4 2 5 3 6 Notação da Matriz Transposta 49 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 57 Matriz Identidade É toda e qualquer matriz quadrada onde na diagonal principal os elementos são sempre 1 e o resto é igual a zero Assim matematicamente teríamos No MATLAB seria Agora é importante notar que 58 Determinantes Consideremos o conjunto das matrizes quadradas de elementos reais Seja M uma matriz de ordem n desse conjunto Chamamos determinante da matriz M det M o número que podemos obter operando com os elementos de M A notação do determinante da matriz M no MATLAB é detM então vejamos alguns exemplos 1 𝑆𝑒𝑗𝑎 𝐴 5 6 4 5 𝑒𝑛𝑡ã𝑜 𝑑𝑒𝑡𝐴 1 logo no MATLAB 𝐼2 1 0 0 1 𝐼3 1 0 0 0 1 0 0 0 1 etc 𝐼𝑖𝑗 1 𝑠𝑒 𝑖 𝑗 0 𝑠𝑒 𝑖 𝑗 Notação da Matriz Identidade Se o n de linhas colunas não ocorre erro porém não é Identidade 50 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 2 𝑆𝑒𝑗𝑎 𝐵 1 0 1 1 2 3 1 2 4 então detB 2 no MATLAB 3 𝑆𝑒𝑗𝑎𝐶 1 2 3 5 6 7 2 3 6 4 8 8 0 10 2 𝑒𝑛𝑡ã𝑜 det𝐶 0 no MATLAB temos 59 Matriz Inversa Seja A uma matriz quadrada de ordem n Dizemos que A é matriz inversível se existir uma matriz BA1 tal que AB BA In Se A não é inversível dizemos que A é uma matriz singular Vejamos um exemplo 𝑆𝑒𝑗𝑎 𝐴 1 0 2 1 𝑐𝑎𝑙𝑐𝑢𝑙𝑒 𝐴1 Matematicamente temos No MATLAB temos Notação da matriz inversa A1 no MATLAB é invA então 𝐶 𝐸 𝐴1 det𝐴 0 det𝐴 1 𝑒𝑛𝑡ã𝑜 𝐴1 𝑆𝑒𝑗𝑎 𝐴1 𝑎 𝑏 𝑐 𝑑 𝑒𝑛𝑡ã𝑜 𝐴 𝐴1 𝐼2 1 0 2 1 𝑎 𝑏 𝑐 𝑑 1 0 0 1 𝑎 𝑏 2𝑎 𝑐 2𝑏 𝑑 1 0 0 1 ቄ 𝑎 1 2𝑎 𝑐 0 ቄ 𝑎 1 𝑐 2 ቄ 𝑏 0 2𝑏 𝑑 1 ቄ𝑏 0 𝑑 1 𝐴1 1 0 2 1 51 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Utilizando os conceitos apresentados vamos desenvolver um script capaz de automatizar o cálculo da matriz inversa sendo necessário apenas fornecer a matriz Veja a seguir Nesse exemplo será adotado o método criptográfico que utiliza matriz como Chaves para codificar e decodificar uma mensagem Para tanto será utilizada uma matriz quadrada de ordem 2 cujos elementos são números inteiros a saber 1 𝑝𝑎𝑠𝑠𝑜 𝑣𝑒𝑟𝑖𝑓𝑖𝑐𝑎𝑟 𝑠𝑒 𝐴1 Notação para calcular a Inversa 52 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝐴 1 3 2 7 Com base nessa informação deverá ser calculada a sua inversa que será denominada de B Assim sendo o remetente vai usar a matriz A para codificar a mensagem e o destinatário vai usar a matriz B para decodificala Inicialmente dada uma mensagem para ser codificada a mesma deve ser convertida da forma alfabética para a forma numérica utilizando a tabela de associação de letras e números como mostra a tabela a seguir A B C D E F G H I J K L M N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P Q R S T U V W X Y Z 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Tanto o remetente como o destinatário têm em comum essa tabela de conversão e foi acordado que o espaço entre as palavras será representado pelo símbolo Usando os conceitos estabelecidos observe o remetente como trata o texto e em seguida o destinatário Qual será a mensagem enviada Remetente Destinatário 𝑇 15 29 17 21 5 29 22 15 3 5 29 16 5 14 19 1 28 29 22 15 3 5 29 3 18 9 1 30 𝑀 𝐴 𝑇 72 32 101 108 71 74 31 30 90 14 73 43 8 104 163 65 230 245 164 163 65 65 209 31 164 95 17 238 𝐴 1 3 2 7 𝑀 72 32 101 108 71 74 31 30 90 14 73 43 8 104 163 65 230 245 164 163 65 65 209 31 164 95 17 238 𝐴 1 3 2 7 det𝐴 𝑒𝑛𝑡ã𝑜 𝐵 𝐴1 7 3 2 1 53 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Usando o quadro A B C D E F G H I J K L M N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P Q R S T U V W X Y Z 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Oquevocêpensavocêcria 𝐵 𝑀 𝐵 𝐴 𝑇 𝐼 𝑇 𝑇 15 29 17 21 5 29 22 15 3 4 29 16 5 14 19 1 28 29 22 15 3 5 29 3 18 9 1 30 54 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 6 SITEMAS LINEARES USANDO MATLAB É um conjunto de m m1 equações lineares nas incógnitas x1x2x3xn Assim o sistema S é linear Existem três classificações para um sistema linear a saber Sistema Possível e Determinado SPD uma única solução para cada variável Sistema Possível e Indeterminado SPI infinitas soluções para cada variável Sistema Impossível SI não tem solução para cada variável 61 Resolução do Sistema Linear por Equação Matricial Lembrando a definição de produto de matrizes notemos que o sistema linear S pode ser escrito na forma matricial Então matematicamente temos Assim sendo podemos entender que se existir a inversa da matriz A o sistema será sempre possível e determinado SPD Porém se não existir a inversa da matriz A quanto a classificação nada podemos afirmar Vejamos agora o passo a passo que devemos executar no MATLAB através do Command Window Por exemplo Considere a soma das medidas de uma base e da altura relativa a essa base de um triângulo igual a 168 cm e a diferença igual a 24 cm Determine a base e altura desse triângulo m n mn m m m n n n n b x a x a x a x a b a x a x a x x a b a x a x a x x a S 3 3 2 2 1 1 2 2 3 23 2 22 1 21 1 1 3 13 2 12 1 11 m n mn m m m n n b b b b x x x x a a a a a a a a a a a a 3 2 1 3 2 1 3 2 1 2 23 22 21 1 13 12 11 B A X B A X I B A A X A B X A 1 1 1 1 𝐴1 𝐴 𝐴 𝐴1 𝐼 𝐼 𝑋 𝑋 𝐼 𝑋 A X B 55 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Inicialmente devemos montar o sistema e gerar as matrizes isto é No MATLAB temos Escrevendo um script para automatizar essa tarefa temos Vamos fazer um exemplo e aplicar no script acima ቄ𝑏 ℎ 168 𝑏 ℎ 24 ቄ1 𝑏 1 ℎ 𝟏𝟔𝟖 1 𝑏 1 ℎ 𝟐𝟒 Considerando Se detA0 então o SPD Achar a matriz X 56 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Uma companhia de navegação tem três tipos de recipientes A B e C que carrega cargas em containers de três tipos I II e III As capacidades dos recipientes são dadas pela tabela a seguir Recipiente Tipo I Tipo II Tipo III A 4 3 2 B 5 2 3 C 2 2 3 Quais são os números de recipientes A B e C de cada categoria se a companhia deve transportar 42 containers do tipo I 27 do tipo II e 33 do tipo III 62 Método de eliminação de Gauss por pivot Para iniciar o cálculo temse um prérequisito isto é o detA0 Assim sendo se faz necessário transformar o sistema original AXB num outro sistema equivalente isto é B à X Com matriz à triangular superior evitando assim o cálculo da matriz inversa O sistema equivalente será muito fácil de resolver pois bastará usar substituição ascendente de baixo para cima calcular o valor de cada incógnita para obter à solução pretendida ൝ 4𝐴 5𝐵 2𝐶 42 3𝐴 2𝐵 2𝐶 27 2𝐴 3𝐵 3𝐶 33 𝐴 4 5 2 3 2 2 2 3 3 𝑒 𝐵 42 27 33 57 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Assim o objetivo é obter uma matriz triangular superior a partir da matriz ampliada do sistema A efetuando apenas operações elementares sobre as linhas da matriz ampliada Então seja Que se pode resolver facilmente por substituição ascendente isto é Resolva o sistema a seguir pelo método de eliminação gaussiana por pivot Gerando a matriz ampliada do sistema temos 3 3 2 2 1 1 3 2 1 2 2 2 23 2 22 1 1 1 13 1 12 1 11 3 2 1 3 2 1 3 2 1 2 23 22 21 1 13 12 11 0 0 0 0 n n n n nn n n n n nn n n n n n b b b b x x x x a a a a a a a a b b b b x x x x a a a a a a a a a a a a 11 1 n k para a a b x a b x k kk n i j k kj k k k n nn n n n ൝ 𝑥 𝑦 𝑧 1 4𝑥 4𝑦 2𝑧 2 2𝑥 𝑦 𝑧 0 ൝ 1𝑥 1𝑦 1𝑧 𝟏 4𝑥 4𝑦 2𝑧 𝟐 2𝑥 1𝑦 1𝑧 𝟎 O que podemos fazer com a matriz ampliada 1 posso trocar a ordem das linhas 2 posso multiplicar uma linha por um escalar diferente de zero 3 posso descartar linha de zeros 4 posso trocar linha por uma combinação linear da outra linha isto é 𝐿𝑖 𝐿𝑖 𝑘 𝐿𝑗 𝑜𝑛𝑑𝑒 𝑖 𝑗 1 1 1 𝟏 4 4 2 𝟐 2 1 1 𝟎 x 4 x 2 pivot 1 1 1 𝟏 𝟎 0 2 2 𝟎 1 3 2 Pivot não pode ser nulo 1 1 1 𝟏 𝟎 1 3 2 𝟎 𝟎 2 2 ൝ 1𝑥 1𝑦 1𝑧 𝟏 𝟎𝑥 1𝑦 3𝑧 𝟐 𝟎𝑥 𝟎𝑦 2𝑧 𝟐 Então geramos o seguinte sistema X 1 Y 1 Z 1 58 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Desenvolvendo um script para executar a resolução de sistemas lineares pelo método de eliminação de Gauss por pivot temos Resolvendo o sistema de baixo para cima temos 59 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Resolva os sistemas a seguir utilizando o script desenvolvido 1 ൝ 𝑥 2𝑦 1 𝑥 𝑦 𝑧 0 2𝑥 4𝑦 2𝑧 2 2 ൝ 𝑥 3𝑦 𝑧 1 𝑥 𝑦 2𝑧 1 2𝑥 4𝑦 3𝑧 0 3 ൝ 𝑥 5𝑦 𝑧 1 𝑥 𝑦 4𝑧 0 2𝑥 4𝑦 5𝑧 0 60 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 7 POLINÔMIOS NO MATLAB Definição Dada a sequência de números complexos 𝑎0 𝑎1 𝑎2 𝑎𝑛 consideremos a função f C C dada por A função f é denominada função polinomial associado à sequência dada que também será denominada de polinômio 71 Valor Numérico Definição Chamase valor numérico de f em a a imagem de a pela função f isto é Aplicando o conceito em um contexto matemático no exemplo a seguir temos Se 𝑓𝑥 3𝑥3 𝑥2 𝑥 2 calcule f2 e f1 Então 𝑓2 3 23 22 2 2 32 𝑓1 3 13 12 1 2 1 No MATLAB para obter o valor do polinômio num determinado ponto temse o comando polyval então o exemplo acima ficaria assim no command window No exemplo a seguir busquemos a resolução utilizando o conceito matemático e aplicando no MATLAB 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑓𝑎 𝑎0 𝑎1𝑎 𝑎2𝑎2 𝑎𝑛𝑎𝑛 Os coeficientes devem ser fornecidos em ordem decrescente do expoente de x Caso não exista devese registrar zero 61 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância A variação de temperatura no Antártico durante um dia de inverno foi registrada por um instituto meteorológico As temperaturas T em graus Celsius registradas em função da hora h de 5h às 17h nesse dia podem ser encontradas através da função T h h² 22h 85 Nesse dia qual foi a temperatura mínima registrada nessa região Calculando o valor na hora inicial 5h Calculando o valor na hora final 17h Como os valores inicial e final são raízes da função buscase o valor médio do eixo da abscissa tempo caracterizando o xv isto é 𝑥𝑣 517 2 para obter yv que será a temperatura mínima procurada Então 72 Operação de Adição de polinômios Definição Dados dois polinômios f e g Chamase soma de f com g o polinômio 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑎𝑖𝑥𝑖 𝑛 𝑖0 𝑔𝑥 𝑏0 𝑏1𝑥 𝑏2𝑥2 𝑏𝑛𝑥𝑛 𝑏𝑖𝑥𝑖 𝑛 𝑖0 𝑓 𝑔𝑥 𝑎𝑖 𝑏𝑖𝑥𝑖 𝑛 𝑖0 62 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Aplicando matematicamente o conceito no exemplo a seguir temos Dado os polinômios Calcule a soma de f com g Ordenando os expoentes temos Logo Agora vem a pergunta como seria isso no MATLAB É fundamental dois passos a saber 1 Ordenar os expoentes do maior para o menor 2 Caso algum termo não exista deve ser colocado zero no lugar Então A partir desse processamento é de competência do usuário saber compor o polinômio Mas isso também é simples basta reconhecer o grau dos polinômios isto é f 2 e g 4 logo fg 4 Então teremos 73 Operação de Subtração de polinômios Definição Dados dois polinômios f e g Chamase soma de f com g o polinômio Aplicando matematicamente o conceito no exemplo a seguir temos Dado os polinômios Calcule a subtração de f com g 𝑓𝑥 𝑥2 3𝑥 4 𝑔𝑥 𝑥4 3𝑥2 5 𝑓𝑥 0𝑥4 0𝑥3 𝑥2 3𝑥 4 𝑔𝑥 𝑥4 0𝑥3 3𝑥2 0𝑥 5 𝑓 𝑔𝑥 𝑥4 0𝑥3 4𝑥2 3𝑥 9 adicao 𝑥4 0𝑥3 4𝑥2 3𝑥 9 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑎𝑖𝑥𝑖 𝑛 𝑖0 𝑔𝑥 𝑏0 𝑏1𝑥 𝑏2𝑥2 𝑏𝑛𝑥𝑛 𝑏𝑖𝑥𝑖 𝑛 𝑖0 𝑓 𝑔𝑥 𝑎𝑖 𝑏𝑖𝑥𝑖 𝑛 𝑖0 𝑓𝑥 𝑥4 3𝑥2 5 𝑔𝑥 𝑥2 3𝑥 4 63 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Ordenando os expoentes temos Logo No MATLAB temos O raciocínio é análogo ao da adição Porém deve ser levado em conta o tipo de operação no caso subtração Logo 74 Operação de Multiplicação de polinômios Definição Dados dois polinômios f e g Notase que o produto do polinômio f pelo polinômio g pode ser obtido multiplicandose cada termo 𝑎𝑖 𝑥𝑖 de f por cada termo 𝑏𝑗𝑥𝑗 de g segundo a regra 𝑎𝑖 𝑥𝑖 𝑏𝑗 𝑥𝑗 𝑎𝑖 𝑏𝑗 𝑥𝑖𝑗 e somando os resultados obtidos Vejamos um exemplo no contexto matemático Dado os polinômios 𝑓𝑥 6𝑥2 5𝑥 1 e 𝑔𝑥 3𝑥3 2𝑥2 𝑥 Calcule a multiplicação de f por g Primeiramente devemos observar que 𝑺𝒆 𝒇 𝟐 𝒆 𝒈 𝟑 𝒇 𝒈 𝟐 𝟑 𝟓 No MATLAB o tratamento ocorre assim 𝑓𝑥 𝑥4 0𝑥3 3𝑥2 0𝑥 5 𝑔𝑥 0𝑥4 0𝑥3 𝑥2 3𝑥 4 𝑓 𝑔𝑥 𝑥4 0𝑥3 2𝑥2 3𝑥 1 subtracao 𝑥4 0𝑥3 2𝑥2 3𝑥 1 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑔𝑥 𝑏0 𝑏1𝑥 𝑏2𝑥2 𝑏𝑛𝑥𝑛 𝑓 6𝑥2 5𝑥 1 𝑔 3𝑥3 2𝑥2 𝑥 6𝑥3 5𝑥2 𝑥 𝑓 𝑥 12𝑥4 10𝑥3 2𝑥2 𝑓 2𝑥2 18𝑥5 15𝑥4 3𝑥3 𝑓 3𝑥3 18𝑥5 27𝑥4 19𝑥3 7𝑥2 𝑥 x Logo fg 𝟏𝟖𝒙𝟓 𝟐𝟕𝒙𝟒 𝟏𝟗𝒙𝟑 𝟕𝒙𝟐 𝒙 64 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para multiplicar um polinômio pelo outro utilizase o comando convfg entendendo que será feita a multiplicação do polinômio f pelo polinômio g Então 𝑺𝒆 𝒇 𝟐 𝒆 𝒈 𝟑 𝒇 𝒈 𝟐 𝟑 𝟓 Produto 18𝑥𝟓 27𝑥4 19𝑥3 7𝑥2 𝑥 75 Operação de Divisão de polinômios Definição Dados dois polinômios f dividendo e g0 divisor dividir f por g é determinar dois outros polinômios q quociente e r resto de modo que se verifiquem as duas condições a g q r f divisão Euclidiana b Grau do resto Grau do divisor isto é r g Se r 0 caracteriza a divisão exata Analisemos como seria esse processo matematicamente Dado os polinômios f𝑥 𝑥4 16 dividendo e g𝑥 𝑥 1 divisor Calcule a divisão de f por g No MATLAB temos Para efetuar a divisão entre polinômios temse o seguinte procedimento qr deconv fg 𝑥3𝑥2 𝑥 1 𝑥4 0𝑥3 0𝑥2 0𝑥 16 𝑥 1 𝟎 𝑥3 0𝑥2 𝑥3 𝑥2 𝟎 𝑥2 0𝑥 𝑥2 𝑥 𝟎 𝑥 16 𝑥 1 𝟎 15 𝑥4 𝑥3 quociente f g 4 1 3 g divisor resto 0 65 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Cuja resposta consta de duas variáveis q é o quociente da divisão de f por g r é o resto da divisão de f por g Então quociente f g 4 1 3 Façamos agora um exemplo de aplicação utilizando as operações polinomiais Para tanto um engenheiro civil recebeu de seu arquiteto a proposta de fazer uma moldura de azulejo na janela quadrada conforme mostra a figura Sabese que a janela é quadrada e mede x 1 metros e o lado externo da moldura azulejada é de 3x 1 metros Determine o polinômio que irá representar a área azulejada Analisando a proposta temos Lm lado menor x 1 Am Lm² Lg lado maior 3x 1 Ag Lg² Az área azulejada Ag Am Aplicando no MATLAB vem Azx 8x² 8x 0 Azx 8x² 8x 76 Equação Polinomial Vamos resolver equação polinomial utilizando o teorema das raízes racionais Seja uma equação polinomial de coeficientes inteiros admite pelo menos uma raiz racional na forma 𝑞 𝑥3𝑥2 𝑥 1 r 15 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 0 𝑎𝑛 0 66 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝑝 𝑞 onde p Z q Z Então p é divisor de a0 e q é divisor de an Gerando assim as possíveis raízes racionais da equação Vejamos agora um exemplo aplicando o conceito matematicamente Quais são as raízes do polinômio Gerando as possíveis raízes racionais temse p15q3 1 1 3 3 5 5 15 15 1 1 1 3 3 5 5 15 15 3 13 13 53 53 Utilizando o conceito de valor numérico para cada valor de x iremos buscar os resultados que retornarem imagem igual a zero Gerando a seguinte tabela fx Imagem fx Imagem f1 0 f15 13440 f1 0 f15 6720 f3 192 f13 1289 f3 48 f13 1129 f5 720 f53 3209 f5 0 f53 1609 Podese concluir que a equação polinomial tem três raízes reais a saber x 1 x 1 e x 5 Como podemos observar manualmente o trabalho é árduo e sujeito a possíveis erros de cálculo então a pergunta é Como poderíamos fazer isso no MATLAB Para determinar as raízes de um polinômio no MATLAB temse o comando roots Veja o exemplo a seguir Ilustrando graficamente temos 3𝑥3 15𝑥2 3𝑥 15 0 67 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Exemplo Se tivéssemos que calcular o volume do sólido representado pela figura teríamos um polinômio Assim sendo calcule o valor de x se esse polinômio fosse uma equação polinomial Para efetuar a solução utilize os conceitos apresentados e desenvolva no MATLAB Se lado da base x1 então no MATLAB podemos representar por lb1 1 Se a altura x2 então no MATLAB podemos representar por h1 2 Para calcular o volume devemos inicialmente ter a área da base que será um polinômio de 2 e depois multiplicar pela altura que é um polinômio de 1 Isso irá gerar os coeficientes do polinômio do Volume cujo polinômio terá 3 Então para transformar a função polinomial em equação devemos igualala a zero buscando assim suas raízes Logo no MATLAB temos Então podemos concluir que o volume desse sólido será sempre possível desde que x 1 dessa forma inviabilizando o comprimento do lado da base ou x 2 isso transformaria a altura nula o que inviabilizaria a existência do sólido Portanto x pode ser qualquer valor real diferente de 1 e 2 e aí teremos o respectivo volume do sólido Vx x³ 0x² 3x 2 68 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 8 MÉTODO DE NEWTONRAPHSON NO MATLAB Como pode ser observado os problemas do cotidiano até os tecnológicos podem ser resolvidos via o estudo e análise de funções Porém as soluções de muitos deles está relaionado com o fato de encontrar os zeros das funções isto é saber onde estas funções se anulam Muitos matemáticos se dedicaram a esse tipo de estudo o método de Newton Raphson é um dos métodos mais eficientes para a solução numérica de fx0 81 Interpretação Geométrica O método de NewtonRaphson desenvolvido por Isaac Newton e Joseph Raphson Tem o objetivo de estimar as raízes de uma função Para tanto devese seguir os seguintes passos 1 Escolher uma aproximação inicial 2 Calculase a equação da reta tangente por meio da derivada da função nesse ponto 3 Localizase a interseção da reta tangente com o eixo das abcissas para encontrar uma melhor aproximação para a raiz 4 Repetindose o processo 5 Criase um método iterativo para encontrarmos a raiz da função O método iterativo é dado por 𝒙𝒏𝟏 𝒙𝒏 𝒇𝒙𝒏 𝒇𝒙𝒏 𝒏 ℕ Onde 𝑥𝑛 é uma aproximação inicial dada n indica a nésima iteração do algoritmo e 𝑓𝑥𝑛 é a derivada da função 𝑓 no ponto 𝑥𝑛 82 Resolução simplificada Aplicando o conceito em um exemplo temos Localize o zero da função 𝑓𝑥 𝑥3 2𝑥2 𝑥 3 Admitindo aproximação inicial igual a 4 com seis iterações ou erro de 105 Logo 69 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝑆𝑒 𝑓𝑥 𝑥3 2𝑥2 𝑥 3 𝑒𝑛𝑡ã𝑜 𝑓𝑥 3𝑥2 4𝑥 1 𝑐𝑜𝑚 𝒙𝟎 𝟒 n 𝒙𝒏 𝒇𝒙𝒏 𝒇𝒙𝒏 𝒙𝒏𝟏 𝒆𝒓𝒓𝒐 𝒙𝒏 𝒙𝒏𝟏 Parar 1 400000000 3300000000 3300000000 300000000 100000000 Não 2 300000000 900000000 1600000000 243750000 056250000 Não 3 243750000 203690000 907420000 221300000 022450000 Não 4 221300000 025640000 684040000 217456000 003844000 Não 5 217456000 000650000 649690000 217456010 000000010 Sim erro 105 Observamos aqui que mesmo que não tenhamos feito a 6 iteração o erro já é menor que 105 logo podese para o método Logo o a função atinge seu zero em aproximadamente 217456010 000000010 Agora pensemos assim se a minha função não for composta por coeficientes inteiros isto é 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 0 𝑎𝑛 0 como vimos até o presente momento Será que posso resolver usando NewtonRaphson Então veja o próximo exemplo Localize o zero da função Admitindo aproximação inicial igual a 8 com quatro iterações ou erro de 104 𝑆𝑒 𝑓𝑥 2𝑥 cos𝑥 𝑒𝑛𝑡ã𝑜 𝑓𝑥 𝑠𝑒𝑛𝑥 2 𝑐𝑜𝑚 𝒙𝟎 𝟖 03927 Então n 𝒙𝒏 𝒇𝒙𝒏 𝒇𝒙𝒏 𝒙𝒏𝟏 𝒆𝒓𝒓𝒐 𝒙𝒏 𝒙𝒏𝟏 Parar 1 03927 013848 238268 045082 005812 Não 2 045082 000155 243570 045018 000064 Sim erro104 Raiz 045018361 000064 83 Implementação do Algoritmo no MATLAB Agora vamos implementar esse procedimento em um script MATLAB 𝑓𝑥 2𝑥 cos𝑥 70 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Procure no helpwin a explicação das funções ou acesse os links inline httpswwwyoutubecomwatchvEg32RP2oN0 syms httpswwwyoutubecomwatchves5SGnXeXuk diff httpswwwyoutubecomwatchvg08g8AFCIH0 subs httpswwwyoutubecomwatchvEL3YAXMNpSk Agora utilizando o script desenvolvido vamos fazer algumas aplicação na área da Engenharia 1 Em estequiometria industrial estequiometria é o cálculo da quantidade das substâncias envolvidas numa reação química aparece uma equação do tipo 𝑓𝑥 2604 ln𝑥 𝑥 5144 0 Admitindo como aproximação inicial de x sendo 48 executando no máximo 4 iterações ou erro esperado sendo 105 71 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Informando os dados no script temos Isto é raiz 5088695698 000010046 2 Um engenheiro nas suas férias saiu do Rio de Janeiro onde mora e tinha como destino Gramado A viagem seria feita de carro passando pelas seguintes cidades São Paulo e Curitiba Com o hábito de registrar e observar fatos anotou em um caderno as temperaturas de cada cidade assim sendo obteve a seguinte tabela Cidade Rio de Janeiro 1 São Paulo 2 Curitiba 3 Gramado 4 Temperatura 21C 9C 2C 2C Então gerou o polinômio desses registros gerando a seguinte sentença 𝑓𝑥 𝑥3 3 9𝑥2 2 139𝑥 6 40 Imaginando que ele estivesse entre a cidade 3 Curitiba e a cidade 4 Gramado aí surgiu uma dúvida para engenheiro isto é gostaria de saber entre o intervalo 34 onde está a raiz desse polinômio Para tanto utilizando o método de NewtonRaphson com uma 72 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância aproximação igual 33 e fazendo cinco iterações ou erro esperado de 106Qual é a raiz encontrada e seu respectivo erro raiz 343719829 000000654 3 A função fx xsenx é utilizada no estudo de oscilações forçadas sem amortecimento Sabendo que 𝑥0 1 determine o zero da função pelo método de NewtonRapshon admitindo erro 0001 ou com dez iterações usando o script fornecido raiz 000073753 000147507 73 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 9 INTERPOLAÇÃO POR LAGRANGE USANDO MATLAB O método de interpolação que vamos estudar foi desenvolvido por Joseph Louis de Lagrange motivo pelo qual o método é conhecido por Interpolação de Lagrange Antes de expor a fórmula geral e com a finalidade de entender o funcionamento do cálculo do Polinômio Interpolador de Lagrange será considerado os pontos sinalizados no gráfico ao lado isto é 13 26 e 42 e ao traçar o gráfico que passa por esses pontos temse representação de uma parábola ou seja 𝒇𝒙 𝒙𝟐 𝟐𝒙 𝟔 Agora surge a seguinte pergunta Tendo apenas os pontos como obter a função Então temos a interpolação de Langrage que determina o polinômio da seguinte forma Vejamos como calcular 𝐿1 𝐿2 𝑒 𝐿3 Temos os seguintes dados 𝑳𝟏𝒙 𝒙 𝒙𝟐𝒙 𝒙𝟑 𝒙𝟏 𝒙𝟐𝒙𝟏 𝒙𝟑 𝒙 2𝒙 4 1 21 4 𝑥2 6𝑥 8 15 𝑳𝟐𝒙 𝒙 𝒙𝟏𝒙 𝒙𝟑 𝒙𝟐 𝒙𝟏𝒙𝟐 𝒙𝟑 𝒙 1𝒙 4 2 12 4 𝑥2 3𝑥 4 6 𝑳𝟑𝒙 𝒙 𝒙𝟏𝒙 𝒙𝟐 𝒙𝟑 𝒙𝟏𝒙𝟑 𝒙𝟐 𝒙 1𝒙 2 4 14 2 𝑥2 𝑥 2 10 Essas funções são designadas de polinômios de Lagrange 𝐿𝑖𝑥 Compondo o polinômio Temos 𝑓𝒙𝟏 𝑳𝟏𝒙 3 𝑥2 6𝑥 8 15 𝑥2 6𝑥 8 5 𝒙𝟐 𝟓 𝟔𝒙 𝟓 𝟖 𝟓 𝑓𝒙𝟐 𝑳𝟐𝒙 6 𝑥2 3𝑥 4 6 𝑥2 3𝑥 4 1 𝒙𝟐 𝟑𝒙 𝟒 𝑓𝒙𝟑 𝑳𝟑𝒙 2 𝑥2 𝑥 2 10 𝑥2 𝑥 2 5 𝒙𝟐 𝟓 𝒙 𝟓 𝟐 𝟓 x fx x1 1 fx1 3 x2 2 fx2 6 x3 4 fx3 2 𝒑𝒙 𝒇𝒙𝟏 𝑳𝟏 𝒇𝒙𝟐 𝑳𝟐 𝒇𝒙𝟑 𝑳𝟑 𝒑𝒙 𝒇𝒙𝟏 𝑳𝟏 𝒇𝒙𝟐 𝑳𝟐 𝒇𝒙𝟑 𝑳𝟑 74 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Somando as parcelas 𝑥2 5 𝑥2 𝑥2 5 6𝑥 5 3𝑥 𝑥 5 8 5 4 2 5 𝑥2 2𝑥 6 px 91 Teorema A fórmula de interpolação de Lagrange pode ser derivada direto do polinômio de diferença dividida de Newton de grau equivalente primeiramente escrevendo a diferença dividida na forma simétrica n i j i n j i j i n n x x f x x x x f 0 0 0 1 A fórmula de Lagrange envolve somente os pontos xi e os valores da função correspondente fxi Então o polinômio interpolador de Lagrange pode ser escrito como n i i i n n n n L x f x x p f x L x f x L x f x L x x p 0 1 1 0 0 Onde fxi é o valor obtido para cada xi e temse que Lix é n i x x x x x L x x x x x x x x x x x x x L j i j n j i j i n i i i n i 10 0 1 0 1 0 Aplicando o conceito em um exemplo temos Considere a seguinte tabela da função fx que descreve a quantidade de pessoas que entramsaem num elevador em cada piso x numa subida entre os piso 1 e o piso 2 x 1 0 1 2 fx 2 1 0 4 Utilizando o interpolador de Lagrange gere o polinômio que representa essa tabela Lembrando que 𝐿𝑖𝑥 𝑥𝑥0𝑥𝑥1𝑥𝑥𝑛 𝑥𝑖𝑥0𝑥𝑖𝑥1𝑥𝑖𝑥𝑛 então temos 75 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝐿0 𝑥 0 1 0 𝑥 1 1 1 𝑥 2 1 2 𝑥3 3𝑥2 2𝑥 6 𝐿1 𝑥 1 0 1 𝑥 1 0 1 𝑥 2 0 2 𝑥3 2𝑥2 𝑥 2 2 𝐿2 𝑥 1 1 1 𝑥 0 1 0 𝑥 2 1 2 𝑥3 𝑥2 2𝑥 2 𝐿3 𝑥 1 2 1 𝑥 0 2 0 𝑥 1 2 1 𝑥3 𝑥 6 Como 𝑝𝑛𝑥 𝑓𝑥0 𝐿0𝑥 𝑓𝑥1 𝐿1𝑥 𝑓𝑥𝑛 𝐿𝑛𝑥 então 𝑝𝑛𝑥 2 𝑥3 3𝑥2 2𝑥 6 1 𝑥3 2𝑥2 𝑥 2 2 0 𝑥3 𝑥2 2𝑥 2 4 𝑥3 𝑥 6 𝒑𝒏𝒙 𝟓 𝟔 𝒙𝟑 𝟏𝟏 𝟔 𝒙 𝟏 92 Implementação do algoritmo no MATLAB Nessa implementação para sua compreensão cabe destacar que 1 Além de gerar o polinômio interpolador de Lagrange usando o teorema acima 2 Será traçado gráficos que representam os pontos dados no plano cartesiano a criação de sua representação gráfica e também o gráfico da interpolação de Lagrange onde será possível observar a aderência do método 3 Finalmente é proposta uma possível previsão de um ponto utilizando a interpolação de Lagrange Para ter acesso a todo esse desenvolvimento o usuário desse algoritmo terá que fornecer apenas os valores tabelados isto é xi e fxi na forma matricial 76 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Com base no exposto veja o código a seguir 77 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Vejamos agora um exemplo utilizando o algoritmo implementado no MATLAB A distância requerida para parar um automobilista é a função da velocidade em que ele se desloca Os seguintes dados experimentais foram recolhidos para quantificar essa relação Qual seria a distância necessária se o carro estivesse a 45 kmh Executando o script e fornecendo os dados temos Em seguida é construído o gráfico em outra GUI como mostra a figura Veloc kmh 15 20 25 30 40 50 Distância m 16 20 34 40 60 90 78 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Finalmente respondendo s na pergunta do rodapé do Command Window temos Logo respondendo à pergunta do enunciado em uma velocidade de 45kmh a distância seria aproximadamente de 8586 m Na realização de uma experiência determinaramse os seguintes valores da capacidade de calor Q e as várias temperaturas T de um metal como mostra a tabela a seguir Temp 100 70 10 20 Calor 0150 0144 0134 0128 Com base nessas informações gere o polinômio que melhor representa os pontos e trace o respectivo gráfico Executando o script e informando os dados do menor para o maior temos 79 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Então o gráfico é GILAT Amos Matlab com Aplicações em Engenharia Editora Bookman ISBN 8536306920 2006 CHAPMAN Stephen J Programação Em Matlab para Engenheiros Editora Thomson Pioneira ISBN 8522103259 2006 HAHN Brian H VALENTINE Daniel T Essential MATLAB for Engineers and Scientists Published by Elsevier Ltd ISBN 9780081008775 2013 GILAT Amos SUBRAMANIAVish Métodos Numéricos para Engenheiros e Cientistas Bookman ISBN 9788577802975 2008 CHAPRASteven C Métodos Numéricos aplicados com MATLAB para Engenheiros e Cientistas EdMcGraw Hill 3aedição ISBN 8580551765 2013 80 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Ao concluir esse guia da disciplina espero que tenha contribuído para seu processo ensinoaprendizado Também quero crer que tenha despertado em você mais uma possibilidade tecnológica na área de Engenharia O uso do computador através do software MATLAB tem se mostrado nacionalmente e internacionalmente um suporte valioso para profissionais da área de Engenharia Gostaria de finalizar dizendo que esse universo se finda quando acaba a nossa curiosidade Assim sendo acredito que continue pesquisando e desenvolvendo Um grande abraço e muito sucesso Profª Dorotéa Vilanova Garcia
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
Texto de pré-visualização
COMPUTAÇÃO APLICADA À ENGENHARIA Dra Dorotéa Vilanova Garcia GUIA DA DISCIPLINA 2022 1 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância INTRODUÇÃO Segundo Paulo Freire A teoria sem a prática vira verbalismo assim como a prática sem teoria vira ativismo No entanto quando se une a prática com a teoria temse práxis a ação criadora e modificadora da realidade Com o avanço das técnicas computacionais e a possibilidade de tratar grandes volumes de dados o conhecimento e o desenvolvimento tecnológico vêm passando por radicais transformações Na compreensão do mundo em nossa volta o homem organiza suas observações e ideias em estruturas conceituais Tendo em vista a coleção de ideias que irão gerar os modelos matemáticos frente à realidade necessitamos de um tratamento computacional para elaborar as tarefas repetitivas presentes no modelo para que tenhamos agilidade e precisão desejada nos resultados O objetivo da disciplina é capacitar o discente na resolução de problemas de engenharia e serviços com origem no mundo científico e tecnológico desde sua formulação até a implementação dos algoritmos computacionais e a análise dos resultados 2 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Que essa disciplina seja inspiradora para aguçar essa função de conhecimentos e que traga um cabedal de informações conceitos e noções para habilitar o desempenho do futuro profissional de Engenharia Bom semestre a todos e continuamos sempre junto para somar o saber Profa Dorotéa Vilanova Garcia 3 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 1 AMBIENTE MATLAB E OPERAÇÕES MATEMÁTICAS Objetivo Apresentar o ambiente MATLAB suas principais áreas e permitir que o discente execute operações matemáticas elementares de forma interativa Introdução O MATLAB original foi desenvolvido em linguagem Fortran por Clever Moler Essas novas versões foram desenvolvidas em linguagem C por Steve Bangeret Steve Kleiman e Clever Moler Stanford University MATLAB que abrevia MATriz LABoratory Laboratório de Matrizes é um programa de computador especializado e otimizado para cálculos científicos e de engenharia Inicialmente era projetado para cálculos com matrizes ao longo dos anos transformouse em um sistema computacional flexível capaz de resolver essencialmente qualquer problema técnico O MATLAB possui todas as operações básicas da matemática adição subtração multiplicação divisão potência radiciação exponencial logaritmos operações trigonométricas podendo ser utilizado como uma simples máquina de calcular que será tratado nesse tópico 11 Ambiente MATLAB No MATLAB desktop existe uma janela principal que gerencia todas as outras 4 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância As principais janelas são 1 Command Window onde são digitados os comandos para o MATLAB processar desde que o prompt esteja disponível 2 2 Workspace GUI para visualização carga e armazenamento de variáveis no MATLAB 3 Command History exibe o histórico de comandos executados na janela Command Window 4 Current Directory GUI para visualização de diretórios e acesso a arquivos no MATLAB Outras que são úteis 1 Help GUI para encontrar e visualizar documentação online digite helpwin no prompt do Command Window 2 Array Editor GUI para modificar o conteúdo de variáveis no MATLAB 3 EditorDebugger Editor de texto e depurador para arquivos texto do MATLAB 4 Figure Windows usadas para exibir informações gráficas e criar GUIs Dicas de comandos iniciais 1 O MATLAB é um ambiente sensitve case isto é diferencia letra maiúscula de minúscula assim sendo todos os comandos são sempre em letra minúscula 2 Para finalizar o ambiente de forma estável e retirar o sistema da memória do seu computador digite no Command Window o comando exit ou quit 3 Para limpar seu Command Window deve digitar no prompt clc 4 Para limpar seu Workspace completamente deve digitar no prompt clear 5 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Veja esse link httpswwwyoutubecomwatchvUuGDGlet7w4 12 Operações Básicas Inicialmente utilizaremos o MATLAB como se fosse uma calculadora cientifica para executar alguns cálculos básicos e observar as variações de suas notações Para tanto vamos observar a tabela a seguir Notação Matemática Notação no MATLAB Prioridade 4 4 ou x 3 ou 3 𝑥𝑦 x y 2 𝑥 x 12 ou sqrt x 1 𝑥𝑚 𝑛 x mn 1 𝑥 absx 1 121 Digitando a operação de forma direta Caso você precise fazer uma operação direta por exemplo 25 Teria que digitar no Command Window a operação então o resultado seria 6 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Entendemos que o resultado está correto isto é 7sete Mas o que o MATLAB quer dizer com ans O termo ans vem do inglês answer resposta Assim sendo o MATLAB está dizendo 25 resposta 7 Se observarmos o Workspace veremos que temos Isto quer dizer que a variável ans guarda o número 7 Caso façamos outra operação o ans assumirá o valor do novo cálculo consequentemente perderemos o cálculo anterior 122 Criando variáveis e gerando expressões Uma variável é um local na memória do computador capaz de conter um valor que pode ser modificado durante a execução do programa Uma outra forma de armazenar a informação é Nesse exemplo temos a variável x e está sendo atribuído a ela o valor 2 Podese notar que o MATLAB replica a informação gerado o que chamamos de eco O que normalmente não é interessante nos cálculos Nesse caso o valor está sendo atribuído porém no final tem a presença do o que evita a geração do eco desta forma não poluindo o Command Window 7 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para escrever uma expressão Para alterar as prioridades naturais descritas na tabela de operações utilizase parênteses tantos quantos necessários na expressão Lembrando que a quantidade de parênteses abertos deve obrigatoriamente ser igual a quantidade de parênteses fechados para não ocorrer erro sintático Vejamos como seria o cálculo das raízes da equação acima O armazenamento de um dado numérico decimal se dá utilizando ponto para separar a parte inteira da parte decimal e a princípio no MATLAB o seu resultado é expresso com quatro casas decimais podendo ou não ser expresso em notação cientifica conforme o cálculo executado Para tanto levemos em consideração o seguinte exemplo Tomemos como exemplo uma equação do segundo grau x² 5x 6 0 onde por exemplo queremos calcular o delta veja como isso pode ser feito no MATLAB Uma dona de casas foi ao mercado e levou para pagar suas compras uma nota de R10000 Sua lista de compra tinha os seguintes produtos 3kg de arroz à R180 o quilo 4kg de batatas à R250 o quilo 1kg de feijão à R340 e 5kg de frango à R590 o quilo Com base nessas informações calcule o valor do troco dessa compra 8 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 123 Formatação Numérica Como você já deve ter observado o resultado que o MATLAB apresenta é inteiro ou decimal Se for decimal normalmente apresenta com quatro casas decimais Ai surge a seguinte dúvida Seria possível alterar isso Na tabela a seguir serão mostrados alguns comandos que possibilita essa mudança Mas é importante destacar que quando alterado para um tipo ele mantem esse tipo até que ocorra outra mudança comando descrição format short Exibe o resultado com até 4 dígitos decimais Com ou sem notação cientifica dependendo da operação format long Exibe o resultado com até 15 dígitos decimais Com ou sem notação científica dependendo da operação format bank Exibe o resultado com dois dígitos decimais format rat Exibe o resultado na forma de fração a mais simplificada possível format compact Exibe o resultado suprimindo as linhas adicionais format loose Exibe o resultado restaurando as linhas adicionais Observação quando surgir a notação cientifica terá a seguinte simbologia por exemplo 97205e004 onde e004 quer dizer nesse caso 𝟏𝟎𝟒 Portanto o valor seria 97205 vezes 104 caracterizando assim o resultado 124 Operações exponenciais e operações logarítmicas Para representar essas operações no MATLAB veja a tabela a seguir Notação Matemática Notação no MATLAB 𝒆𝑥 expx log𝟐 𝑥 log 2 x 9 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância log𝟏𝟎 𝑥 log 𝑥 log 10 x log𝑒 𝑥 ln x log x Na primeira representação temos a função exponencial natural ex pode ser formalmente caracterizada de diversas maneiras distintas porém equivalentes Em particular podemos definila pela seguinte série de potências 𝑒𝑥 𝑥𝑛 𝑛 1 𝑥 𝑥2 2 𝑛0 𝑥3 3 𝑥4 4 Porém no MATLAB toda vez que a base for e se representa por exp e o expoente deve estar obrigatoriamente entre parênteses Assim sendo veja alguns exemplos dessa representação As representações das funções logarítmicas no MATLAB são obtidas se a base do logaritmo for um desses valores apenas 2 10 ou e Na edição do comando no MATLAB como já pode ser observado dispomos apenas de uma linha Assim sendo ao criar a função logarítmica ficou estabelecida a seguinte sintaxe Matematicamente temos log𝑏𝑎𝑠𝑒 𝑙𝑜𝑔𝑎𝑟𝑖𝑡𝑚𝑎𝑛𝑑𝑜 𝑒0 𝑒1 𝑒2 𝑒 ඥ𝑒1 2 𝑒 1 2 10 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância No MATLAB a sintaxe é log base logaritmando A exceção é o lnx que no MATLAB fica sendo logx Vejamos alguns exemplos Porém se precisarmos calcular um logaritmo em outra base então devemos aplicar a propriedade de mudança de base isto é 𝑙𝑜𝑔𝒃 𝒂 𝑙𝑜𝑔𝒄 𝒂 𝑙𝑜𝑔𝑐 𝒃 Caso por exemplo precise calcular 𝑙𝑜𝑔5 3 no MATLAB terá que mudar para uma das bases conhecidas isto é 2 10 ou e lembrando que o resultado será sempre o mesmo como pode ser observado na figura a seguir 𝑙𝑜𝑔𝟐 3 𝑙𝑜𝑔7 𝑙𝑜𝑔𝟏𝟎 7 𝑙 𝑛8 𝑙𝑜𝑔𝒆 8 log8 𝑛𝑜𝑀𝐴𝑇𝐿𝐴𝐵 c 11 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 125 Operações trigonométricas O computador só trata dados alfanuméricos strings ou dados numéricos inteiro ou real no caso do MATLAB vai até os complexos Nas operações trigonométricas é comum utilizarmos um dado numérico na unidade graus porém o computador não é capaz de interpretar essa unidade Assim sendo se faz necessário converter graus para radianos que é a representação linear do ângulo em um valor numérico inteiro ou real Como são grandezas diretamente proporcionais podemos sempre utilizar a regra de três simples utilizando 180º π Então Graus Radianos 180 𝐱 𝛼𝜋 180 x Uma vez compreendido esse conceito vem a pergunta como calcular sen30 Vamos analisar o que precisamos fazer 1 Converter 30 em radianos seja ele um arco notável ou não devemos deixar o computador fazer a operação então se xgr30 xrdxgrpi180 𝑙𝑜𝑔5 3 𝑙𝑜𝑔𝟐 3 𝑙𝑜𝑔𝟐 5 2 𝑙𝑜𝑔5 3 𝑙𝑜𝑔𝟏𝟎 3 𝑙𝑜𝑔𝟏𝟎 5 10 𝑙𝑜𝑔5 3 𝑙𝑛3 𝑙𝑛5 log3 log5 𝑛𝑜𝑀𝐴𝑇𝐿𝐴𝐵 e MatLab é representado pela palavra pi onde 3141592653589793 é uma palavra reservada no MATLAB isto é para utilizar esse valor basta escrever pi 12 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 2 Com a conversão feita temos que entender como representar a função seno no MATLAB e ela se dá através da sintaxe sinx onde x obrigatoriamente deve estar em radianos 3 Executando no MATLAB temos Na tabela a seguir teremos as funções trigonométricas com sua representação matemática e a correspondente notação no MATLAB Notação Matemática Notação no MATLAB sen x sinx cos x cosx tg x senxcosx sinxcosx ou tanx sec x 1cosx 1cosx ou secx cossec x 1senx 1sinx ou cscx cotgx 1tgx cosxsenx 1tanx ou cotx Obs reforçando que o x na notação MATLAB deve sempre estar em radianos Agora vamos ver a notação das funções trigonométricas inversa então Bom com o conceito matemático em dia vamos ver como escrever as funções inversas no MATLAB Notação matemática Notação no MATLAB arc cosx acosx arc senx asinx arc tgx atanx arc secx asecx Veja o conceito matemático no link a seguir httpswwwyoutubecomwatchvXSXNG2zdNB8 13 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância arc cossecx acscx arc cotgx acotx Então resolvendo uma equação trigonométrica arcsen 12x com x02 no MATLAB temos 𝑎𝑟𝑐𝑠𝑒𝑛 ൬1 2൰ 𝑥 𝑠𝑒𝑛 𝑥 1 2 14 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 2 GRÁFICOS NO MATLAB EM R2 NO PLANO XOY Objetivo Neste capítulo será discutido os aspectos básicos dos recursos gráficos disponíveis no plano cartesiano xOy gerando gráficos em R2 As informações detalhadas sobre gráficos podem ser obtidas no helpwin do MATLAB 21 Gerando o primeiro gráfico O MATLAB oferece inúmeras opções para criarmos e editarmos gráficos Porém iremos discutir o que fazemos normalmente ao criar um gráfico manualmente Por exemplo Gostaríamos de construir o gráfico da função y x 5 Então estabelecemos o valor do domínio x que irá compor os valores do eixo da abscissa e depois aplicando na função os pontos obtemos a imagem y que caracteriza os valores do eixo da ordenada O próximo passo seria marcar os pares ordenados xy no plano cartesiano e por fim fazer a ligação dos pontos Esse processo tão conhecido por nós pode ser colocado da mesma forma na plataforma MATLAB Suponha que gostaríamos de traçar a função y x 5 com 2 x 2 no MATLAB 1 passo Definir os valores de x como posso fazer x22 Uma vez digitada a linha acima o MATLAB atribui para a variável x os seguintes valores 2 1 0 1 2 pois o valor inicial de x é 2 o valor final de x é 2 e o MATLAB nessa sintaxe entende automaticamente que deve caminhar de 1 em 1 compondo assim os valores de x 2 passo Obter os valores de y então devese digitar a função que será desenhada isto é yx5 15 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Com essa instrução são gerados os valores da variável y com os seguintes valores 7 6 5 4 3 compondo o eixo da ordenada 3 passo Para ligar os pares ordenados criados isto é 27 16 05 14 e 23 e ligalos e traçando o gráfico devese digitar plotxy Desta forma será gerada a representação gráfica da função no intervalo definido 4 passo Para finalizar é interessante ter um fundo quadriculado para identificar a representação gráfica então digitase grid on O comando grid representa uma grade quadriculado que é ativado através da cláusula on ou desativada se a cláusula for off Executando estes quatro passos temos como resultado 22 Gerando traçados de curvas Quando for necessário traçar uma função circular por exemplo podemos continuar executando os quatro passos para obter o gráfico Ao executar o comando plot será apresentado uma nova GUI denominada Figure 1 onde é possível observar a presença de todos os valores gerados e calculados dando origem ao gráfico Reforçados por sinalizações adicionais 16 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Resposta SIM mas é importante entender que quantos mais valores tivermos no tabelamento x e y melhor será a precisão do traçado do gráfico Então para entender isso com clareza vamos tomar o seguinte exemplo façamos o gráfico da função ycos2x para 0 x 2π 221 Gerando o gráfico com passo 1 222 Gerando o gráfico com um passo qualquer Para melhorar a precisão de um gráfico muitas vezes precisamos ter muitos pontos então isso só se torna possível quando no primeiro passo do traçado do gráfico inserimos um passo que promova vários valores De uma forma geral podemos escrever o primeiro passo da seguinte forma x xi passo xf onde xi seria o valor inicial de x e xf seria o valor final de x Vamos analisar as possibilidades dessa construção 1 Se o valor de xi for menor que xf isto representa um intervalo crescente logo o passo deve ser positivo um valor escolhido no intervalo 0 passo 1 2 Se o valor de xi for maior que xf isto representa um intervalo decrescente logo o passo deve ser negativo um valor escolhido no intervalo 1 passo 0 No nosso exemplo temos 0 x 2π Portanto xi0 e xf 2π logo o intervalo é crescente então escolheremos um valor para o passo por exemplo 01 Então teremos Fica evidente o valor de x sai de 0 até 2π 6 e caminha de 1 em 1 O gráfico está sem precisão 17 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 23 Alterando o estilo da linha marcadores e cor Para fazer essas alterações temos uma tabela com os códigos de cada caso como pode ser observado a seguir Mas antes de mais nada é importante saber que esses códigos devem ser usados junto com o comando que traça o gráfico no nosso caso seria o comando plot Algumas observações se fazem necessárias 1 A especificação deve estar entre aspas 2 Não importa a ordem das variações 3 Pode ser alterada as três variações ou apenas duas ou até mesmo apenas uma Tipos de cores Marcadores de ponto Tipos de linhas código descrição código descrição código descrição y yellow amarelo point ponto solid sólida m magenta lilás o circle círculo dotted pontilhada c cyan azulclaro x xmark x dashdot traçoponto r red vermelho plus dashed tracejada g green verde star asterisco b blue azul escuro s square quadrado w white branco d diamond diamante k black preto v triangle triângulo triangle triângulo triangle triângulo triangle triângulo p pentagram pentágono h hexagram hexagono Agora temos 63 valores para x e 63 valores para y no intervalo 02π com passo 01 Melhorando muito a precisão do gráfico 18 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para exemplificar o uso desse recurso imagine que você deseje traçar o gráfico da função y5cosx com 0 x 2π e sua derivada sendo o primeiro gráfico na cor vermelha usando marcador círculo e traçado sólido enquanto que a derivada seria na cor preta com traçado tracejado Na execução da proposta devemos calcular a derivada da função Assim y 5cosx y 5senx 24 Comandos importantes no traçado de um gráfico no MATLAB Além do traçado de um gráfico e suas características temos que dar atenção a alguns itens de importância para finalizar esse tipo de trabalho Bom o que será explicado a seguir por comandos também pode ser feito pela GUI Figure na opção Insert mas como podemos automatizar toda a criação de um gráfico é valioso conhecer os comandos a seguir Lembrando que eles devem ser utilizados depois que o gráfico fora feito 1 Como definir o eixo horizontal eixo da abscissa ou eixo X O comando é xlabel isto é o rótulo do eixo x Sua sintaxe é xlabelmensagem A mensagem que identifica o eixo deve sempre estar entre apóstrofe 2 Como definir o eixo vertical eixo da ordenada ou eixo Y O comando é ylabel isto é o rótulo do eixo y Sua sintaxe é ylabelmensagem Atenção Você percebeu que usei apenas um comando plot para fazer os dois gráficos Essa técnica é bem interessante pois podemos fazer vários gráficos simultaneamente só declarando os respectivos pares ordenados 19 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 3 Como definir o título de um gráfico O comando é title isto é título Sua sintaxe é titlemensagem 4 Como criar uma legenda se necessário O comando é legend Sua sintaxe é legendgrafico1graf ico2posição Aqui é importante que entenda uma ordem obrigatória ou seja o gráfico quando criado se mais que um irá ter a necessidade da legenda para identificar cada traçado Assim sendo a legenda segue a ordem o traçado isto é o primeiro gráfico deve ser declarado primeiro na legenda e assim sucessivamente tantos gráficos quantos houver A posição é onde a legenda ser disponibilizada isto é Observação para desativar uma legenda digitase legend off 5 Como traçar vários plot gerando gráficos distintos sem que um gráfico apague o outro O comando que atende esse tipo de situação é o hold então se digitar hold on Estar fixando a região do traçado do gráfico permitindo assim sobreposições sem perdas das definições Caso digite hold off Estará liberando a região do traçado do gráfico Vejamos um exemplo explorando esses comandos 20 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Um corpo suspenso em uma mola é deslocado em cinco unidades da posição de repouso e solto no instante t0 para oscilar para cima e para baixo Sua posição em qualquer instante t é s5cost Sua velocidade é v 5sent Sua aceleração é a 5cost O período do movimento é 2π Tracemos os gráficos identificando os eixos gerando o título criando a legenda e tal sorte que cada gráfico será gerado pelo seu plot individual 25 Caso especial no traçado de um gráfico no MATLAB Para um rápido esclarecimento sobre o assunto imagine que se deseje executar uma operação algébrica em cada elemento do seu tabelamento Isto é execute a operação para cada escalar Se esse for o caso se faça necessário na frente da operação colocar um ponto para que o MATLAB execute a operação para cada escalar Veja o exemplo a seguir Tracemos o gráfico da função 𝑦 1 𝑥 com 2 x 2 21 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 26 Gerando subgráficos no MATLAB Algumas vezes em situações bem peculiares precisamos criar gráficos um do lado do outro para efetuar uma possível comparação das tendências das funções Então precisamos entender um pouco melhor a região na qual estamos trabalhando até o presente momento Até o presente momento temos traçado gráficos em uma região unitária reconhecida pelo MATLAB como sendo subplot111 Aí surge a seguinte pergunta É possível colocar mais de um conjunto de eixos em uma mesma figura criando assim múltiplos diagramas Os subdiagramas são criados pelo comando subplot Agora imaginemos que essa área unitária deveria ser subdividida em quatro partes por exemplo então como ficaria a identificação de cada região Nesse caso queremos pegar cada elemento de x e calcular seu inverso 1x isto é fazer a divisão para cada valor Logo se não houver o PONTO na frente a operação gera o erro acima sinalizado 22 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Acionada a região pelo comando subplot então é possível utilizar todos os comandos vistos para a criação do gráfico na respectiva região Cabe destacar que também é possível se necessário traçar mais do que um gráfico na região Além do plot no plano cartesiano xOy temos outros comandos veja como eles funcionam pie pareto histfit área fplot semilogx semilogy stem e acredite tem muito mais Agora para ver gráfico em R3 veja a princípio esse link httpswwwyoutubecomwatchvMMdPEVUtSTQ 23 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 3 SCRIPT MATLAB CONCEITOS E COMANDOS INICIAIS Quando temos uma sequência de declarações e essas devem ser repetidas por várias vezes em momentos distintos devemos ter como armazenadas e para isso que criamos os scripts no MATLAB chamados de arquivos M por conta de sua extensão m Os scripts são roteiros ou funções que tem a finalidade de agilizar o dia a dia do Engenheiro Os scripts que serão criados deste instante em diante no ambiente MATLAB tem a característica de ser interpretados não existe o processo de compilação Desta forma são gerados os Mfile Os arquivos do tipo Mfile são arquivos texto que contêm uma sequência de comandos MATLAB A execução do script se dá como se o MATLAB estivesse executando os comandos na janela de comandos isto é um a um dentro de uma sequência lógica Quando o script for criado e devidamente gravado o mesmo pode ser executado digitando o nome do arquivo no command window lembrando que não se coloca a extensão m desde que o MATLAB esteja no diretório corrente current directory onde se encontra o respectivo script Vamos então começar a trabalhar para tanto o primeiro passo seria 31 Ativando o editor de Script Então inicialmente no command window podemos ativar o editor nativo para tanto devemos digitar no prompt do MATLAB a palavra edit e em seguida pressione enter Porém um Script m pode ser criado usandose qualquer editor de texto lembrando que o arquivo deve ter extensão m Ao executar esse procedimento será disponibilizada uma nova GUI para editar o script desejado Isto é 24 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Aproveitando os conceitos do capítulo anterior vamos imaginar que se precise o gráfico da função ysen2x e sua derivada com 0 x 2π Porém gostaria de gerar um script para esse tipo de tarefa então podemos observar que o que faríamos no command window agora vamos escrever no editor Isto é 32 Gravando o Script Estando no editor na área de ícone você verá que o ícone do disquete está ativo então clique nele Como mostra a figura 25 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Aí você verá o broswer caixa de diálogo para que possa escolher onde será gravado seu script Conforme figura Clicando em Este Computador terá acesso a todas as mídias disponível então direcione para a que escolher identifique o diretório onde será armazenado seu script Uma vez selecionado o caminho você deve definir o nome do script Para isso existe duas considerações a ser feita 1 O nome do script não pode ter caracteres especiais 2 Se o nome do script for composto por mais de uma palavra não pode ter espaço em branco Então separe as palavras utilizando underline É interessante que o nome do arquivo represente o que o script faz 33 Executando o Script Antes de mais nada se faz necessário atualizar o diretório corrente no MATLAB então veja a figura a seguir 26 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 1 Clique no ícone que tem os três pontos onde a seta está sinalizando então terá acesso novamente ao browser direcione para onde gravou o script e clique em OK 2 Observe se ao lado no Current Directory lá deve estar o caminho indicado 3 Ai clique na janela do Current Directory e terá que visualizar o arquivo m que gravou nesse lugar Com essas etapas executadas você poderá executar o seu script digitando no Command Window no prompt o nome do programa Lembrando que não deve colocar a extensão isto é m 34 Comandos iniciais de um Script Quando fazemos um script devemos seguir o que chamamos de boas práticas A primeira providência seria criar linhas de comentários para que através dela sem ter que ler o código conseguíssemos entender a finalidade do script e também registrar a autoria data de criação entre outras informações Então vejamos qual é esse comando e como utilizar no nosso script Comando Usar esse comando não influencia diretamente na lógica de desenvolvimento mas serve para gerar uma documentação no próprio script Outra utilidade desse comando e gerar comentários em uma linha para deixar registrado sua função ou até mesmo sinalizar o começo de uma estrutura em um código mais longo No script poderia ser assim por exemplo 27 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Outras duas instruções ainda fazem parte das boas práticas é garantir que seu programa quando for executado tenha a memória limpa e a área de comandos também esteja limpa para o registro dos resultados advindos do processamento Então Agora pensemos no usuário O script atende as nossas necessidades mas caso o gráfico demore para aparecer o usuário ficará em dúvida sobre a execução do programa 28 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Isso nos remete ao fato de procurar um comando capaz de enviar uma mensagem para o usuário Assim sendo Comando dispmensagem Um outro comando que já temos utilizado em larga escala e agora recebe sua definição seria o comando de atribuição isto é Comando variável atribuição Neste comando definimos uma variável que normalmente representa um conteúdo como por exemplo numero 2 isto é a variável numero irá armazenar na memória o valor 2 valor numero 2 isto é a variável valor irá armazenar o processamento da expressão consequentemente na variável valor ficará armazenado o valor 4 x 0012pi também é uma atribuição onde na variável x ficará armazenado um vetor isto é x 0 01 02 03 60 61 representando assim um vetor com uma linha e sessenta e três colunas 1x63 29 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância y sin2x é mais uma atribuição onde a variável y só existirá se e somente se a variável x já tenha sido criada usando o exemplo acima y armazenará o cálculo de cada valor de x assim sendo y também será um vetor com uma linha e sessenta e três colunas 1x63 Mas mediante ao colocado até aqui o nosso script é estático isso é ele funciona mas sempre gera o mesmo resultado e o usuário não tem interação com o processamento ou seja ele não fornece nenhuma informação Surge então a seguinte pergunta O usuário poderia enviar um dado para o computador em tempo de execução E a resposta é sim através Comando variável input mensagem Vejamos como implementar isso no nosso exemplo imagine que você continua querendo o gráfico da função e de sua derivada porém você gostaria de definir em que intervalo de x isso seria traçado Logo 30 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Nessa implementação você deve observar alguns detalhes importantes no cunho lógico 1 A mensagem Aguarde traçando o gráfico foi deslocada para baixo antes do comando plot Pois seria necessário primeiro receber as informações para depois traçar o gráfico 2 Assim sendo se tornou primordial a criação de uma nova mensagem no começo do programa para que o usuário pudesse entender o que estaria para acontecer 3 Para que uma mensagem não ficasse abaixo da outra na linha 7 do script utilizamos o comando disp para promover o salto de uma linha 4 Depois de recebido o valor inicial de x xi e o valor final de x xf se fez necessário ajustar a atribuição do vetor x em função dos dados de entrada Desta forma agora temos um programa flexível que atende as necessidades do usuário e permite sua interação algo extremamente comum num processamento computacional Agora vejamos uma possibilidade o usuário querer fornecer um valor de x no intervalo do gráfico e precisar obter retorno da função y e da derivada yd sendo que estes valores devem ter 6 casas decimais Bom agora precisamos saber como exibir um resultado de um processamento Para tanto temos Comando fprintfmensagem formataçãovariável 31 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância No contexto da formatação a mais usual é a penúltima pois permite que você flexibilize o resultado de acordo com a necessidade Complementada com a última informação do quadro Vejamos como implementar isso no nosso código de trabalho Comentando as linhas para uma melhor compreensão Na linha 20 recebemos o valor de x para tanto criamos a variável vx Na linha 21 calculamos o valor de y na função yvx e em seguida na sua derivada ydvx Na linha 22 exibimos o valor calculado em yvx com a formatação 106f isto é formata o resultado com a seguinte mascara nnnnnnnnn isto é 10 casas ao todo incluindo o ponto decimal e tendo seis casas decimais como solicitado Na linha 23 o raciocínio é equivalente para ydvx Mas se avaliarmos o código até aqui ele já evoluiu bastante mas ainda tem pontos frágeis isto é os dados fornecidos se não forem querentes teremos erro de processamento Para evitar esse tipo de problema deveríamos consistir os dados de entrada para garantir sua integridade Assim sendo precisamos conhecer um comando condicional 32 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância O comando condicional tem por finalidade avaliar uma condição simples ou composta e decidir se os comandos serão ou não executados Assim sendo temos as seguintes notações Condição é a sintaxe da pergunta formulada na condicional para tanto usase operadores e estes se dividem em dois grandes grupos a saber Operadores Relacionais estes operadores permitem que se estabeleça uma relação entre variáveis com outra variável ou variável com uma constante assim sendo utilizase os seguintes símbolos comando comando comando comando sim Não 33 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Operadores Lógicos permitem a composição de condições utilizando os conectores e ou não utilizando os seguintes símbolos Como poderíamos implementar esse comando no nosso script Bom para responder essa pergunta primeiramente devemos avaliar as informações fornecidas isto é xi xf e vx Já que o xi percorre um valor qualquer do eixo do x e sabemos que x é o eixo da abscissa que contém os números reais e nas funções trigonométricas não temos restrição a valores Podemos concluir que xi pode ser qualquer valor real Agora vamos avaliar o valor de xf como esse valor será um valor final e teremos um intervalo crescente é necessário que xf seja sempre um valor maior que xi Logo isso é uma condição Agora caso isso não seja atendido informaremos ao usuário que ocorreu esse tipo de erro e encerraremos o script Com relação ao valor de x vx essa informação deverá ser obrigatoriamente um valor contido no intervalo xi vx xf Caso isso não seja atendido exibiremos uma mensagem de erro e encerraremos o script Então teremos 34 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância s n s n 35 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 4 CONDICIONAL ENCADEADA E ESTRUTURA DE REPETIÇÃO Nesse tópico iremos falar sobre dois comandos que podem auxiliar bastante na geração de um script A condicional encadeada permite dentro de um cenário especifico uma redação do comando mais confortável favorecendo o tratamento lógico do desenvolvimento de um script A estrutura de repetição é um conjunto de instruções que é realizado repetidamente em um script Utilizando esse conceito será discutido estrutura de repetição com limiar 41 Comando Condicional Encadeada A possibilidade de uma instrução condicional se estar dentro de outra condicional é que se denomina Condicional Encadeada Ao ingressar em uma condição ou até mesmo executando a clausula else mediante a explicação acima devemos entender que o procedimento foi cumprido e o controle do processamento será transferido para o comando imediatamente após o end Se o retorno for sim para condição acima executa os comandos Se nenhuma das condições forem atendidas executa os comandos Se o retorno for sim para condição acima executa os comandos Se o retorno for sim para condição acima executa os comandos Se o retorno for sim para condição acima executa os comandos 36 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para que possamos entender o funcionamento da condicional encadeada pensemos em um exemplo bem simples Em um script o usuário deverá fornecer um número inteiro positivo e mediante a informação daremos o retorno se o mesmo é para ou ímpar Fazendo a consistência do dado de entrada Então pensando na proposta vem a nossa cabeça o seguinte conceito se o número for divisível por 2 é par senão é ímpar Agora vem a seguinte dúvida como chegar no resto da divisão inteira Bom para isso temos no MATLAB duas funções equivalente a saber mod ou rem cuja sintaxe é resto mod dividendodivisor ou resto remdividendodivisor Com os conceitos ajustados a resolução seria Observação final depois da linha 13 onde está o end o script seguirá executando as linhas 14 e 15 Na linha 15 você pode observar que foi usado o comando pause ele é um 37 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância temporizador e o número inteiro no caso 5 caracteriza o tempo da pausa em segundos aproximadamente Vejamos agora um exemplo aplicado na Engenharia isto é um problema fundamental para empresas que armazenam líquidos em tanques esféricos é a necessidade de realizar cálculos da área da superfície e volume de regiões esféricas a partir do conhecimento da altura do líquido h e do raio da esfera R Como podemos observar na figura então vamos lembrar quais são as fórmulas da área da superfície da calota esférica Sc e do volume da calota esférica Vc 𝑆𝑐 2 𝜋 𝑅 ℎá𝑟𝑒𝑎𝑑𝑎𝑠𝑢𝑝𝑒𝑟𝑓í𝑐𝑖𝑒 𝑉𝑐 𝜋ℎ23𝑅ℎ 3 𝑣𝑜𝑙𝑢𝑚𝑒 Com base nessas informações façamos um script que receba os dados e permita que o usuário escolha entre as opções 1 Área da superfície 2 Volume 3 Sair 38 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Observação o script acima quando gravado foi definido seu nome como sendo reservatórioesferico Na opção 3 sair o último comando close faz com que o MATLAB encerre o programa porém não fecha o ambiente MATLAB 42 Conversão de Dados O MATLAB é usado extensivamente para cálculos Sendo assim é bem mais comum o seu uso com números Entretanto nas situações em que há necessidade de se lidar com textos MATLAB também oferece ferramentas que permitem este tipo de manipulação Vamos apresentar duas delas aqui com a intenção de melhorar a forma de apresentar um resultado porém o MATLAB possui diversas funções para manipulação de strings as outras podem ser encontradas na bibliografia e no help online 421 Convertendo número para string No MATLAB temos uma função capaz de converter um número para string onde string que dizer dados alfanuméricos Escrevendo essa conversão em inglês teríamos number to string é daí que surge a função com a seguinte sintaxe num2strx Onde x pode ser uma variável numérica ou até mesmo um número qualquer 422 Convertendo string para número Também existe no MATLAB uma função com essa finalidade isto é transformar uma informação numérica que fora armazenada com um texto e convertela para número Para tanto teríamos em inglês string to number gerando assim a função com a sintaxe str2numy Onde y pode ser uma variável alfanumérica ou até mesmo uma string do tipo 98 423 Compondo um resultado utilizando o comando fprintf Para compor uma string que será exibida através do comando fprintf mesclando string fixas com valores convertidos devemos gerar uma variável string concatenando as informações seguindo a seguinte sintaxe variável string convertida string fixa string convertida string fixa fprintfvariável 39 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Vejamos um exemplo para melhor compreensão do uso da função e o seu resultado final Para tanto imaginemos o seguinte caso temos uma variável n que armazena o número 2 temos uma variável f que armazena o número 1 e na variável p irá armazenar o resultado de nf Mas gostaríamos que fosse exibida a seguinte sentença como resultado final 2 x 1 2 onde o primeiro número 2 está em n logo dado numérico o número 1 está em f logo dado numérico o último número 2 está em p logo dado numérico Mas x e não são numéricos e sim string Assim sendo temos que gerar tudo em um único padrão isto é ou tudo será número ou tudo será string Como não conseguimos transformar x e em número será necessário converter os dados numéricos para string Então o script ficaria assim Tendo como resultado no command window É importante acessar o help online e verificar essas outras funções que podem ajudar muito no desenvolvimento de script char strvcat strcat int2str str2double mat2str sscanf 43 Estrutura de repetição com limiar Uma estrutura de repetição com limiar é um laço que repete instruções em um número especificado de vezes assim antes da execução sabese quantas vezes as instruções devem ser repetidas 40 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Iniciemos com um exemplo bem simples isto é façamos um script que exibe a tabuada de um número qualquer Então o usuário deverá informar o número n e ai será exibida a tabuada clássica de nx1 até nx10 Vejamos o script Observe que o próprio MATLAB faz o jump do end para o for isso quer dizer que quando o laço se inicia o valor de f é igual a 1 então executa os comandos a seguir ao chegar no end ele retorna para o for e como não foi definido nenhum passo o MATLAB entende que o incremento é de 1 assim sendo executa as instruções para f igual a 2 e assim sucessivamente até chegar no valor de f igual a 10 fazendo então a execução das instruções pela última vez Quando chegar no end irá retornar para o for somando um consequentemente f valerá 11 só ai sairá da estrutura de repetição Cabe destacar que após o end houvesse outras instruções elas seria executadas por a execução da estrutura de repetição 41 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância O resultado final da execução do script é Fazendo agora uma primeira aplicação na área de Engenharia podemos pensar em algo desse tipo Num ensaio químico fora medido a temperatura em Celsius A água estava inicialmente com a temperatura de 25 passando por um processo de aquecimento notou se que a temperatura subia de 2 em 2 até atingir 40 Faça um programa que converta essa escala em Kelvin e Fahrenheit exibindo as informações em uma tabela Sabendo que K C 27315 F C x 18 32 Implementando no MATLAB temos Nesse desenvolvimento vale alguns comentários importantes 42 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 1 Na linha 6 é gerado o cabeçalho da tabela para que haja o espacejamento entre as colunas no MATLAB utilizamos como pode ser observado em detalhe fprintfCelsius Kelvin Farenheit 2 No laço for notamos que o passo agora é de 2 em 2 como mostra a linha for c25240 3 Na linha 10 temos a composição do resultado de cada linha da tabela para tanto temos a formatação de cada temperatura separa respectivamente por distância e para poder exibir os valores deve ser observado que as variáveis estão entre colchetes e separadas por virgula Essa prática deve ser realizada sempre que precisarmos exibir mais de um valor Agora vejamos como é possível representar uma série no MATLAB então faça um script que determine a soma dos m primeiros termos da série de Leibniz aonde a quantidade m deve ser informada pelo usuário Essa série converge para o valor 𝜋 4 Sua implementação no MATLAB é Façamos mais um exemplo de aplicação na Engenharia Uma viga tem pesos iguais colocados nos pontos representados pela equação dn 2n onde d é local de cada peso sobre a viga e n é a quantidade de peso sabendo que esse deve ser maior que zero e menor que 10 210 1 2 1 1 0 m n com n m n n 43 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Assim sendo o usuário deve informar a quantidade de peso Será exibido a que posição ficará cada peso e também mostrar a média dos pesos distribuídos que irá caracterizar o ponto de equilíbrio para essa viga Implementando temos Reforce os conceitos desse tópico e conheça uma outra estrutura de repetição através do link httpswwwyoutubecomwatchvnicZWmf3Oc 44 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 5 MATRIZES E DETERMINANTE NO MATLAB Matematicamente podemos entender matriz da seguinte forma Dados dois números m e n naturais e não nulos denominase matriz m por n indicando por m x n toda tabela M formada por números reais elementos ou termos distribuídos na m linhas e n colunas Escrevemos uma matriz dispondo os elementos entre colchetes ou entre parênteses Como por exemplo 𝑀 1 𝜋 2 0 12 3 2𝑥3 Em uma matriz qualquer M cada elemento é indicado por 𝑎𝑖𝑗 Onde o índice i indica a posição a linha e j a posição da coluna em que o elemento se encontra Genericamente uma matriz M é representada por 𝑀 𝑎𝑖𝑗𝑚𝑋𝑛𝑐𝑜𝑚1 𝑖 𝑚𝑒1 𝑗 𝑛 𝑜𝑛𝑑𝑒𝑖 𝑗 ℕ ou simplesmente 𝑀 𝑎𝑖𝑗𝑚𝑋𝑛 Agora vejamos com levar esse conceito para o MATLAB então vale as seguintes diretrizes 1 Identificar a matriz por uma letra maiúscula gerando a variável que irá receber a matriz através de uma atribuição 2 Os elementos devem estar entre colchetes 3 A digitação deve iniciar pelo primeiro elemento isto é 𝑎11 seguindo os elementos da respectiva linha 4 Cada elemento de uma linha deve ser separado por espaço ou por virgula 5 Para finalizar a linha editada o último elemento deve ser seguido por ponto e vírgula indicando para o MATLAB que irá ocorrer a digitação de uma nova linha 6 Ao concluir a inclusão dos elementos linha a linha não esqueça de fechar o parêntese Executando a matriz acima no MATLAB temos 45 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 51 Tipos de matrizes em função do seu dimensionamento Matriz Quadrada é quando a quantidade de linhas é igual a quantidade de colunas Matematicamente MATLAB 𝐴 1 03 5 14 2𝑋2 Matriz Retangular é quando a quantidade de linhas é diferente da quantidade de colunas Matematicamente MATLAB 𝐴 1 0 23 5 1 𝜋 2𝑋3 Matriz Linha é quando só tem uma linha e uma quantidade de coluna qualquer maior que um Matematicamente MATLAB 𝐴 5 31𝑋2 46 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Matriz Coluna é quando se tem várias linhas m1 e uma única coluna Matematicamente MATLAB 𝐴 2 13 0 3𝑋1 52 Adição de matrizes Dadas duas matrizes Aaijmxn e Bbijmxn chamase adição AB a matriz Ccijmxn tal que cijaijbij para todo i e todo j Isto significa que a adição de duas matrizes A e B do tipo mxn é uma matriz C do mesmo tipo em que cada elemento é a soma dos elementos correspondentes em A e B Exemplo Dadas as matrizes A e B calcule a adição de A por B e a adição de B por A no MATLAB Observe que 53 Subtração de matrizes Dadas duas matrizes Aaijmxn e Bbijmxn chamase subtração AB a matriz Ccijmxn tal que cijaijbij para todo i e todo j Isto significa que a adição de duas matrizes A e B do tipo mxn é uma matriz C do mesmo tipo em que cada elemento é a soma dos elementos correspondentes em A e B 𝐴 1 2 3 4 5 6 𝐵 1 0 1 2 1 1 Então calcule AB e BA 𝐴𝑚𝑋𝑛 𝐵𝑚𝑥𝑛 𝐵𝑚𝑥𝑛 𝐴𝑚𝑥𝑛 Então calcule AB e BA 47 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Exemplo Dadas as matrizes A e B calcule a subtração de A por B e a subtração de B por A no MATLAB Observe que 54 Multiplicação de um escalar por uma Matriz Dado um número k e uma matriz Aaijmxn chamase produto kA a matriz Bbijmxn tal que bij kaij para todo i e todo j Isto significa que multiplicar uma matriz A por um número k é construir uma matriz B formada pelos elementos de A todos multiplicados por k Exemplo Seja k2 o escalar e a matriz Calcule a matriz B com sendo kA no MATLAB Então 55 Multiplicação de Matrizes Dadas duas matrizes Aaijmxn e Bbjknxp chamase produto AB a matriz Ccikmxp tal que para todo i Є 12m e todo k Є 12p Assim para garantir a multiplicação entre matrizes é necessário que 𝐴 1 2 3 4 5 6 𝐵 1 0 1 2 1 1 Então calcule AB e BA 𝐴𝑚𝑋𝑛 𝐵𝑚𝑥𝑛 𝐵𝑚𝑥𝑛 𝐴𝑚𝑥𝑛 𝐴 1 2 3 4 5 6 n j jk ij nk in k i k i k i ik b a b a b a b a b a c 1 3 3 2 2 1 1 Para garantir a multiplicação entre matrizes é necessário que 48 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Esse conceito matemático também é válido no MATLAB assim sendo com a condição de existência da multiplicação de duas matrizes não é satisfeita no MATLAB temos um retorno de erro desse tipo Error using Inner matrix dimensions must agree Exemplo Se no MATLAB for fornecida as matrizes 𝐴 1 2 3 4 5 6 2𝑥3 e 𝐵 0 1 1 0 2 1 3𝑥2 Calcule A x B Então temos 56 Matriz transposta Dada uma matriz chamase transposta de A a matriz tal que para todo i e todo j Isto significa que as colunas de At são ordenadamente iguais às linhas de A Matematicamente teríamos No MATLAB ij ji a a mxn A aij nxm ji t a A 𝑆𝑒𝑗𝑎 𝐴 1 2 3 4 5 6 𝐸𝑛𝑡ã𝑜 𝐴𝑡 1 4 2 5 3 6 Notação da Matriz Transposta 49 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 57 Matriz Identidade É toda e qualquer matriz quadrada onde na diagonal principal os elementos são sempre 1 e o resto é igual a zero Assim matematicamente teríamos No MATLAB seria Agora é importante notar que 58 Determinantes Consideremos o conjunto das matrizes quadradas de elementos reais Seja M uma matriz de ordem n desse conjunto Chamamos determinante da matriz M det M o número que podemos obter operando com os elementos de M A notação do determinante da matriz M no MATLAB é detM então vejamos alguns exemplos 1 𝑆𝑒𝑗𝑎 𝐴 5 6 4 5 𝑒𝑛𝑡ã𝑜 𝑑𝑒𝑡𝐴 1 logo no MATLAB 𝐼2 1 0 0 1 𝐼3 1 0 0 0 1 0 0 0 1 etc 𝐼𝑖𝑗 1 𝑠𝑒 𝑖 𝑗 0 𝑠𝑒 𝑖 𝑗 Notação da Matriz Identidade Se o n de linhas colunas não ocorre erro porém não é Identidade 50 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 2 𝑆𝑒𝑗𝑎 𝐵 1 0 1 1 2 3 1 2 4 então detB 2 no MATLAB 3 𝑆𝑒𝑗𝑎𝐶 1 2 3 5 6 7 2 3 6 4 8 8 0 10 2 𝑒𝑛𝑡ã𝑜 det𝐶 0 no MATLAB temos 59 Matriz Inversa Seja A uma matriz quadrada de ordem n Dizemos que A é matriz inversível se existir uma matriz BA1 tal que AB BA In Se A não é inversível dizemos que A é uma matriz singular Vejamos um exemplo 𝑆𝑒𝑗𝑎 𝐴 1 0 2 1 𝑐𝑎𝑙𝑐𝑢𝑙𝑒 𝐴1 Matematicamente temos No MATLAB temos Notação da matriz inversa A1 no MATLAB é invA então 𝐶 𝐸 𝐴1 det𝐴 0 det𝐴 1 𝑒𝑛𝑡ã𝑜 𝐴1 𝑆𝑒𝑗𝑎 𝐴1 𝑎 𝑏 𝑐 𝑑 𝑒𝑛𝑡ã𝑜 𝐴 𝐴1 𝐼2 1 0 2 1 𝑎 𝑏 𝑐 𝑑 1 0 0 1 𝑎 𝑏 2𝑎 𝑐 2𝑏 𝑑 1 0 0 1 ቄ 𝑎 1 2𝑎 𝑐 0 ቄ 𝑎 1 𝑐 2 ቄ 𝑏 0 2𝑏 𝑑 1 ቄ𝑏 0 𝑑 1 𝐴1 1 0 2 1 51 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Utilizando os conceitos apresentados vamos desenvolver um script capaz de automatizar o cálculo da matriz inversa sendo necessário apenas fornecer a matriz Veja a seguir Nesse exemplo será adotado o método criptográfico que utiliza matriz como Chaves para codificar e decodificar uma mensagem Para tanto será utilizada uma matriz quadrada de ordem 2 cujos elementos são números inteiros a saber 1 𝑝𝑎𝑠𝑠𝑜 𝑣𝑒𝑟𝑖𝑓𝑖𝑐𝑎𝑟 𝑠𝑒 𝐴1 Notação para calcular a Inversa 52 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝐴 1 3 2 7 Com base nessa informação deverá ser calculada a sua inversa que será denominada de B Assim sendo o remetente vai usar a matriz A para codificar a mensagem e o destinatário vai usar a matriz B para decodificala Inicialmente dada uma mensagem para ser codificada a mesma deve ser convertida da forma alfabética para a forma numérica utilizando a tabela de associação de letras e números como mostra a tabela a seguir A B C D E F G H I J K L M N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P Q R S T U V W X Y Z 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Tanto o remetente como o destinatário têm em comum essa tabela de conversão e foi acordado que o espaço entre as palavras será representado pelo símbolo Usando os conceitos estabelecidos observe o remetente como trata o texto e em seguida o destinatário Qual será a mensagem enviada Remetente Destinatário 𝑇 15 29 17 21 5 29 22 15 3 5 29 16 5 14 19 1 28 29 22 15 3 5 29 3 18 9 1 30 𝑀 𝐴 𝑇 72 32 101 108 71 74 31 30 90 14 73 43 8 104 163 65 230 245 164 163 65 65 209 31 164 95 17 238 𝐴 1 3 2 7 𝑀 72 32 101 108 71 74 31 30 90 14 73 43 8 104 163 65 230 245 164 163 65 65 209 31 164 95 17 238 𝐴 1 3 2 7 det𝐴 𝑒𝑛𝑡ã𝑜 𝐵 𝐴1 7 3 2 1 53 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Usando o quadro A B C D E F G H I J K L M N O 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 P Q R S T U V W X Y Z 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 Oquevocêpensavocêcria 𝐵 𝑀 𝐵 𝐴 𝑇 𝐼 𝑇 𝑇 15 29 17 21 5 29 22 15 3 4 29 16 5 14 19 1 28 29 22 15 3 5 29 3 18 9 1 30 54 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 6 SITEMAS LINEARES USANDO MATLAB É um conjunto de m m1 equações lineares nas incógnitas x1x2x3xn Assim o sistema S é linear Existem três classificações para um sistema linear a saber Sistema Possível e Determinado SPD uma única solução para cada variável Sistema Possível e Indeterminado SPI infinitas soluções para cada variável Sistema Impossível SI não tem solução para cada variável 61 Resolução do Sistema Linear por Equação Matricial Lembrando a definição de produto de matrizes notemos que o sistema linear S pode ser escrito na forma matricial Então matematicamente temos Assim sendo podemos entender que se existir a inversa da matriz A o sistema será sempre possível e determinado SPD Porém se não existir a inversa da matriz A quanto a classificação nada podemos afirmar Vejamos agora o passo a passo que devemos executar no MATLAB através do Command Window Por exemplo Considere a soma das medidas de uma base e da altura relativa a essa base de um triângulo igual a 168 cm e a diferença igual a 24 cm Determine a base e altura desse triângulo m n mn m m m n n n n b x a x a x a x a b a x a x a x x a b a x a x a x x a S 3 3 2 2 1 1 2 2 3 23 2 22 1 21 1 1 3 13 2 12 1 11 m n mn m m m n n b b b b x x x x a a a a a a a a a a a a 3 2 1 3 2 1 3 2 1 2 23 22 21 1 13 12 11 B A X B A X I B A A X A B X A 1 1 1 1 𝐴1 𝐴 𝐴 𝐴1 𝐼 𝐼 𝑋 𝑋 𝐼 𝑋 A X B 55 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Inicialmente devemos montar o sistema e gerar as matrizes isto é No MATLAB temos Escrevendo um script para automatizar essa tarefa temos Vamos fazer um exemplo e aplicar no script acima ቄ𝑏 ℎ 168 𝑏 ℎ 24 ቄ1 𝑏 1 ℎ 𝟏𝟔𝟖 1 𝑏 1 ℎ 𝟐𝟒 Considerando Se detA0 então o SPD Achar a matriz X 56 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Uma companhia de navegação tem três tipos de recipientes A B e C que carrega cargas em containers de três tipos I II e III As capacidades dos recipientes são dadas pela tabela a seguir Recipiente Tipo I Tipo II Tipo III A 4 3 2 B 5 2 3 C 2 2 3 Quais são os números de recipientes A B e C de cada categoria se a companhia deve transportar 42 containers do tipo I 27 do tipo II e 33 do tipo III 62 Método de eliminação de Gauss por pivot Para iniciar o cálculo temse um prérequisito isto é o detA0 Assim sendo se faz necessário transformar o sistema original AXB num outro sistema equivalente isto é B à X Com matriz à triangular superior evitando assim o cálculo da matriz inversa O sistema equivalente será muito fácil de resolver pois bastará usar substituição ascendente de baixo para cima calcular o valor de cada incógnita para obter à solução pretendida ൝ 4𝐴 5𝐵 2𝐶 42 3𝐴 2𝐵 2𝐶 27 2𝐴 3𝐵 3𝐶 33 𝐴 4 5 2 3 2 2 2 3 3 𝑒 𝐵 42 27 33 57 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Assim o objetivo é obter uma matriz triangular superior a partir da matriz ampliada do sistema A efetuando apenas operações elementares sobre as linhas da matriz ampliada Então seja Que se pode resolver facilmente por substituição ascendente isto é Resolva o sistema a seguir pelo método de eliminação gaussiana por pivot Gerando a matriz ampliada do sistema temos 3 3 2 2 1 1 3 2 1 2 2 2 23 2 22 1 1 1 13 1 12 1 11 3 2 1 3 2 1 3 2 1 2 23 22 21 1 13 12 11 0 0 0 0 n n n n nn n n n n nn n n n n n b b b b x x x x a a a a a a a a b b b b x x x x a a a a a a a a a a a a 11 1 n k para a a b x a b x k kk n i j k kj k k k n nn n n n ൝ 𝑥 𝑦 𝑧 1 4𝑥 4𝑦 2𝑧 2 2𝑥 𝑦 𝑧 0 ൝ 1𝑥 1𝑦 1𝑧 𝟏 4𝑥 4𝑦 2𝑧 𝟐 2𝑥 1𝑦 1𝑧 𝟎 O que podemos fazer com a matriz ampliada 1 posso trocar a ordem das linhas 2 posso multiplicar uma linha por um escalar diferente de zero 3 posso descartar linha de zeros 4 posso trocar linha por uma combinação linear da outra linha isto é 𝐿𝑖 𝐿𝑖 𝑘 𝐿𝑗 𝑜𝑛𝑑𝑒 𝑖 𝑗 1 1 1 𝟏 4 4 2 𝟐 2 1 1 𝟎 x 4 x 2 pivot 1 1 1 𝟏 𝟎 0 2 2 𝟎 1 3 2 Pivot não pode ser nulo 1 1 1 𝟏 𝟎 1 3 2 𝟎 𝟎 2 2 ൝ 1𝑥 1𝑦 1𝑧 𝟏 𝟎𝑥 1𝑦 3𝑧 𝟐 𝟎𝑥 𝟎𝑦 2𝑧 𝟐 Então geramos o seguinte sistema X 1 Y 1 Z 1 58 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Desenvolvendo um script para executar a resolução de sistemas lineares pelo método de eliminação de Gauss por pivot temos Resolvendo o sistema de baixo para cima temos 59 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Resolva os sistemas a seguir utilizando o script desenvolvido 1 ൝ 𝑥 2𝑦 1 𝑥 𝑦 𝑧 0 2𝑥 4𝑦 2𝑧 2 2 ൝ 𝑥 3𝑦 𝑧 1 𝑥 𝑦 2𝑧 1 2𝑥 4𝑦 3𝑧 0 3 ൝ 𝑥 5𝑦 𝑧 1 𝑥 𝑦 4𝑧 0 2𝑥 4𝑦 5𝑧 0 60 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 7 POLINÔMIOS NO MATLAB Definição Dada a sequência de números complexos 𝑎0 𝑎1 𝑎2 𝑎𝑛 consideremos a função f C C dada por A função f é denominada função polinomial associado à sequência dada que também será denominada de polinômio 71 Valor Numérico Definição Chamase valor numérico de f em a a imagem de a pela função f isto é Aplicando o conceito em um contexto matemático no exemplo a seguir temos Se 𝑓𝑥 3𝑥3 𝑥2 𝑥 2 calcule f2 e f1 Então 𝑓2 3 23 22 2 2 32 𝑓1 3 13 12 1 2 1 No MATLAB para obter o valor do polinômio num determinado ponto temse o comando polyval então o exemplo acima ficaria assim no command window No exemplo a seguir busquemos a resolução utilizando o conceito matemático e aplicando no MATLAB 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑓𝑎 𝑎0 𝑎1𝑎 𝑎2𝑎2 𝑎𝑛𝑎𝑛 Os coeficientes devem ser fornecidos em ordem decrescente do expoente de x Caso não exista devese registrar zero 61 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância A variação de temperatura no Antártico durante um dia de inverno foi registrada por um instituto meteorológico As temperaturas T em graus Celsius registradas em função da hora h de 5h às 17h nesse dia podem ser encontradas através da função T h h² 22h 85 Nesse dia qual foi a temperatura mínima registrada nessa região Calculando o valor na hora inicial 5h Calculando o valor na hora final 17h Como os valores inicial e final são raízes da função buscase o valor médio do eixo da abscissa tempo caracterizando o xv isto é 𝑥𝑣 517 2 para obter yv que será a temperatura mínima procurada Então 72 Operação de Adição de polinômios Definição Dados dois polinômios f e g Chamase soma de f com g o polinômio 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑎𝑖𝑥𝑖 𝑛 𝑖0 𝑔𝑥 𝑏0 𝑏1𝑥 𝑏2𝑥2 𝑏𝑛𝑥𝑛 𝑏𝑖𝑥𝑖 𝑛 𝑖0 𝑓 𝑔𝑥 𝑎𝑖 𝑏𝑖𝑥𝑖 𝑛 𝑖0 62 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Aplicando matematicamente o conceito no exemplo a seguir temos Dado os polinômios Calcule a soma de f com g Ordenando os expoentes temos Logo Agora vem a pergunta como seria isso no MATLAB É fundamental dois passos a saber 1 Ordenar os expoentes do maior para o menor 2 Caso algum termo não exista deve ser colocado zero no lugar Então A partir desse processamento é de competência do usuário saber compor o polinômio Mas isso também é simples basta reconhecer o grau dos polinômios isto é f 2 e g 4 logo fg 4 Então teremos 73 Operação de Subtração de polinômios Definição Dados dois polinômios f e g Chamase soma de f com g o polinômio Aplicando matematicamente o conceito no exemplo a seguir temos Dado os polinômios Calcule a subtração de f com g 𝑓𝑥 𝑥2 3𝑥 4 𝑔𝑥 𝑥4 3𝑥2 5 𝑓𝑥 0𝑥4 0𝑥3 𝑥2 3𝑥 4 𝑔𝑥 𝑥4 0𝑥3 3𝑥2 0𝑥 5 𝑓 𝑔𝑥 𝑥4 0𝑥3 4𝑥2 3𝑥 9 adicao 𝑥4 0𝑥3 4𝑥2 3𝑥 9 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑎𝑖𝑥𝑖 𝑛 𝑖0 𝑔𝑥 𝑏0 𝑏1𝑥 𝑏2𝑥2 𝑏𝑛𝑥𝑛 𝑏𝑖𝑥𝑖 𝑛 𝑖0 𝑓 𝑔𝑥 𝑎𝑖 𝑏𝑖𝑥𝑖 𝑛 𝑖0 𝑓𝑥 𝑥4 3𝑥2 5 𝑔𝑥 𝑥2 3𝑥 4 63 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Ordenando os expoentes temos Logo No MATLAB temos O raciocínio é análogo ao da adição Porém deve ser levado em conta o tipo de operação no caso subtração Logo 74 Operação de Multiplicação de polinômios Definição Dados dois polinômios f e g Notase que o produto do polinômio f pelo polinômio g pode ser obtido multiplicandose cada termo 𝑎𝑖 𝑥𝑖 de f por cada termo 𝑏𝑗𝑥𝑗 de g segundo a regra 𝑎𝑖 𝑥𝑖 𝑏𝑗 𝑥𝑗 𝑎𝑖 𝑏𝑗 𝑥𝑖𝑗 e somando os resultados obtidos Vejamos um exemplo no contexto matemático Dado os polinômios 𝑓𝑥 6𝑥2 5𝑥 1 e 𝑔𝑥 3𝑥3 2𝑥2 𝑥 Calcule a multiplicação de f por g Primeiramente devemos observar que 𝑺𝒆 𝒇 𝟐 𝒆 𝒈 𝟑 𝒇 𝒈 𝟐 𝟑 𝟓 No MATLAB o tratamento ocorre assim 𝑓𝑥 𝑥4 0𝑥3 3𝑥2 0𝑥 5 𝑔𝑥 0𝑥4 0𝑥3 𝑥2 3𝑥 4 𝑓 𝑔𝑥 𝑥4 0𝑥3 2𝑥2 3𝑥 1 subtracao 𝑥4 0𝑥3 2𝑥2 3𝑥 1 𝑓𝑥 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 𝑔𝑥 𝑏0 𝑏1𝑥 𝑏2𝑥2 𝑏𝑛𝑥𝑛 𝑓 6𝑥2 5𝑥 1 𝑔 3𝑥3 2𝑥2 𝑥 6𝑥3 5𝑥2 𝑥 𝑓 𝑥 12𝑥4 10𝑥3 2𝑥2 𝑓 2𝑥2 18𝑥5 15𝑥4 3𝑥3 𝑓 3𝑥3 18𝑥5 27𝑥4 19𝑥3 7𝑥2 𝑥 x Logo fg 𝟏𝟖𝒙𝟓 𝟐𝟕𝒙𝟒 𝟏𝟗𝒙𝟑 𝟕𝒙𝟐 𝒙 64 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Para multiplicar um polinômio pelo outro utilizase o comando convfg entendendo que será feita a multiplicação do polinômio f pelo polinômio g Então 𝑺𝒆 𝒇 𝟐 𝒆 𝒈 𝟑 𝒇 𝒈 𝟐 𝟑 𝟓 Produto 18𝑥𝟓 27𝑥4 19𝑥3 7𝑥2 𝑥 75 Operação de Divisão de polinômios Definição Dados dois polinômios f dividendo e g0 divisor dividir f por g é determinar dois outros polinômios q quociente e r resto de modo que se verifiquem as duas condições a g q r f divisão Euclidiana b Grau do resto Grau do divisor isto é r g Se r 0 caracteriza a divisão exata Analisemos como seria esse processo matematicamente Dado os polinômios f𝑥 𝑥4 16 dividendo e g𝑥 𝑥 1 divisor Calcule a divisão de f por g No MATLAB temos Para efetuar a divisão entre polinômios temse o seguinte procedimento qr deconv fg 𝑥3𝑥2 𝑥 1 𝑥4 0𝑥3 0𝑥2 0𝑥 16 𝑥 1 𝟎 𝑥3 0𝑥2 𝑥3 𝑥2 𝟎 𝑥2 0𝑥 𝑥2 𝑥 𝟎 𝑥 16 𝑥 1 𝟎 15 𝑥4 𝑥3 quociente f g 4 1 3 g divisor resto 0 65 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Cuja resposta consta de duas variáveis q é o quociente da divisão de f por g r é o resto da divisão de f por g Então quociente f g 4 1 3 Façamos agora um exemplo de aplicação utilizando as operações polinomiais Para tanto um engenheiro civil recebeu de seu arquiteto a proposta de fazer uma moldura de azulejo na janela quadrada conforme mostra a figura Sabese que a janela é quadrada e mede x 1 metros e o lado externo da moldura azulejada é de 3x 1 metros Determine o polinômio que irá representar a área azulejada Analisando a proposta temos Lm lado menor x 1 Am Lm² Lg lado maior 3x 1 Ag Lg² Az área azulejada Ag Am Aplicando no MATLAB vem Azx 8x² 8x 0 Azx 8x² 8x 76 Equação Polinomial Vamos resolver equação polinomial utilizando o teorema das raízes racionais Seja uma equação polinomial de coeficientes inteiros admite pelo menos uma raiz racional na forma 𝑞 𝑥3𝑥2 𝑥 1 r 15 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 0 𝑎𝑛 0 66 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝑝 𝑞 onde p Z q Z Então p é divisor de a0 e q é divisor de an Gerando assim as possíveis raízes racionais da equação Vejamos agora um exemplo aplicando o conceito matematicamente Quais são as raízes do polinômio Gerando as possíveis raízes racionais temse p15q3 1 1 3 3 5 5 15 15 1 1 1 3 3 5 5 15 15 3 13 13 53 53 Utilizando o conceito de valor numérico para cada valor de x iremos buscar os resultados que retornarem imagem igual a zero Gerando a seguinte tabela fx Imagem fx Imagem f1 0 f15 13440 f1 0 f15 6720 f3 192 f13 1289 f3 48 f13 1129 f5 720 f53 3209 f5 0 f53 1609 Podese concluir que a equação polinomial tem três raízes reais a saber x 1 x 1 e x 5 Como podemos observar manualmente o trabalho é árduo e sujeito a possíveis erros de cálculo então a pergunta é Como poderíamos fazer isso no MATLAB Para determinar as raízes de um polinômio no MATLAB temse o comando roots Veja o exemplo a seguir Ilustrando graficamente temos 3𝑥3 15𝑥2 3𝑥 15 0 67 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Exemplo Se tivéssemos que calcular o volume do sólido representado pela figura teríamos um polinômio Assim sendo calcule o valor de x se esse polinômio fosse uma equação polinomial Para efetuar a solução utilize os conceitos apresentados e desenvolva no MATLAB Se lado da base x1 então no MATLAB podemos representar por lb1 1 Se a altura x2 então no MATLAB podemos representar por h1 2 Para calcular o volume devemos inicialmente ter a área da base que será um polinômio de 2 e depois multiplicar pela altura que é um polinômio de 1 Isso irá gerar os coeficientes do polinômio do Volume cujo polinômio terá 3 Então para transformar a função polinomial em equação devemos igualala a zero buscando assim suas raízes Logo no MATLAB temos Então podemos concluir que o volume desse sólido será sempre possível desde que x 1 dessa forma inviabilizando o comprimento do lado da base ou x 2 isso transformaria a altura nula o que inviabilizaria a existência do sólido Portanto x pode ser qualquer valor real diferente de 1 e 2 e aí teremos o respectivo volume do sólido Vx x³ 0x² 3x 2 68 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 8 MÉTODO DE NEWTONRAPHSON NO MATLAB Como pode ser observado os problemas do cotidiano até os tecnológicos podem ser resolvidos via o estudo e análise de funções Porém as soluções de muitos deles está relaionado com o fato de encontrar os zeros das funções isto é saber onde estas funções se anulam Muitos matemáticos se dedicaram a esse tipo de estudo o método de Newton Raphson é um dos métodos mais eficientes para a solução numérica de fx0 81 Interpretação Geométrica O método de NewtonRaphson desenvolvido por Isaac Newton e Joseph Raphson Tem o objetivo de estimar as raízes de uma função Para tanto devese seguir os seguintes passos 1 Escolher uma aproximação inicial 2 Calculase a equação da reta tangente por meio da derivada da função nesse ponto 3 Localizase a interseção da reta tangente com o eixo das abcissas para encontrar uma melhor aproximação para a raiz 4 Repetindose o processo 5 Criase um método iterativo para encontrarmos a raiz da função O método iterativo é dado por 𝒙𝒏𝟏 𝒙𝒏 𝒇𝒙𝒏 𝒇𝒙𝒏 𝒏 ℕ Onde 𝑥𝑛 é uma aproximação inicial dada n indica a nésima iteração do algoritmo e 𝑓𝑥𝑛 é a derivada da função 𝑓 no ponto 𝑥𝑛 82 Resolução simplificada Aplicando o conceito em um exemplo temos Localize o zero da função 𝑓𝑥 𝑥3 2𝑥2 𝑥 3 Admitindo aproximação inicial igual a 4 com seis iterações ou erro de 105 Logo 69 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝑆𝑒 𝑓𝑥 𝑥3 2𝑥2 𝑥 3 𝑒𝑛𝑡ã𝑜 𝑓𝑥 3𝑥2 4𝑥 1 𝑐𝑜𝑚 𝒙𝟎 𝟒 n 𝒙𝒏 𝒇𝒙𝒏 𝒇𝒙𝒏 𝒙𝒏𝟏 𝒆𝒓𝒓𝒐 𝒙𝒏 𝒙𝒏𝟏 Parar 1 400000000 3300000000 3300000000 300000000 100000000 Não 2 300000000 900000000 1600000000 243750000 056250000 Não 3 243750000 203690000 907420000 221300000 022450000 Não 4 221300000 025640000 684040000 217456000 003844000 Não 5 217456000 000650000 649690000 217456010 000000010 Sim erro 105 Observamos aqui que mesmo que não tenhamos feito a 6 iteração o erro já é menor que 105 logo podese para o método Logo o a função atinge seu zero em aproximadamente 217456010 000000010 Agora pensemos assim se a minha função não for composta por coeficientes inteiros isto é 𝑎0 𝑎1𝑥 𝑎2𝑥2 𝑎𝑛𝑥𝑛 0 𝑎𝑛 0 como vimos até o presente momento Será que posso resolver usando NewtonRaphson Então veja o próximo exemplo Localize o zero da função Admitindo aproximação inicial igual a 8 com quatro iterações ou erro de 104 𝑆𝑒 𝑓𝑥 2𝑥 cos𝑥 𝑒𝑛𝑡ã𝑜 𝑓𝑥 𝑠𝑒𝑛𝑥 2 𝑐𝑜𝑚 𝒙𝟎 𝟖 03927 Então n 𝒙𝒏 𝒇𝒙𝒏 𝒇𝒙𝒏 𝒙𝒏𝟏 𝒆𝒓𝒓𝒐 𝒙𝒏 𝒙𝒏𝟏 Parar 1 03927 013848 238268 045082 005812 Não 2 045082 000155 243570 045018 000064 Sim erro104 Raiz 045018361 000064 83 Implementação do Algoritmo no MATLAB Agora vamos implementar esse procedimento em um script MATLAB 𝑓𝑥 2𝑥 cos𝑥 70 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Procure no helpwin a explicação das funções ou acesse os links inline httpswwwyoutubecomwatchvEg32RP2oN0 syms httpswwwyoutubecomwatchves5SGnXeXuk diff httpswwwyoutubecomwatchvg08g8AFCIH0 subs httpswwwyoutubecomwatchvEL3YAXMNpSk Agora utilizando o script desenvolvido vamos fazer algumas aplicação na área da Engenharia 1 Em estequiometria industrial estequiometria é o cálculo da quantidade das substâncias envolvidas numa reação química aparece uma equação do tipo 𝑓𝑥 2604 ln𝑥 𝑥 5144 0 Admitindo como aproximação inicial de x sendo 48 executando no máximo 4 iterações ou erro esperado sendo 105 71 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Informando os dados no script temos Isto é raiz 5088695698 000010046 2 Um engenheiro nas suas férias saiu do Rio de Janeiro onde mora e tinha como destino Gramado A viagem seria feita de carro passando pelas seguintes cidades São Paulo e Curitiba Com o hábito de registrar e observar fatos anotou em um caderno as temperaturas de cada cidade assim sendo obteve a seguinte tabela Cidade Rio de Janeiro 1 São Paulo 2 Curitiba 3 Gramado 4 Temperatura 21C 9C 2C 2C Então gerou o polinômio desses registros gerando a seguinte sentença 𝑓𝑥 𝑥3 3 9𝑥2 2 139𝑥 6 40 Imaginando que ele estivesse entre a cidade 3 Curitiba e a cidade 4 Gramado aí surgiu uma dúvida para engenheiro isto é gostaria de saber entre o intervalo 34 onde está a raiz desse polinômio Para tanto utilizando o método de NewtonRaphson com uma 72 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância aproximação igual 33 e fazendo cinco iterações ou erro esperado de 106Qual é a raiz encontrada e seu respectivo erro raiz 343719829 000000654 3 A função fx xsenx é utilizada no estudo de oscilações forçadas sem amortecimento Sabendo que 𝑥0 1 determine o zero da função pelo método de NewtonRapshon admitindo erro 0001 ou com dez iterações usando o script fornecido raiz 000073753 000147507 73 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 9 INTERPOLAÇÃO POR LAGRANGE USANDO MATLAB O método de interpolação que vamos estudar foi desenvolvido por Joseph Louis de Lagrange motivo pelo qual o método é conhecido por Interpolação de Lagrange Antes de expor a fórmula geral e com a finalidade de entender o funcionamento do cálculo do Polinômio Interpolador de Lagrange será considerado os pontos sinalizados no gráfico ao lado isto é 13 26 e 42 e ao traçar o gráfico que passa por esses pontos temse representação de uma parábola ou seja 𝒇𝒙 𝒙𝟐 𝟐𝒙 𝟔 Agora surge a seguinte pergunta Tendo apenas os pontos como obter a função Então temos a interpolação de Langrage que determina o polinômio da seguinte forma Vejamos como calcular 𝐿1 𝐿2 𝑒 𝐿3 Temos os seguintes dados 𝑳𝟏𝒙 𝒙 𝒙𝟐𝒙 𝒙𝟑 𝒙𝟏 𝒙𝟐𝒙𝟏 𝒙𝟑 𝒙 2𝒙 4 1 21 4 𝑥2 6𝑥 8 15 𝑳𝟐𝒙 𝒙 𝒙𝟏𝒙 𝒙𝟑 𝒙𝟐 𝒙𝟏𝒙𝟐 𝒙𝟑 𝒙 1𝒙 4 2 12 4 𝑥2 3𝑥 4 6 𝑳𝟑𝒙 𝒙 𝒙𝟏𝒙 𝒙𝟐 𝒙𝟑 𝒙𝟏𝒙𝟑 𝒙𝟐 𝒙 1𝒙 2 4 14 2 𝑥2 𝑥 2 10 Essas funções são designadas de polinômios de Lagrange 𝐿𝑖𝑥 Compondo o polinômio Temos 𝑓𝒙𝟏 𝑳𝟏𝒙 3 𝑥2 6𝑥 8 15 𝑥2 6𝑥 8 5 𝒙𝟐 𝟓 𝟔𝒙 𝟓 𝟖 𝟓 𝑓𝒙𝟐 𝑳𝟐𝒙 6 𝑥2 3𝑥 4 6 𝑥2 3𝑥 4 1 𝒙𝟐 𝟑𝒙 𝟒 𝑓𝒙𝟑 𝑳𝟑𝒙 2 𝑥2 𝑥 2 10 𝑥2 𝑥 2 5 𝒙𝟐 𝟓 𝒙 𝟓 𝟐 𝟓 x fx x1 1 fx1 3 x2 2 fx2 6 x3 4 fx3 2 𝒑𝒙 𝒇𝒙𝟏 𝑳𝟏 𝒇𝒙𝟐 𝑳𝟐 𝒇𝒙𝟑 𝑳𝟑 𝒑𝒙 𝒇𝒙𝟏 𝑳𝟏 𝒇𝒙𝟐 𝑳𝟐 𝒇𝒙𝟑 𝑳𝟑 74 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Somando as parcelas 𝑥2 5 𝑥2 𝑥2 5 6𝑥 5 3𝑥 𝑥 5 8 5 4 2 5 𝑥2 2𝑥 6 px 91 Teorema A fórmula de interpolação de Lagrange pode ser derivada direto do polinômio de diferença dividida de Newton de grau equivalente primeiramente escrevendo a diferença dividida na forma simétrica n i j i n j i j i n n x x f x x x x f 0 0 0 1 A fórmula de Lagrange envolve somente os pontos xi e os valores da função correspondente fxi Então o polinômio interpolador de Lagrange pode ser escrito como n i i i n n n n L x f x x p f x L x f x L x f x L x x p 0 1 1 0 0 Onde fxi é o valor obtido para cada xi e temse que Lix é n i x x x x x L x x x x x x x x x x x x x L j i j n j i j i n i i i n i 10 0 1 0 1 0 Aplicando o conceito em um exemplo temos Considere a seguinte tabela da função fx que descreve a quantidade de pessoas que entramsaem num elevador em cada piso x numa subida entre os piso 1 e o piso 2 x 1 0 1 2 fx 2 1 0 4 Utilizando o interpolador de Lagrange gere o polinômio que representa essa tabela Lembrando que 𝐿𝑖𝑥 𝑥𝑥0𝑥𝑥1𝑥𝑥𝑛 𝑥𝑖𝑥0𝑥𝑖𝑥1𝑥𝑖𝑥𝑛 então temos 75 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância 𝐿0 𝑥 0 1 0 𝑥 1 1 1 𝑥 2 1 2 𝑥3 3𝑥2 2𝑥 6 𝐿1 𝑥 1 0 1 𝑥 1 0 1 𝑥 2 0 2 𝑥3 2𝑥2 𝑥 2 2 𝐿2 𝑥 1 1 1 𝑥 0 1 0 𝑥 2 1 2 𝑥3 𝑥2 2𝑥 2 𝐿3 𝑥 1 2 1 𝑥 0 2 0 𝑥 1 2 1 𝑥3 𝑥 6 Como 𝑝𝑛𝑥 𝑓𝑥0 𝐿0𝑥 𝑓𝑥1 𝐿1𝑥 𝑓𝑥𝑛 𝐿𝑛𝑥 então 𝑝𝑛𝑥 2 𝑥3 3𝑥2 2𝑥 6 1 𝑥3 2𝑥2 𝑥 2 2 0 𝑥3 𝑥2 2𝑥 2 4 𝑥3 𝑥 6 𝒑𝒏𝒙 𝟓 𝟔 𝒙𝟑 𝟏𝟏 𝟔 𝒙 𝟏 92 Implementação do algoritmo no MATLAB Nessa implementação para sua compreensão cabe destacar que 1 Além de gerar o polinômio interpolador de Lagrange usando o teorema acima 2 Será traçado gráficos que representam os pontos dados no plano cartesiano a criação de sua representação gráfica e também o gráfico da interpolação de Lagrange onde será possível observar a aderência do método 3 Finalmente é proposta uma possível previsão de um ponto utilizando a interpolação de Lagrange Para ter acesso a todo esse desenvolvimento o usuário desse algoritmo terá que fornecer apenas os valores tabelados isto é xi e fxi na forma matricial 76 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Com base no exposto veja o código a seguir 77 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Vejamos agora um exemplo utilizando o algoritmo implementado no MATLAB A distância requerida para parar um automobilista é a função da velocidade em que ele se desloca Os seguintes dados experimentais foram recolhidos para quantificar essa relação Qual seria a distância necessária se o carro estivesse a 45 kmh Executando o script e fornecendo os dados temos Em seguida é construído o gráfico em outra GUI como mostra a figura Veloc kmh 15 20 25 30 40 50 Distância m 16 20 34 40 60 90 78 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Finalmente respondendo s na pergunta do rodapé do Command Window temos Logo respondendo à pergunta do enunciado em uma velocidade de 45kmh a distância seria aproximadamente de 8586 m Na realização de uma experiência determinaramse os seguintes valores da capacidade de calor Q e as várias temperaturas T de um metal como mostra a tabela a seguir Temp 100 70 10 20 Calor 0150 0144 0134 0128 Com base nessas informações gere o polinômio que melhor representa os pontos e trace o respectivo gráfico Executando o script e informando os dados do menor para o maior temos 79 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Então o gráfico é GILAT Amos Matlab com Aplicações em Engenharia Editora Bookman ISBN 8536306920 2006 CHAPMAN Stephen J Programação Em Matlab para Engenheiros Editora Thomson Pioneira ISBN 8522103259 2006 HAHN Brian H VALENTINE Daniel T Essential MATLAB for Engineers and Scientists Published by Elsevier Ltd ISBN 9780081008775 2013 GILAT Amos SUBRAMANIAVish Métodos Numéricos para Engenheiros e Cientistas Bookman ISBN 9788577802975 2008 CHAPRASteven C Métodos Numéricos aplicados com MATLAB para Engenheiros e Cientistas EdMcGraw Hill 3aedição ISBN 8580551765 2013 80 Computação Aplicada à Engenharia Universidade Santa Cecília Educação a Distância Ao concluir esse guia da disciplina espero que tenha contribuído para seu processo ensinoaprendizado Também quero crer que tenha despertado em você mais uma possibilidade tecnológica na área de Engenharia O uso do computador através do software MATLAB tem se mostrado nacionalmente e internacionalmente um suporte valioso para profissionais da área de Engenharia Gostaria de finalizar dizendo que esse universo se finda quando acaba a nossa curiosidade Assim sendo acredito que continue pesquisando e desenvolvendo Um grande abraço e muito sucesso Profª Dorotéa Vilanova Garcia