You are on page 1of 25
STEVEN C. METODOS NUMERICOS APLICADOS COM MATLAB® PARA ENGENHEIROS E CIENTISTAS Les Principios bdsicos do MATLAB > OBJETIVOS DO CAPITULO © objetivo principal deste capitulo fornecer uma intradugo e uma visio geral de como o modo calculadora do MATLAB é usado para implementar cdleulos interativos. Apés esta leitura completa, voes seré capaz de Y — Aprender como nimeros reais € complexes so atribuidos a variéveis. Y —Aprender como atribuir valores a vetores e matizes utilizando a atribuicdo simples, o operador dois-pontos e as funcdes Linspace e logspace Y _ Entender as regras de prioridade para constrvir expresses matematicas. Y — Compreender o que sao funcées nativas e aprender mais sobre elas com os recursos de Help (Ajuda) do MATLAB, v Aprender como usar vetores para gerar um gréfico simples com base em uma equacéo. VOCE TEM UM PROBLEMA ‘No Capitulo 1, usamos um balango de forgas para determinar a velocidade terminal de um corpo em queda livre, por exemplo, um saltador de bungee jumping, [er Veg onde , é a velocidade terminal (m/s), g é a aceleragdo da gravidade (m/s), m é a massa (kg) ¢ ¢, € 0 cocficiente de arraste (kg/m). Com essa equagao ¢ possivel prever a velocidade terminal; além disso, cla pode ser reorganizada para calcular 0 coefi- ciente de arraste mg ca= oF (2:1) Assim, se medirmos a velocidade terminal de varios saltadores de massa co- nhecida, essa equagio fornecerd um meio para estimar o coeficiente de arraste. Os dados na Tabela 2.1 foram coletados para esse propésito. TABELA 2.1 Dados para a massa e velocidades termincis associadas o ume série de soltadores. mig «836 «60272 SSCSSSCOD o,m/s 53,4 48,5 50,9 55,7 54 47,7 51,1 Capitulo 2 Principios basicos do MATLAB_—_-25 Neste capitulo, aprenderemos como o MATLAB pode ser usado para analisar tais dados e calcular quantidades como coeficientes de arraste. Ilustraremos tam- bém como as capacidades grificas do MATLAB fornecem informagdes que com- plementam essas andlises. 2.1 O AMBIENTE DO MATLAB O MATLAB € um software que fornece ao usuério um ambiente adequado a real zaco de diversos tipos de calculos; além disso, contém ferramentas bastante iiteis para implementagao de métodos numéricos. Pode-se operar 0 MATLAB inserindo um comand de cada vez no prompt de comando (command window). Neste capitulo, usaremos esse modo interativo ou modo calculadora para introduzir operagdes comuns, como realizagao de célculos simples e criagdo de gréficos. No Capitulo 3, mostraremos como tais comandos po- dem ser usados para desenvolver programas no MATLAB Salientamos que este capitulo foi escrito como um exercicio; isto €, vocé deve 1é-lo enquanto esta sentado na frente do computador. A maneira mais facil para se tornar proficiente é implementar na pritica os comandos no MATLAB conforme for avangando no material a seguir. © MATLAB utiliza trés janelas (windows) principais: ¥ Command window: Utilizada para inserir comandos e dados ¥ — Graphics window: Utilizada para exibir graficos. v Edit window: Utilizada para criar ¢ editar arquivos-M (M-files ou programa/ fungdes do MATLAB). Neste capitulo usaremos as janelas command window e graphics window: no Capitulo 3, usaremos a janela edit window para desenvolver programas no MATLAB. . Apés inicializar o MATLAB, a janela command window abriré com o prompt de comando a seguir > O modo caleuladora do MATLAB opera em um modo sequencial a medida que 0s comandos sao digitados linha por linha. Para cada comando aparece um resulta- do, portanto, pode-se pensar nesse modo de operagaio do MATLAB como uma cal- culadora sofisticada. Por exemplo, digitando-se >> 55 - 16 O MATLAB exibe o resultado! ans = 39 Observe que o MATLAB atribuiu automaticamente a resposta a uma variavel, ans. Portanto, agora pode-se utilizar a varidvel ans no céleulo seguinte: >> ans + 11 ' O MATLAB pula uma linha entre o rétulo (ans =) ¢ 0 mimero (39). Aqui, omitimos essa linha vazia por simples economia de espago, mas vocé pode controlar a insereo ou nto de linhas vazias com 0s comandos format compact e format loose, 26 Parte 1 Modelagem, computadores e andlise de erros com 0 resultado ans = 50 O MATLAB sempre atribuird os resultados a variavel-padrao ans, se os céleu- los nao forem explicitamente atribuidos a uma variavel definida pelo usuario. 2.2 ATRIBUIGAO A aco de atribuir valores a uma varivel chama-se atribuigao, o que resulta no arma- zenamento dos valores na posigo de meméria correspondente a variével. 2.2.1 Escalares A atribuigdo de valores a variéveis escalares é similar a outras linguagens de progra- magao. Digite pasa © observe que, apés 0 comando de atribuigdo, o nome e 0 valor da varidvel so im- pressos na tela para confirmar o que foi feito: eur 4 Essa é uma caracteristica do MATLAB, que pode ser suprimida finalizando a linha de comando com um ponto e virgula (;), Digite >> A= 6 E possivel digitar varios comandos na mesma linha separando-os com virgulas ou pontos e virgulas. Os comandos terminados por virgulas sero exibidos, enquan- to aqueles terminados por ponto e virgula nio serfo exibidos. Por exemplo, >> as 4,A = 6x a 4 O MATLAB ¢ sensivel a maidsculas e mimisculas (case sensitive) — isto é, a varidvel a nao é 0 mesmo que A. Para ilustrar isso, digite >a ¢, em seguida, digite >A ‘Veja como os valores sao distintos, Essas variaveis, portanto, tém nomes diferentes. E possivel atribuir valores complexos as variaveis, uma vez que 0 MATLAB efetua manipulagdes aritméticas complexas de forma automética. Por exemplo, ni- mero imaginério unitério y= é pré-atribuido a varidvel 1; como consequéncia, um. valor complexo pode ser atribuido como em >> x = 2hina 2.0000 + 4.00008 Capitulo 2 Principios basicos do MATLAB 27 Observe que o MATLAB permite que o simbolo 3 seja utilizado para represen- tar o niimero unitério de entrada, ainda que ele sempre use um i para exibir 0 nime- ro, Por exemplo, >> x = 24544 Ze 2.0000 + 4.00003 Existem diversas variéveis predefinidas, por exemplo, p: >> pi ans = 3.1416 Observe que o MATLAB exibe apenas quatro casas decimais. Caso deseje ser mais preciso, digite o seguinte comando: >> format long Agora, quando pi é digitado, 0 resultado é exibido com 15 algarismos signifi- cativos: >> pi ans = 3.14159265358979 Para retornar ao formato com quatro casas decimais, digite >> format short A tabela a seguir apresenta um resumo dos comandos de formato de exibigdio (de mimeros) rotineiramente empregados em célculos cientificos e de engenharia. Todos eles tém a sintaxe format. tipo. Tipo Resultado Exemplo ‘Short Formato de ponto fro com 5 digtos 3.iai6 ong Fetato de ponte fo com 15 dgitos para precisao dupa sire eR 7 digtos pore precsdo simples short © Formato de ponto fivanie com 5 digitos 3.14160+000 long ¢ Fotmato de pont Muar com 15 gies pore pracisto dupla®© 5 s 4s ss9¢s3sga7saex000 7 dcitos para preciso simples SROEt g_ Melhor enve os formatos de panto fh © ponte fivanie com 5 diglos 3.1416 Melhor entre os formatos de ponta fio © ponto flutvante com on 4159265358979 20PS S15 dios pora precsGo duplae 7 digitos pora preciso simples 2°? short Formato de engenhaio com pelo menos 5 dios «ume potin- ayy 114160+000 eng cia que &um miliplo de 3 coe ong Formato de engerharia com exctomente 16 digs soniiothoe 5. +4: gapgnageoraey eng —_e uma poténcia que é um mutiplo de 3 paige ood bank 2 digtos decimais 3.14 2.2.2 Arranjos, vetores e matrizes Um arranjo é uma colego de valores representados por um tinico nome de variaivel Podem ser de dois tipos: arranjos unidimensionais so chamados vetores e arranjos 28 Parte 1 Modelagem, computadores e andlise de erros bidimensionais so chamados matrizes. Em uma abordagem mais geral, os escalares usados na Seco 2.2.1 sio, na realidade, matrizes com uma linha e uma coluna. Para inserir arranjos no prompt de comando, usam-se colchetes. Por exemplo, um vetor linha pode ser atribuido como a seguir: p> aa (12345) eee Observe que essa atribuigao substitui a atribuigao anterior de a Quando falamos de vetores, normalmente estamos nos referindo a vetores co- luna, mais usados na resolugo de problemas matemAticos que os vetores linha. Po- de-se inserir um vetor de varias maneiras, Experimente-as. >> b = (2747678710) ou >> b= [2 10} ou, transpondo um vetor linha com o operador' >> b = (2 4 6 8 10)" O resultado em todos os trés casos sera Uma matriz de ntimeros pode ser atribuida como a seguir: >> A= (123; 45 6; 78 9) no stage) 45 6 Ter eS ‘Também é possivel utilizar a tecla Enter para separar as linhas. Por exemplo, no caso a seguir, a tecla Enter seria pressionada depois do 3, do 6 e do ] para atribuir a matriz: >> A= [12 3 8.6 78 9) Finalmente, a mesma matriz poderia ser construida concatenando (isto ¢, jun- tando) os vetores que representam cada coluna: >> A= [[1 4 7]' [25 8) 13 6 91) — rr rts—=> who Your variables are: A a ans ob x ou, para mais detalhes, insira o comando whee: >> whos Name Size Bytes Class. A 3x3 72 double array a 1x5 40 double array ans 1 8 double array b 5x1 40 double array x 1x1 16 double array (complex) Grand total is 21 elements using 176 bytes Perceba que @ notagao de subscrito pode ser usada para acessar um elemento individual de um arranjo. Por exemplo, o quarto elemento do vetor coluna b pode ser exibido como >> b(4) ans = 8 Para um arranjo, A(m,n) selecione o elemento na m-ésima linha e na n-ésima coluna. Por exemplo, >> A(2,3) ans 6 Diversas fungées nativas do MATLAB podem ser usadas para criar matrizes, como as fungdes ones e zeros, que criam vetores ou matrizes preenchidas I’s ¢ 0's, respectivamente, Ambas tém dois argumentos: o primeiro para o nimero de linhas € 0 segundo para o nimero de colunas. Por exemplo, para criar uma matriz 2 X 3 de O's: > Ee zeros(2,3) ie Ome tol Sehy Oma <0 0 De forma similar, a funciio ones pode ser usada para criar um vetor linha de I’s: >> a = ones(1,3) 2.2.3 © operador dois-pontos © operador dois-pontos (:) ¢ uma ferramenta poderosa para criag&o e manipulagio de arranjos. Se dois-pontos so usados para separar dois nimeros, o MATLAB gera um conjunto de niimeros entre eles utilizando um incremento unitério: 30 Parte 1 Modelagem, computadores e andlise de erros 1 2 3 4 5 Se 0 operador dois-pontos for usado para separar trés nimeros, o MATLAB gerard um conjunto de niimeros entre o primeiro e o terceito mimeros utilizando um incremento igual ao segundo nimero: >> t = 1:0.5:3 te 1.0000 1.5000 2.0000 2.5000 3.0000 Observe que incrementos negativos (as vezes chamados decrementos) também podem ser usados >> t= 10:-1:5 Além de criar uma série de mimeros, 0 operador dois-pontos também pode ser usado como um “curinga” para selecionar linhas e colunas individuais de uma ma- triz. Quando um operador dois-pontos ¢ usado em lugar de um subscrito especifico, © dois-pontos representa a linha ou coluna inteira. A segunda linha da matriz A a seguir, por exemplo, pode ser selecionada como em >> A(2,1) ans = 4 5 6 ‘Também possivel usar a notago de dois-pontos para extrair seletivamente uma série de elementos de dentro de um arranjo. Por exemplo, com base na definigaio anterior do vetor t: >> t(24) ans 9 8 2 Assim, o segundo até 0 quarto elementos siio retornados. 2.2.4 As fungées linspace e logspace As fungdes Linspace e logspace fornecem outras ferramentas titeis para gerar Yetores de pontos espagados. A fungo 1inspace gera um vetor linha de pontos igualmente —e linearmente ~ espagados. Ele tem a forma linspace(x1, x2, 1) que gera n pontos entre x1 e x2. Por exemplo >> Linspace(0,1,6) ans = 0 0.2000 0.4000 0.6000 0.8000 1.0000 Se n for omitido, a fung&o gerard automaticamente 100 pontos. Capitulo 2 Principios bésicos do MATLAB. 32 A fungdo logspace gera um vetor linha de pontos logaritmicamente espagados. Ela tema forma logspace(x1, x2, que gera 2 pontos logaritmicamente espagados entre as décadas 10" e 10°, Por exemplo, >> logspace(-1,2,4) ans = 0.1000 1.0000 10.0000 109.0000 Se n é omitido, a funcdo gera automaticamente 50 pontos, 2.2.5 Sequéncia de caracteres (strings) Além dos nimeros, informagdes alfanuméricas ou sequéncias de caracteres ou strings podem ser representadas colocando-se a sequéncia de caracteres dentro de aspas simples. Por exemplo, ‘Miles >> s = ‘Davis’; Cada caractere em uma string é um elemento em um arranjo; assim, podemos concatenar ("colar") strings como em >> x= [fs] ee Miles Davis Observe que linhas muito longas podem ser continuadas colocando-se reticén- cias no fim da linha, Poderiamos, por exemplo, inserir um vetor linha da seguinte forma pas (12345 67 8] Ae Lacntisl?eith y Gab + Gtk oh os2tee os Saaticac 408 Nao é permitido, no entanto, utilizar retieéneias para continuar uma string, Para entrar com uma string que se estende além de uma inica linha, junte strings mais curtas, como em >> citacao = [‘Qualquer idiota pode fazer uma regra,’... “e qualquer idiota a seguira'] citacao = Qualquer idiota pode fazer uma regra, e qualquer idiota a seguira 2.3 OPERACOES MATEMATICAS Operagdes com quantidades escalares sao tratadas de modo similar a outras lingua- gens de computador. Os operadores comuns, em ordem de prioridade, stio 32 Parte 1 Modelagem, computadores e andlise de erros Exponenciagao = Negacao Multipticagéio e divisée Divisdo & esquerda® Adigéc @ subtragéo Esscs operadores funcionam como em uma caleuladora. Digite >> 2*pi ans = 6.2832 Variaveis escalares reais também podem ser incluidas: > y = pi/d; >> y92.45 ans 0.5533, Os resultados dos céleulos podem ser atribuidos a uma variével ou simplesmen- te exibidos na tela, Assim como em outros célculos de computador, a ordem de prioridade das operagdes pode ser modificada com parénteses; dessa forma, como a exponenciag&o tem maior prioridade que a negaedo, por exemplo, o seguinte resultado seria obtido: > y = 42 —_ -16 Assim, 4 € primeiro elevado ao quadrado e depois negado. Os parénteses tam- bém podem ser usados para alterar as prioridades, como em >> y = (4992 ne 16 Os eéleulos também podem envolver quantidades complexas, como os exemplos 4 seguir, que utilizam os valores de x (2 + 4i) e y (16) definidos anteriormente: >> 3x ans = 6.0000 + 12.0000 D> 1l/ x 0.1000 - 0.20004 Saou] ans = -12 >> xty ans = 18.0000 + 4.00003 0000 + 16,0000% * A divisio a esquerda se aplica & élgebra matricial, que serd discutida em detalhes mais adiante neste livro. Capitulo 2 Principios bésicos do MATLAB 33 Um dos poderes do MATLAB é sua capacidade de executar célculos com veto- Tes € matrizes. Embora tais cdlculos sejam descritos em detalhes no Capitulo 8, consideramos importante mostrar alguns exemplos aqui produto interno de dois yetores (produto escalat) pode ser calculado com 0 operador *. Considerando, por exemplo, o vetor linha a = [1 2 3 4 5] eo vetor colunab = [2 4 6 8]', tem-se: >> ath ans = 110 e, do mesmo modo, 0 produto externo >> bta ans = 2 4 6 8 10 4 coer Ic ee0 oadgul Zee, 1emays, 2442 30. Sp oe aye 32) 20) Jo” ae20he sean € atd0sorino Para melhor ilustrar a multiplicagao de vetores e matrizes, primeiro redefina ae bt >a s ee a 30 36 42 ou > A* bd ans = 32 11 122 As matrizes nao podem ser multiplicadas se as dimensGes internas forem dife- rentes, 0 que pode ser ilustrado pelo exemplo a seguir. Teste >A*a O MATLAB exibe automaticamente a mensagem de erro: 22? Error using mtimes Inner matrix dimensions must agree. A multiplicagao de matrizes ¢ efetuada da mesma forma D> AA ans = 30-36 42 66 al 96 102, 126 150 ss 34 Parte 1 Modelagem, computadores e anilise de erros Operagdes mistas com escalares também sao possiveis: >> Alpi ans 0.3183 0.6366 0.9549 1.2732 1.5915 1.9099 is 2.2282 2.5465 2.8648 Lembre sempre que, se possivel, o MATLAB aplicaré os operadores aritméti- cos simples no modo padrao de operagdes com vetores e matrizes.” As vezes, pode Ser necessirio executar célculos item por item em uma matriz ou vetor; felizmente, © MATLAB também fornece recursos para isso. Por exemplo, >> ANZ 3036 42 66 a1 96 102126150 resulta na multiplicagao matricial de a por ela mesma, E se quisermos o quadrado de cada elemento de A? O resultado pode ser obtido com 0 comando D> LAD ans = 1 4 9 1625 36 99 64 81 ©. que precede 0 operador * significa que a operagdo deve ser executada elemen- to por elemento. O manual do MATLAB chama tais operagdes de operacdes de arvan- os, também denominadas operacdes elemento por elemento. O MATLAB possui um atalho util para realizagdo de célculos jé efetuados: as teclas de navegagao (1) e ( J.) podem ser acionadas para recuperar comandos di- gitados anteriormente. Por exemplo, pressionando a tecla 7 (seta para cima), recu- pera-se a tiltima linha digitada. >> ALM2 Pressionando Enter, o céleulo é efetuado novamente, porém, também é possivel editar a linha, Como um teste, altere-a para a linha a seguir e pressione Enter. >> ALA3 ans = 1 8 27 64 125 216 343512 729 Utilizando a tecla 7, é possivel retornar a qualquer comando ja digitado. Pres- sione essa tecla até retornar a linha >> ba " N.de‘T: Por modo paciro, entenda-se o modo como as operagées so definidas do ponto de vista formal da matematica, Capitulo 2 Principios bésicos do MATLAB 35 Também é possivel recuperar o comando ao digitarb e pressionar a tecla T uma vez; ento, o iiltimo comando iniciado pela letra b ser automaticamente exibido. A tecla T possibilita uma maneira répida de corrigir erros sem ser necessério redigitar toda a linha de comando. 2.4 UTILIZAGAO DE FUNCOES NATIVAS O MATLAB e seus Toolboxes tém uma vasta colegdo de fungdes nativas, que po- dem ser exploradas com o comando Help (Ajuda) do programa, Por exemplo, se qui- sermos aprender sobre a funco Log, digita-se >> help log LOG Natural logarithm LoG(x) is the natural logarithm of the elements of xX. Complex results are produced not positive. See also LOG2, LOG10, EXP, LOGM. Para uma lista de todas as fungdes elementares, digite >> help elfun Uma das propriedades importantes das fungdes nativas do MATLAB é que elas operam diretamente em quantidades vetoriais e matriciais, Por exemplo, digite >> log(A) ani 0 0.6931 1.0986 1.3863, 1.6094 1.7918 1.9459 2.0794 2.1972 € perceba que a fungao logaritmo natural ¢ aplicada em estilo arranjo, elemento por elemento, para a matriz A — vale dizer que a maioria das fungdes, tais como sqrt, abs, sin, acos, tanh ¢ exp, opera em estilo arranjo, Certas fungdes, tais como a exponencial e a raiz quadrada, também possuem definigSes matriciais, que podem ser calculadas quando a letra m é acrescentada ao nome da fungdo. Por exemplo, >> sqrtm(A) ans 0.4498 + 0.76231 0.5526 + 0.20681 0.6555 - 0.34874 1.0185 + 0.08424 1.2515 + 0.02281 1.4844 - 0.03853 1.5873 - 0.59404 1.9503 - 0.1611i 2.3134 + 0.27174 Hi diversas fung6es para arredondamento. Considere, por exemplo, que entre- ‘mos com um vetor: >> Ex [-1.6 -1.5 -1.4 1.4 1.5 1.61; A fungiio round arredonda os elementos de E para os inteiros mais préximos: >> round(E) ans = 2 “1 1 2 2 A fungi cei arredonda para os inteiros mais proximos em dirego ao infini- to positivo: 36 Parte 1 Modelagem, computadores e andlise de erros >> ceil(E) ans = “1 atic at ult 2henioes2n eras A fungdo £100r arredonda para baixo, para os inteiros mais préximos em di- regio ao infinito negativo: >> floor(E) ans 2 2 1 1 1 Existem também fungdes que realizam operages especiais com os elementos de matrizes arranjos. A fungdo sum, por exemplo, retorna a soma dos elementos: >> F= (354611; >> sum(F) ans = 19 De modo similar, deve ser dbvio 0 que acontece com os comandos a seguir: >> min(F),max(F),mean(F),prod(F), sort(F) ans = 1 ans = 6 ans = 3.8000 ans = 360 ans 1 3 4 5 6 ‘As fungSes sfio muito usadas na avaliago de formulas para uma série de argu- mentos. Lembre-se que a velocidade de um saltador de bungee jumping em queda livre pode ser calculada com [Equagai (1.9)]: o sao 2) Veg Wm onde v & a velocidade (m/s), g & a aceleragio devida a gravidade (9,81 mis’), méa massa (kg), c, é 0 coeficiente de arraste (kg/m) e # € 0 tempo (8) Crie um vetor coluna t que contenha valores de 0 a 20 em passos de 2: >> t = [0:2:20]' — 0 2 4 6 8 10 12 Capitulo 2 Principios bésicos do MATLAB___37 16 1s 20 ‘Verifique o némero de elementos no arranjo t com a fungi lenght: >> length(t) ans = Fy Atribua valores aos parametros: > g = 9.81; 68.1; cd = 0.25; O MATLAB permite avaliar uma formula tal como » = /(0, onde a formula é calculada para cada valor do arranjo f, ¢ o resultado é atribuido para uma posigao correspondente no arranjo v. Para o caso analisado, >> v = sqrt (g*m/cd)*tanh (sqrt (g*ed/m)*t) ve 0 18.7292 33.1118 42.0762 46.9575, 49.4214 50.6175, 51.1871 51.4560, 51,5823 51.6416 2.5 GRAFICOS Com 0 MATLAB, ¢ possivel criar gréficos de forma rapida e conveniente, Para criar uum gréfico dos arranjos t ¢ v a partir dos dados anteriores, digite >> plot(t, v) 60 50 40 30 20 10 38 Parte 1 Modelagem, computadores e andlise de erros E possivel personalizar um pouco o grafico com os comandos a seguir: >> title('Gréfico de v versus t') >> xlabel(‘Valores de t') >> ylabel('Valores de v') >> grid Grafica de v versus ¢ 60 Volores de o ] | A | L 46 10 12 14 16 18 20 Valores det O comando pict exibe, por padrio (default), uma fina linha sélida de cor azul. Caso 0 usuério decida plotar cada ponto com um simbolo (mareador), pode-se in- cluir um especificador delimitado por aspas simples no comando plot. A Tabela 2.2 mostra os especificadores disponiveis. Para um marcador do tipo circulos abertos, por exemplo, digite >> plot(t, v, ‘o') E possivel combinar diversos especificadores: caso se queira utilizar marcado- res quadrados verdes, conectados por linhas tracejadas verdes, pode-se inserir 0 comando >> plot(t, v, ‘s--g') Também € possivel controlar a largura da linha, assim como 0 tamanho do marcador e as cores das bordas e do preenchimento. O comando a seguir, por exem- plo, utiliza uma linha mais larga (largura 2 pontos), tracejada e cor ciano, para co- nectar marcadores maiores (10 pontos), com forma de diamante, bordas pretas e preenchimento de cor magenta: >> plot (x, y, ‘--de!, ‘LineWidth', ‘MarkerSize’, 10, ‘MarkerEdgeColor’, ‘k's... ‘MarkerFaceColor’, Capitulo 2 Principios bésicosdo MATLAB 39) TABELA 2.2. Especificadores de cores, simbolos (ou marcadores) e tipos de linha. Cores ‘Simbolos Tipos de linha Aaul Ponto + Sélide = Verde a Cirevlo © Pontithade Vermelho E Simbolo X % Trogo-ponto = iano © Mais + Tracejade -- Magenta mn Estrela 7 Amarelo Quodrade ° Preto Diamante 4 Branco Ww Tréngulo (pora beixo) . Triéngule (pora cima) - Tréngulo (para esquerdo} < Trigngulo (pora direito) > Pentagrama (estrel de cinco pontas) Pp Hexograma (estrela de seis pontas)___h Observe que a largura de linha padrdo é um ponto; para os marcadores, 0 pa- dro so seis pontos com borda azul e sem preenchimento (cor branca). O MATLAB permite exibir mais de um conjunto de dados no mesmo grafico. Por exemplo, uma maneira alternativa de conectar cada marcador de ponto com uma linha reta seria digitar >> plot(t, v, t, v, ‘o') Deve-se mencionar que, inevitavelmente, os gréficos anteriores sdio apagados toda vez que o comando piot é executado. O comando hold on mantém o grafico corrente todas as propriedades dos eixos, de modo que comandos graficos adicio- nais possam ser acrescentados ao grifico existente; jé 0 comando hold off retorna a9 modo padrao. Por exemplo, se tivéssemos digitado os comandos a seguir, o gra- fico final exibiria apenas marcadores: >> plot(t, v) >> plot(t, v, 'o') Os comandos a seguir, por sua vez, resultariam em um gréfico que exibiria tanto as linhas quanto os marcadores: >> plot(t, v) >> hold on >> plot(t, v; >> hold off Além do hold, outro comando tit € o subplot, que permite dividir a janela do grafico em subjanelas ou painéis, e tem a sintaxe subplot(m, n, p) Esse comando divide a janela do grifico em uma matriz m por n, com gréficos menores em cada célula da “matriz”, e seleciona o p-ésimo griifico como o corrente. 40 Parte 1 Modelagem, computadores e anélise de erros w @ 1 40 05 | 30 ° 20 05 Ai 10 0 = FIGURA 2.1, Grdfico de dois painéis de (a) um circulo bidimensional e (b) uma hélice tridimensional, Podemos demonstrar 0 comando suipp1ot por meio de um comando simples para gerar graficos tridimensionais, o plot3, que tem a sintaxe: plot3(x, yr 2) onde x, ye z sto trés vetores de mesmo comprimento. O resultado é uma linha no espa- ¢0 tridimensional através dos pontos cujas coordenadas so os elementos de x, ye 2. O grafico de uma hélice fornece um bom exemplo para ilustrar essa teoria. Primeiro, vamos tragar um circulo com a fungdo bidimensional plot utilizando a Tepresentagdo paramétrica x = sen(f) e y = cos(). Empregaremos 0 comando sub- plot para, em seguida, acrescentar o grafico tridimensional >t pi/S0:10*pi; >> subplot(1, 2, 1);plot(sin(t),cos(t)) >> axis square >> title('(a)') Como mostra a Figura 2.14, o resultado ¢ um circulo, que poderia ter sido dis- torcido se nfo tivéssemos usado 0 comando axis square. Agora, vamos acrescentar a hélice ao painel da direita na janela do grafico: para isso, empregaremos novamente uma representago paramétrica: x = sen(?) ey cos(ez=t. >> subplot(1, 2, 2);plot3(sin(t},cos(t),t); >> title("(b)") Capitulo 2 Principios bésicos do MATLAB O resultado esta ilustrado na Figura 2.16. Vocé & capaz de dizer 0 que esté acontecendo? A medida que o tempo evolui, as coordenadas x ey tragam a circunfe- réncia do cireulo no plano x-y da mesma forma como o grafico bidimensional; no entanto, a curva sobe @ medida que a coordenada z aumenta linearmente com o tempo. O resultado liquido é uma mola caracteristica ou uma escadaria em espiral na forma de heélice. Existem outras caracteristicas gréficas titeis do MATLAB ~ por exemplo, tra- ¢ar objetos em vez de linhas, familias de curvas, tragar grdficos no plano complexo, grificos log-log e/ou semilog, graficos de malhas tridimensionais e gréficos de cur- vas de nivel. Alguns desses recursos serdio descritos a seguir. 2.6 OUTROS RECURSOS Do que foi visto até agora, focamos nos recursos do MATLAB que serio mais utili- zados no restante deste livro. O leitor interessado em aprender mais sobre outras capacidades do software pode consultar alguns excelentes livros dedicados ao MATLAB (por exemplo, Attaway, 2009; Palm, 2007; Hanselman e Littlefield, 2005; € Moore, 2008). O proprio MATLAB possui um extenso recurso de Help (Ajuda) que pode ser acessado no menu Help da command window e que oferece acesso a uma série de demonstragdes bastante didaticas, Como descrito neste capitulo, também ha ajuda disponivel em um modo intera- tivo: basta digitar 0 comando help, seguido pelo nome da fun¢&o ou do comando. Se o nome da fungtio for desconhecido, pode-se utilizar 0 comando look for para procurar nos arquivos de Ajuda do MATLAB por ocorréncias de texto (n0 caso, 0 texto deve ser digitado em inglés). Por exemplo, considere que se queira procurar todos os comandos e fungdes relacionados a logaritmos. Ao inserir 0 comando >> lookfor logarithm © MATLAB exibe todas as referéncias que incluem a palavra Logarithm Por fim, pode-se obter ajuda no site da Math Works Inc., www.mathworks.com, onde ha informagdes de produtos, grupos de discussio, livros, suporte téenico, além de muitos outros recursos titeis. > 2.7 ESTUDO DE CASO ANALISE EXPLORATORIA DE DADOS Contextualizagéo. Os livros didaticos sao repletos de formulas desenvolyidas no pas- sado por cientistas e engenheiros renomados. Embora clas sejam de grande utilidade, en- genheiros ¢ cientistas muitas vezes devem completar essas relagdes coletando e analisando seus proprios dados, o que pode levar a uma nova formula. Porém, antes de se chegar a uma equagio final, geralmente “brincamos” com os dados efetuando célculos e tracando grdficos, a fim de obter uma visto dos padres e mecanismos escondidos nos dados. Neste estudo de caso, ilustraremos como o MATLAB facilita essa andlise exploraté- tia de dados ao estimar 0 coeficiente de arraste de um individuo em queda livre com base na Equagao (2.1) e nos dados da Tabela 2.1. Além de simplesmente calcular 0 coeficiente wo Ee 42 Parte 1 Modelagem, computadores ¢ andlise de erros Capitulo 2 Principios bésicos do MATLAB. 43. Gréfico des volocidades provistas versus medidas $0 T T T T T T tt 55. 2 : 0 = sol D = a Te ee 7 ae mg th a] as se BS Mecico ico do coofcione de arene versus mossa 2 0.35 T T T T be 3 5 b oO 4 32 8 5 O 3 23 u BE ozs 3 3a eee L L L L L L “60 65 70 75 80 85 90, 9S ‘Mossa (ka) FIGURA 2.2 Dois gréficos criados com 0 MATLAB. De acordo com o primeiro grafico da Figura 2.2, como as predigdes geralmente se- guem a reta 1:1, vocé poderia inicialmente concluir que o coeficiente de arraste médio produz bons resultados. Observe, contudo, como o modelo tende a prever valores menores que 0s reais na faixa de baixas velocidades ¢ prever valores maiores na faixa de altas velo~ cidades. Isso sugere que, em vez-de serem constantes, pode existir uma tendéncia nos coe- ficientes de arraste, o que pode ser verificado com um grafico dos coeficientes de arraste versus a massa: >> subplot(2,1,2);plot(m, cd,'o') >> xlabel('Massa (kg}') >> ylabel('Coeficiente de arraste estimado (kg/m)') >> title('Grafico de coeficiente de arraste versus massa‘) O segundo gréfico da Figura 2.2 sugere que, em vez de ser constante, 0 coeficiente de arraste parece crescer a medida que a massa do saltador aumenta. Com base nesse resulta- do, voeé poderia concluir que seu modelo precisa ser melhorado; no minimo, ele poderia motivé-lo a realizar experimentos adicionais com um maior ntimero de saltadores para confirmar sua conclusdo preliminar. Além disso, 0 resultado poderia estimulé-to a procurar a literatura de mecénica de fluidos e aprender mais sobre o coeficiente de arraste. Como descrito na Segio 1.4, voc’ descobriria que 0 parémetro c, ¢, na realidade, um coeficiente de arraste concentrado que, com o arraste verdadeiro, inelui outros fatores tais como a Area frontal do saltador e a den- sidade do ar, CopA 2 64 (2.2) ms 44 Parte 1 Modelagem, computadores e andlise de erros onde C, € um coeficiente de arraste adimensional, p é a densidade do ar (kg/m’) e A a 4rea frontal (m2), projetada sobre um plano normal a direcdo da velocidade. Assumindo que as densidades fossem relativamente constantes durante a coleta dos dados (uma boa suposigio se todos os saltadores tivessem pulado da mesma altura e no mesmo dia), a Equacao (2.2) sugere que saltadores mais pesados devem ter reas maiores ~ tal hipétese poderia ser comprovada por meio da medigdio das areas frontais de individuos de diferentes massas. >> PROBLEMAS 2.1 Use a fungio Linspace para criar vetores idémticos aos abaixo criados com a notagao dois- -pontos: @ t = 4:6:35 @ x ~ a2 2.2 Use a notagtio dois-pontos para criar vetores idénticos aos abaixo criados com a fungdo Linspace: @ vy = Linspace(-2,1.5,8) (© = Linspace(s, 4.5,8) 2.3 O comando 1inspace(a,b,n) gera um ve~ tor linha de n pontos igualmente espagados entre a €b, Use a notado dois-pontos para escrever uma linha de comando alternativa a fim de gerar ‘© mesmo vetor. Teste sua formulagao para a= b=5,n=6, 2.4 Considere que se entre com a matriz a seguir no MATLAB: >> Am[3 2 1/0:0.5:1;linspace(é, 8, 3)] (@ _Escreva a matriz resultante. (®) Use a notacao dois-pontos para escrever uma ‘iniea linha de comando do MATLAB a fim de multiplicar a segunda linha pela terceita coluna e atribuir o resultado a varidve c. 2.5 A equagto a seguir pode ser usada para cal- cular valores de y como uma fungao de x, 2 = be sen(b(0,012x4 — 0,15x3 + 0,075x? + 2,5x) onde a © b sto pardimetros. Escreva a equacio para ser calculada no MATLAB, onde a=2, b= 5 x € um vetor com valores de 0 a 2/2 com incre- Mentos de Ax = 2/40. Empregue pontos seguidos dos operadores em sua formulagao, de modo que cla produza um vetor para y. Calcule também 0 vetor z = y*, onde cada elemento corresponda ao quadrado de cada elemento de y. Combine x,y ez em uma matriz.w, em que cada coluna correspon da a uma varidvel, e exiba w utilizando 0 formato short g. Além disso, gere um grafico de yez ver- ‘us x com 0s cixos identificados e inclua uma legend no grafico (use a Ajuda do MATLAB para aprender ‘como fazer isso). Para y, use uma linha trago-ponto vermelha com largura de 1,5 ponto com marcadores na forma de pentagramas de tamanho 14 pontos, sem preenchimento e bordas vermelhas. Para z, use uma linha sélida azul de largura-padrdo com marca- dores quadrados de tamanho-padrao, com preenchi- ‘mento verde e bordas azuis, 2.6 Um circuito clétrico simples consistindo de um resistor, um capacitor e um indutor esté ilustra- do na Figura P2.6. A carga no capacitor 4(f) como ‘uma Fungo do tempo pode ser calculada como fe (ZY vie” (ar ‘| onde f é 0 tempo, q, & a carga inicial, R é a resis- téncia, L éa indutancia e C é a capacitancia. Use © MATLAB para gerar um grifico dessa fungao de 1= 0a 0,8, dado que g, = 10, R= 60,1 =9e C= 0,00005. al) = oe PD cos FIGURA P2.6 2.7 A funcio de densidade de probabilidade nor- ‘mal € uma curva em forma de sino que pode ser representada como ee ee er eS ae Use o MATLAB para gerar um grafico dessa fun- do dez =-5 até 5, Identifique as ordenadas como frequéncia e as abscissas como z 2.8 Se uma forga F (N) for aplicada para compri- mir uma mola, seu deslocamento x (m) poderd ser modelado pela lei de Hooke, Fak ‘onde k é 2 constante da mola (Nim). A energia po- tencial armazenada na mola U (J) pode ser caleu- Jada como 1 = 5k? 2 Cinco molas foram testadas ¢ os seguintes dados obtidos: PIN y4e ed aeenS, oes zim 0.013 0,020 0,009 0,010 _ 0.012 Use o MATLAB para armazenar F ex como veto- Tes e, entiio, calcule vetores das constantes das ‘molase das energias potenciais, Use a functo max para determinar a energia potencial méxima. 2.9 A densidade da agua doce pode ser calculada como uma fungdo da temperatura com a seguinte equagiio etibica p= 5,5289 x 10°*73 — 8,5016 x 10-673 + 6,5622 x 10°*To + 0,99987 onde p €a densidade (g/cm?) e 7, € a temperatura (CC). Use o MATLAB para gerar um vetor de tem- peraturas variando de 32 °F a 93,2 °F, com inere- mentos de 3,6 °F, Converta esse vetor para graus Celsius @, entéo, calcule um vetor de densidades baseado na formula cibica. Crie um grafico de p versus T.. Lembre-se que T,, = 5/9(T,,~ 32). 2.10 A cquagdo de Manning pode ser usada para calcular a velocidade da égua em um canal aberto retangular, WS (_BH_\”? n \B+ 2H onde U é a velocidade (mm/s), 5 é a inclinagao do canal, 1 € 0 coeficiente de rugosidade, B é a largu- 1a (m) € H ¢ a profundidade (m). Os seguintes da- dos estdo disponiveis para cinco canais: Capitulo 2 Principios bésicos do MATLAB) 45, A Ss 8 H 0,035 0.0007 10 2 0,020 0,002 8 1 0,015 0,0010 20 15 0,030 0,0007 24 3 0,022 0,003 15 25 Armazene esses valores em uma matriz onde ‘cada linha represente um dos canais ¢ cada coluna represente um dos pardmetros. Escreva uma tinica linha de comando no MATLAB para calcular um vetor coluna que contenha as velocidades, com base nos valores na matriz de pardmetros. 2.11 E uma pritica geral na engenharia e ciéncia plotar equagDes utilizando linhas e dados diseretos com simbolos (marcadores). A tabela a seguir apre- senta alguns dados da concentragao (¢) versus tem- po (#) para a fotodegradacdo de bromo aquoso: ymin 10 20 30 40 50 60 eppm 34 26 16 13 10 05 Esses dados podem ser descritos pela seguinte funcdo: 4,B4e- 0034 Use o MATLAB pata criar um grafico que exiba tanto os dados (utilize mareadores com forma de diamante © preenchimento vermelho) quanto a fungao (utilize linha tracejada verde). Trace a fun- edo para t= 0a 70 min, 2.12 A funeo semi logy funciona de maneira idéntica a fungao plot, com a excepto de que ‘uma escala logaritmica (base 10) é usada para 0 eixo y. Use essa informagao para plotar os dados e fungio como descrito no Problema 2.11, Expli- que os resultados. 2.13 A tabela a seguir apresenta alguns dados de vum ttinel de vento para forga (F) versus velocida- de () wms 10 20 30 40 50 60 70 80 FN 25 70 380 550 610 1220 830 1450 Esses dados podem ser descritos pela seguinte fungdo: F = 0.274119? 46 Parte 1 Modelagem, computadores ¢ andlise de erros Use o MATLAB para criar um grafico que exiba tanto os dados (utilize marcadores circulares com preenchimento magenta) quanto a fungao (utilize linha trago-ponto preta). Trace a fungo para v= 0 a 100 m/s e identifique os eixos do grafico. 2.14 A fungio Logiog funciona de maneira idénti- cea fungfo plot, com a excegao de que escalas lo- aritmicas sto usadas para ambos 0s eixos x ey. Use essa fungo para plotar os dados e a funeao como descrito no Problema 2.13. Explique os resultados. 2.15 A expansio em série de Maclaurin para 0 cosseno é io xe Oey! ie ge a aan anima ote Use 0 MATLAB para criar um grafico do cosseno nha s6lida) com um grifico da expansiio em série inka tracejada preta) até o termo 3/81, Use a fun- 60 nativa factorial no célculo da expansao em série, e para as abscissas utilize o intervalo de x =0 até 3/2, 2.16 Vocé entrou em contato com os saltadores usados pata gerar os dados na Tabela 2.1 ¢ mediu suas dreas frontais. Os valores resultantes, que es- ‘io ordenados na mesma sequéncia que a dos va- lores correspondentes na Tabela 2.1, sa0 cosx = Am? 0455 0402 0452 0486 0591 0475 0487 @ _Seadensidade do ar for p= 1,223 kg/m?, use © MATLAB para calcular valores do coefi- ciente de arraste adimensional C, (Para os valores resultantes da tabela calcule ‘a média, o minimo e o maximo. © Utilizando 0 comando subeict, faga um gré- fico de d versus m (parte superior) eC, versus ‘m (parte inferior) Inclua identificagdes descri- tivas para os eixos e titulos para os graficos 2.17 As seguintes equagdes paramétricas geram uma heélice ednica: x= tos(61) y= 1sen6i) z= Caleule os valores de x, y ez para (= 0 2 6x com At= a/64, Use o comando subplot para gerar um grafico bidimensional (linha s6lida vermelha) de x, ») na parte superior e um gréfico tridimensio- nal (linha s6lida ciano) de (x, y, 2) na parte infe- rior, Identifique 0s eixos para ambos os graficos. 2.18 O que seré exibido apds digitar os seguintes comandos de MATLAB? @ Sine @ > a= 4:2:12; pra 17 8 4; 36-5); >> sum(q) * x(2, 3) 2.19 A trajetoria de um objeto pode ser modelada como peas 2ugeorA (tan &)x ~ yo onde y € a altura (m), 8, € 0 Angulo inicial (radia- nos),x €a distncia horizontal (m),g¢ a aceleragdo da gravidade (=9,81 m/s*), », € velocidade inicial (ns) ¢ y, & a altura inicial, Use o MATLAB para encontrar as trajetorias para y, = 0 ep, = 28 mis para &ngulos iniciais de 15 a 75° em incrementos de 15°, Empregue uma faixa de distncias horizon- tais de x = 0 a 80 m em inerementos de 5 m. Os resultados devem ser reunides em um arranjo onde 4 primeira dimensio (linhas) corresponda as dis- ‘€ncias ¢ a segunda dimensio (colunas) correspon- da aos diferentes angulos iniciais. Use essa matriz para gerar um tinico grafico das alturas versus as disténcias horizontais para cada um dos Angulos iniciais. Empregue uma legenda para distinguir os diferentes casos e dimensione a escala do grafico, utilizando 0 comando axis, de modo que a altura minima seja zero. 2.20 A dependéncia da temperatura de reacdes quimicas pode ser calculada com a equacao de Arrhenius, k= Aerie onde k é constante de velocidade (5"), 4 € 0 fator pré-exponencial (ou frequéncia), E é a energia de ativaco (Jmol), R & a constante dos gases [8,314 Wanol + K)] e 7, € a temperatura absoluta, Um composto tem £=1 x 10° Jimole A = 7 x 10°. Use © MATLAB para gerar valores da constante de velocidade para temperaturas variando de 253 a 325 K. Utilize 0 comando subplot para gerar dois grafieos lado a lado de (a) k versus T, (linha verde) ¢ (b) log, & (linha vermelha) versus /T,, Empregue a fungdo semi logy para criar (b) e in- clua identificagdes dos eixos e titulos para ambos 08 graficos. Interprete seus resultados. 2.21 A Figura P2.21a mostra uma viga uniforme sujeita a uma carga distribuida de forma linear- ‘mente crescente. Como descrito na Figura P2.21b, a deflexdo y (m) pode ser calculada com wo 120 onde £ é 0 médulo de elasticidade ¢ / ¢ 0 momento de inércia (m*). Empregue essa equagio € 0 célculo para gerar gréficos no MATLAB das seguintes quantidades versus a distincia ao longo da viga: y (x8 + 222x3 — 14x) (@ deslocamento (y), (B) inclinagao (4) = dyidx), (© momento [M(x) = Eldy/de'], @ © cisalhamento [M(a) = Eld'yide'], € ‘carregamento [2o(x) = —Eld*yidx'] “0 eh» @=0y=0) x } FIGURA P2.21 Capitulo 2 Principios bésicos do MATLAB 47 Use os seguintes pardmetros para seus célculos: L = 600 em, F = 50.000 kNiem’, / = 30.000 em’, w,=2,5 kNiem, Ax = 10 em. Empregue a fungo subplot para exibir todos os gréficos vertical- ‘mente na mesma janela na ordem (a) até (e). In~ clua identificagdes para os eixos e use unidades consistentes com 0 MKS quando estiver desen- volvendo os graficos 2.22 A equagdo da borboleta & dada pelas se- es equagdes paramétricas: = mato (ate se) L 12 Gere valores de xe y para valores de f de 0 a 100 com Ar= 1/16 e construa grificos de (a)x ey ver- sus t € (6) y versus x. Use 0 comando subplot para organizar esses graficos verticalmente e faga © grafico em (6) quadrado. Inclua titulos e identi- ficagdes dos eixos em ambos os gréficos ¢ uma legenda para (a), Para (2), empregue uma linha tracejada para y de modo a distingui-la de z, 2.23 A curva da borboleta do Problema 2.22 tam- bém pode ser representada em coordenadas pola- res como Gere valores de r para valores de @ de 0 a 8: com AO= 2/32, Use a funcdo do MATLAB pola: para gerar um gréfico polar da curva da borboleta com uma linha tracejada vermelha, Empregue o Help do MATLAB para entender como gerar 0 grifico, cos(t) (= ~ 2eos4t— sen? 20-x 4 2e0s(46)~ sen® (

You might also like