You are on page 1of 33
po Wagner André dos S. Concei¢do, Paulo Roberto Paraiso, Cid Marcos G. Andrade, Ménica Ronobo Coutinho e Luiz Mario de Matos Jorge INTRODUCAO AO MATLAB PARA ENGENHARIAS Colegio Fundamentum n. 50 Bl =e SOT Maringa 2009 Conteido Ferramentas Basicas do MATLAB... Caracteristicas Bésicas Operagao com Matrizes, Vetores e Conjuntos..... Arquivos m-file. Graficos... Graficos em 2D.. Grafico em 3D Animagéo Operadores Relacionais e Légicos... Estruturas de Controle de Programas... Anélise Numérica Determinagdo de Raizes de Polindmios Interpolagao. Solug6es de Equac6es Algébricas Lineares . Integracdo Numérica... Solugées de Equagbes Algébricas néo Lineares.. Regressées Polinomiais, Lineares Mltiplas e néo Lineares Solugdes de Equacées Diferencias Ordinérias . Entrada e Saida de Dados para o Excel... Interface com Usuério.. Exercicios. Referéncias . 10 4 15 16 . 18 . 20 2B . 24 26 32 36 37 Introdugao ao MATLAB para engenharias ‘Wagner André dos S. Conceigo, Paulo Roberto Paraiso, Cid Marcos G. Andrade, ‘Monica Ronobo Coutinho e Luiz Malo Matos Jorge Ferramentas Basicas do MATLAB No sentido exato, MATLAB (MATrix LABoratory) é uma linguagem de programagéo poderosa ccinterativa, que apresenta caracteristicas muito mais avancadas e faceis de serem usadas do que as >. Da mesma forma que sua calculadora, o MATLAB é capaz de executar célculos de matemética elementar. ATabela 1 apresenta as propriedades mateméticas basicas na linguagem do MATLAB. ‘Tabela 1 ~Propriedades Mateméticas Basicas Operacio ‘Simbolo ‘Adigso (a+b) + Subtragdo (2+) 5 ‘Multiplicagao (a *b) . Divisdo (a/b) ' Potenciacéo 5 Na forma interpretada, apés cada comando que termina, teclando-se ENTER, hi o surgimento do uma resposta, Exemplo: >> #3) *241 >>0=32-5-6/(3"2) c=3 >> da4'37241 d= 37 ‘Na forma programada, o dltimo caractere da linha de comando é um ponto e virgula () ¢ a Observe que, apés trés linhas terminadas com ponto e virgula, a quarta linha esté sem a ontuacéo, para visualizar a resposta. Para chamar comandos previamente utilizados, o MATLAB utiliza as teclas de cursor (<,1,->,1) do teclado. © comando who mostra as varidveis definidas, 0 comando cle limpa a area de trabalho e 0 ‘comando clear apaga as variaveis da meméria. Introdugio ao MATLAB para engenharias ‘A medida que se criam varidveis no MATLAB, ha situagGes em que talvez se queira redefinir ‘uma ou mais varidveis. Por exemplo: >>earros = 40; >>aminhoes = 60; >>barcos = 20; >>rota=carros+caminhoes +barcos ((teota = 120 \ p> bareas=40; >>trota frota 40 Observacdo importante: 0 MATLAB nfo aceita pontuagées nem acentos nas suas variéveis, ‘como se vé no exemplo acima. Como se pode observar, é possivel substituir os valores de varidveis declaradas, como ocorre no caso dos barcos. Substituindo 0 valor de 20 para 40 e digitando frota, obtém-se um novo valor para, esta varidvel. As varidveis do espaco de trabalho do MATLAB podem ser exclu{das incondicionalmente, usando-se o comando clear. Por exemplo: >>clear barcos exclui somente a varidvel barcos >>clear ‘exclui todas as variveis do espaco de trabalho. A Tabela 2 apresenta as possiveis formas de exibir 0 formato dos niimeros na Janela de Comandos. ‘Tabela 2 - Formatos de Visualizagao de Dados ‘Comando exemplo Tormat long QI format short © 2778¢+000 5 digitos mais expoente format long ¢ 2ITITTITTTITTITB6+000 16 digitos mais expoente format bank 278 2 digitos decimais format + + Positivo, negative ou zero format rat 2519 Aproximagéo racional format short 2778 Apresentagio padréo (© MATLAB tem diversas variaveis especiais como pode ser visto na Tabela 3. Tabelas 3 - Varidveis Numéricas Especiais Varifvel Talor ans ‘Nome de vardvel padrio usa para resultados i asi ink Taint, por exempio 17 Naw io nimero, 00 Tes injev=1 cS Colegao Fundamentum +n. 50 0 programa apresenta um grande niimero de fung6es mateméticas elementares, jé previamente definidas, como as da Tabela 4. Tabela 4 - FungGes Mateméticas Blementares Fungio Observagies abstx) ‘Valor absoluto ou médula de um nimero complexo costa) ‘Arco cosseno acosh(x) ‘Arco cosseno hiperblico angle) Angulo de um ndmero complexo asin) ‘Arco seno sinh) ‘Arco seno hiperbélico atan(a) ‘Arco tangente atanh(e) Arco tangente hiperbélico cconjtx) Conjugado complexo costs) Cosseno costs) Cosseno hiperbilico exp) Exponencial image) Parte imagingria de um nimero complexo Togs Logaritmo natural Togi0(%) Logaritmo na base 10 real(s) Parte real de um némero complexo remy) Resto da divisto de x por y sins) seno sinb(x) Seno hiperbélico sqrt) Ralz quadrada tance) ‘Tangente tanh(x) ‘Tangente hiperbélica Operagao com Matrizes, Vetores e Conjuntos 0 MATLAB foi criado para solucionar problemas de élgebra linear que esto presentes em diferentes t6picos dentro das engenharias. ‘Assim, a entrada de dados de uma matriz pode ser das seguintes formas: 10 -”TESSStest—tst—‘—S™S Introdugo a0 MATLAB para engenharlas ‘+ lista explicita de elementos; ‘+ gerar uma matriz, utilizando comandos e fungées; + criar arquivos tipo .m; + carregar dados de arquivos externos. ‘Uma observagio importante: nao hé comandas de dimensées, nem de tipos de dados. Na forma mais simples de introduzir uma matriz, via lista explicita de elementos, seguem-se as convene6es abaixo: + Separar os elementos da lista de elementos através de espacos ou virgulas. + Colocar os elementos entre colchetes, []. * Usar ponto-e-virgula para indicar 0 fim de uma linha, ; Exemplo: >>A=(123 456 789) © A=1l 23 456 789 ‘As seguintes operacdes sio possiveis: + Fadia + -subtragdo; ‘+ * multiplicagéo; + > potenciagéo; +" transposta conjugada; ‘| divisto a esquerda; +. [diviséo a direita Estas operacdes aplicam-se também naturalmente a escalares (matrizes 1x1). Se as dimensées das matrizes séo incompativeis para a operacdo matricial proposta, uma mensagem de erro serd gerada. Exemplo: >>A=[1 2345.67 89); >>B=A'; >>C=AtB c=2 6 10 6 10 14 10 14 18 >>De{ 11]; >>E=D*C E=18 30 42 2 Error using Inner matrix dimensions must agree. Quando se trata de conjuntos, as seguintes operacées so possiveis: + +adicao; " 12 Colegdo Fundamentum +n. 50 + -subtragao; + .#multiplicagao; + potenciagso; ° + transposta conjugada; + Adivisao a esquerda; + Jdiviséo a direita; Exemplo: >>a=[l 231; >>b=[456); >>caatb c=5 7 9 £=0.2500 0.4000 0.5000 Por meio de fungées ja existentes nos toolbox do MATLAB é possivel criar conjuntos. A forma mais simples de se criar uma matriz linha 6 declarar 0 valor inicial (0), 0 espagamento, entre pontos (0.1), € 0 valor final (1), todos separados por dois pontos (:), como é exposto no exemplo aseg >> xa0:0.:1 x= Columns 1 through 8 © 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 Columns 9 through 11 0.8000 0.9000 1.0000 © comando linspace cria uma matriz linha, na qual o primeiro némero dentro do paréntese representa o primeiro valor, 0 segundo mimeo o iiltimo valor e 0 terceiro nimero representa 0 niimero de valores que se deseja ter neste intervalo. Exemplo: x=linspace(0,1,11) x= Columns 1 through 8 © 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 Columns 9 through 11 0.8000 0.9000 1.0000 x=linspace(0,1,21) Columns 1 through 8 0 0.0500 0.1000 0.1500 0.2000 0.2500 0.3000 0.3500 Columns 9 through 16 0.4000 0.4500 0.5000 0.5500 0.6000 0.6500 0.7000 0.7500 Columns 17 through 21 0.8000 0.8500 0.9000 0.9500 1.0000 Introdugao a0 MATLAB para engenharias 0 comando logspace cria um vetor da mesma maneira que o linspace, mas neste caso os valores esto na base 10. Exemplo: >> x=logspace(0,2,11) a Columns 1 through & 1.0000 1.5849 2.5119 3.9811 6.3096 10.0000 15.8489 25.1189 Columns 9 through 11 39.8107 63.0957 100.0000 E possivel efetuar célculos dentro das matrizes, como se pode ver no exemplo a seguir: 1.3 sqrt(3) (1+243)*4/5) Dos >>x “1.3000 1.7321 4.8000 Elementos individuais de uma matriz podem ser determinados individualmente com indices dentro de parénteses, (n,m), no qual n representa a linha e m, a coluna, Exemplo: >> A=(1 2341, >> AQD ans >> AQ,2) ans = 4 Em diversas aplicagées, a dificuldade maior existente é a de resolver um conjunto de equagées lineares. Para demonstrar isso, considere o seguinte problema: 3x +2,=6 4x, $3,+6x,=10 Tart 1S = Sabendo que AxBoou [] -3' 21x] [6 4 1 6]/x,/=|10 7 4 ols] Las 13 Ocomando sprintf pode ser usado para identificar mais claramente quem é x, x, € x, >> sprintf(xl= f\n', x(1,1)),sprintf(x2= %f\n’x(2,1)),sprintf(x3= fin’, x(3,1)) ans xl= 2.757576 x2 -1.075758 x3= 0.007576 ATabela 5 apresenta algumas fungées relacionadas a matrizes. Tabela 5 - Comandos Especiais para Matrizes Comando Descrigdo x ‘Ba mates ransposta da mats A T.UI=10a) Caloula a fatoragho LU da matiz quadrada A (QRI-ar) Caleulaafatoragfo QR da mate A (USvi=svaca) Caleula a decomposigdo de valor singular da matriz A ranks) Retorna a ordem da matriz A fava) ‘Acha inverso da matrizquadreda A ews) Retorna odeterminante da matriz quadrada A serosa) Gera uma maria de zeros quadrada nxn nesta) Gera uma mati de um n porm rand) Gera uma matie alea6ria positive ou um Gnico valor positive randa(s) Gera uma matriz aleatria ou um Gnico valor eve) Gora ma matric identidade Arquivos m-file Na edigo de um programa com um nimero grande de comandos, tomna-se conveniente a criagio de arquivo M-fie, feito diretamente no editor Bloco de Notas do MATLAB, conforme Figura 2. i940 .m, ¢ sua execucdo seré por meio da digitagao do seu nome Este arquivo sera salvo com a termi diretamente no sinal de prompt: >> 14 Introdugio ao MATLAB para engenharias Figura 2— Editor do MATLAB Podemos construir um arquivo .m, como uma seqiéncia normal de linha de comando do MATLAB, ¢ que pode fazer a chamada de outros arquivos .m. Esses arquivos recebem o nome de script, ¢ so usados para diferenciar uns arquivos de outros .m, podendo ser gerados com caracteristicas particulares. Um arquivo .m fungéo deve ser editado no edit do MATLAB e salvo com 0 nome da funcéo gerada. Exemplo: % Esta funco soma function c=soma(a,b) c=ath; Deve-se salvar a fungéo com 0 nome soma.m e para executar, faz-se: >> c=soma(?2,3) Cada fungdo do MATLAB definida por um arquivo .m possui suas préprias varidveis locais, s quais nao tem relagdo com as de outras func6es e com as do espaco de trabalho. Entretanto, 6 ossivel declarar as variaveis como comuns as funcdes ¢ a 4rea de trabalho. Para tal, deve-se definir as variaveis que se desejam ser globais, através do comando global. Graficos sistema grafico do MATLAB tem incorporado uma variedade de técnicas sofisticadas para apresentagao e visualizagao de dados. Os graficos sao divididos em dois grupos, os quais: gréficos de vetores (gréficos bidimensionais) e gréficos de matrizes (graficos tridimensionais). 6 Colegio Fundamentum +n. 50 16 Graficos em 2D ‘A seguir, estio relacionadas as fung6es que produzem gréficos bidimensionais: + plot - cria um grafico de vetores ou de colunas de matrizes; + loglog - cria um gréfico utilizando escalas logaritmicas para ambos os eixos; + semilogx - cria um gréfico utilizando escala logaritmica no eixo x, e escala linear no eixo y; + semilogy - cria um gréfico utilizando escala logarftmica no eixo y, ¢ escala linear no eixo x; Para adicionar titulo, nome aos eixos, linhas de grade e textos em qualquer gréfico, utiliza-se: ‘+ title -adiciona um titulo ao grafico; ‘+ xlabel - define um nome para a varidvel do eixo x; ‘+ ylabel - define um nome para a varidvel do eixo yi + text -adiciona um texto em lugar especifico; + gtext - adiciona um texto ao grafico, utilizando o mouse; + grid - ativa as linhas de grade; + legend - adiciona um texto em caixa, conforme local pré-definido; ‘© subplot- gera varios eixos em uma mesma janela. Os exemplos a seguir foram feitos no editor do MATLAB: x= 2p y=cos(); plottx,y) title(‘grétfico de f(x) =cos(x)") xlabel(‘eixo x’) ylabel(‘eixo y’) legend(‘cos(x)’) A resposta gerada é a Figura 3. Figura 3 - Grafico de 2D Nos grdficos gerados, a possibilidade de diferenciar as linhas de resposta, conforme mostra a Tabela 6. Introdugéo ao MATLAB para engenharias Tabela 6 - Estilos de Linha, Marcadores ¢ Cor Simboto Cor Simboto Estilo de Linha y smarelo onto m magenta ° treulo : vvermetho + sinal positive ® verde . asteriseo » saul - sélida w branco pontithada k reto . tragoe ponte 5 tracejada ‘Como exemplo, temos: plot(X,¥,'b"), Fungo que gera um asterisco azul em cada ponto de dado. ‘Se nao for especificada uma cor, a fungao plot automaticamente utiliza as cores na ordem em que se apresentam na tabela acima. Desta forma, para uma linha somente, o gréfico é tracado em amarelo, Assim, temos: = 0:0.1:25, yl=2*x.*2; y2=2"x. 71.5; plot(x,y1,’b",x,y2,'m: xlabel(‘X’) ylabel(Y") legend¢‘v1",'¥2") A resposta gerada é a Figura 4. Figura 4 — Gréfico com duas Curvas Diferenciadas 7 Colegdo Fundamentum +n. 50 18 HE uma variedade de fung6es especiais para gréficos, e que so necessérias em muitas aplicagées. A lista a seguir descreve algumas delas: + bar-cria um grafico do tipo barra; © compass - cria um grafico de angulos ¢ médulos de mimeros complexes, em que a representacdo dos pontos é feita por setas, com inicio na origem; ‘+ errorbar - cria um grafico com barras de erro; ‘+ feather -cria um grafico de angulos emédulos de némeros complexos, no qual arepresentagao dos pontos ¢ feita por setas com comego em pontos igualmente espacados, a0 longo do eixo horizontal; ‘+ fplot - avalia uma fungao e faz o grafico dos resultados; ‘© hist -cria um histograma; ‘+ polar - cria um gréfico em coordenadas polares dos angulos em fungéo dos raios; ‘© quiver - cria um gréfico do gradiente ou de outro campo do vetor; ‘+ rose cria um histograma de angulo; ‘+ stairs - cria um gréfico similar a um gréfico de barra, mas sem as linhas internas; ‘+ fill - desenha um polfgono eo preenche com cores sélidas ou interpoladas. Gtafico em 3D A seguir estio relacionadas as fungées que produzem gréficos tridimensionais. 0 MATLAB possui uma variedade de funcdes para exibir dados em 3-D. A lista, a seguir, mostra essas funges: + plot3 - plota linhas e pontos em 3-D; ‘+ contour, contour3 - cria gréficos de contorno; + poolor - desenha uma matriz retangular de células cujas cores séo determinadas pelos elementos da matriz; image - mostra uma matriz como uma imagem através do mapeamento dos elementos da matriz pelo mapa de cores ativo; mesh, meshe, meshz - cria graficos 3-D em perspectiva dos elementos da matriz, mostrados como alturas acima de um plano delimitado; ‘© surf, surfc, surfl -cria gréficos 3-D em perspectiva dos elementos da matriz, mostrados como alturas acima de um plano delimitado. 0 gréfico é formado pela geragéo de uma superficie colorida, utilizando os pontos como vértices de um quadrilatero; ‘+ fill3 -cria um poligono 3-D a o preenche com cores s6lidas ou interpoladas. Utiliza-se o termo “superficie mesh” para indicar os gréficos criados por meio do comando mesh. Além das fungées de insercdo de comentarios e notas mostradas para os gréficos 2-D, MATLAB possui as seguintes funcdes para 0s gréficos 3-D: ‘© label - define um nome para a varidvel do eixo 2; + clabel - define identificagées para os contornos em graficos de contorno. © MATLAB permite a especificagéo do ponto de visualizacao do grafico. Em geral, as coordenadas so definidas por uma matriz de transformacdo 4 por 4, que o MATLAB utiliza para transformar um gréfico 3-D em uma tela 2-D. Entretanto, a fungéo abaixo permite a especificagéo do ponto de visio de uma maneira simplificada. © comando view ajusta o ponto de visio atual onde os pardmetros de entrada podem ser 0 azimute (rotagdo horizontal) ea elevagéo vertical, ambos expressos emgraus, ouaindaas coordenadas Introdugio ao MATLAB para engenharias ccartesianas. Os estilos de linha, cor e marcadores, apresentados na Tabela 6 podem ser utilizados ara gréficos em 3-D. Veja o exemplo a seguir: t=0:pi/S0:10"pi; plot3(sin(t),cos(t),t) zlabel('’) ylabel(‘eixo y") xlabel(‘eixo x’) legend(‘sin(t),cos(t)’) A resposta gerada é a Figura 5. — sing, cos(o | exo x Figura 5 ~ Gréfico de uma Curva em 3-D 5 A Figura 6 apresenta um grafico em 3D utilizando um comando especial para obter curvas de resposta. Veja o exemplo a seguir: [uy] = meshgrid(-3:.1:3); Z=x.024y.22; mesh(x.,2); xlabel(‘x’); ylabel(‘y’); alabel('z=x~2+y%2); 19 Colegae Fundamentum +n. 50 Figura 6 Gréfico de uma Superficie em 3-D Animagio © MATLAB apresenta alguns métodos basicos para gerar animacdo. Para gréficos em duas . dimens6es, geralmente se usa 0 comando comet, Exemplo: -vo=139;%m/s - velocidade inicial de um projét theta=45;%cangulo de elevagéo a=theta*pi/180; g-9.8;haceleracdo da gravidade t x=(votsin(theta))"t;%coordenada x -y=tan(a)"x-0.5"g*(x.*2)/(vo"cos(a)).”2;%ecoordenada y .010:16.6;%intervalo de tempo (minutos) | cometixy)s slabel() vlabelC) ‘Aresposta gerada 6 a Figura 7. 20 oe Introdugto ao MATLAB para engenharias Figura 7 ~ Gréfico com Animagao em 2-D da Trajetéria de um Projétil 0 comando comet mostra a curva sendo feita dentro do intervalo definido. Para construgdo de curvas em 3-D tem-se 0 comando comet3. Exemplo: pispi/S00:50°pi; comet3(-exp(0.015*).*cos (1),-exp (0.02"t)."sin (1), 1) A resposta gerada é a Figura 8. Ce ee Figura 8 ~Grafico com Animagao em 3-D a col do Fundamentum +n, 0 O MATLAB 6 um sistema interativo, cujo elemento basico de informacao é uma matriz. A partir das matrizes, é possivel gerar seus respectivos gréficos, criando assim uma seqiiéncia de gréficos sobrepostos, e que podem gerar uma animagéo. 0 MATLAB possui fungées especificas para a criacdo de animagbes (videos): + avifile (nome_arquivo.avi’) - gera arquivo avi para salvar a animagéo; ‘+ close (ponteiro do arquivo) - Fecha o arquivo de filme; ‘+ getframe - retorna cada pixel da imagem para a variével de frames, + Addframe (ponteiro do arquivo, variavel de frames) - copia cada quadro do eréfico plotado ara o final do arquivo de video: + Axis ({xi xf yi yf zi af) - Fixa o tamanho dos eixos das coordenadas; + movie (array_pixel) - executa o filme; ‘+ movie (array_pixel, n) - executa o filme n vezes; ‘+ aviread (nome_arquivo) - 16 um arquivo de filme avi, Exemplo: m=avifile (‘msuperf.avi’) 3:3} ya33; [X¥]=meshgrid (y); for i=-100:1; X.A2-(0.40; (%¥,Z}=peaks(40); surfl YZ); shading interp axis ([-3 3-3 3 -10 10)) axis off; meaddframe (m,F) end m=close (m) Arresposta gerada é a Figura 9. ‘Figura 9 ~ Grétfico com Animacao de uma Superficie Introdugdo a0 MATLAB para engenharias Operadores Relacionais e Logicos wo Os Operadores Relacionais sdo divididos nos seguintes tipos: + < Menor que; + <= Menor ou igual a; + >Maior que; + >= Maior ou igual 9; igual a; . + ~= diferente. Operadores Légicos séo: + &E © | Ou; * ~Néo, Uma operagéo Légica-Relacional apresentard como resultado 1, caso seja verdadeira, ¢ 0, caso seja falsa. Exemplo: >> Asl9 123456789 >> bl=A>4 bi= oooo1itit >> b2= ~(A>4) n= 111100000 >> b3 = (A>2)&(A<6) b3= 001110000 >> bd = xor((A>2),(A<6)) a= 110001111 Exemplo: - Considere uma equagéo com as seguintes limitacées: soy=" para x<=5 x para x>S x = 0:0.01:10; fl=Q'x+)."(x<=5)j 2=(6.72)."0>9); ff1+2; plot) xlabel() ylabel( FOO") 23 hy Colegéo Fundamentum +n. 60 ‘Arresposta gerada é a Figura 10. Figura 10 ~ Grafico de Fungo Descontinua Estruturas de Controle de Programas 0 MATLAB possui caracteristicas que permitem o controle de fluxos de comandos parecidos ‘com as encontradas nas linguagens de programacéo. Estas linhas de comando permitem que 0 ‘MATLAB seja utilizado como uma linguagem de programagao de alto nivel. ‘Comando for ~ permite que um grupo de linhas de comando seja repetido por um nimero fixo e predeterminado de vezes. Exemplo: >> for n=1:10 x(n)=n/2end >>x Columns 1 through 7 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 Columns 8 through 10 4.0000 4.5000 5.0000 ‘Comando while - executa um grupo de comandos em um nimero indefinido de vezes, isto 6, enquanto uma determinada expressio for verdadeir: Exemplo: Determine o nivel de liquido dentro de um tanque esférico, sabendo que o volume ‘cupado 6 Sim, o raio do tanque é 1m, utilizando a seguinte equacéo: s comando break forca a interrupgéo. Exemplo: ser texto ou numéric: 1 Exemplo: Introdugio 20 MATLAB para engenharias >>v=0.5; r=1; conte % contador de iteracées >> h=0,5; Seincremento inicial para o nivel de liquido no tanque >>e=1; Sincremento inicial para o erro >>while e>0,00001 % o erro deve ser inferior a 10% he=(*v/(pi*(3*r-h))) “0.5; &Célculo do nivel de auido cont=cont+1; %Céleulo do contador e=((he-h) 2) *0.5; %Célculo do erro hel send 0s resultados obtidos foram: 6 iteracbes, erro 3,1988x10* e nivel de liquido igual a 0,4311m, Estrutura iftelse-end e break ~as seqiléncias de comandos so executadas condicionalmente. 0 >on; >>ifn<=0, breakend ifrem(n,2)==0 2 n=3*nt1; end n=10 Estrutura switeh — quando hé muitas alternativas para uma solucdo. A varidvel de entrada pode var =10 switch var case 0 disp(ZERO”) case {1,2,3,4) disp(‘var é menor que 5‘) case (5,6,7,8,9} disp(var é maior que 5 e menor que 10°) case 10 dispCais 10°) otherwise dispvar é maior que 10°) end 25 Colegio Fundamentum +n. 50 Andlise Numérica Existem uma série de func6es implementadas no MATLAB, que apresentam o intuito de resolver numericamente situagées onde a solucéo analitica torna-se dificil de ser obtida. Algumas das situagées que ocorrem rotineiramente em problemas de engenharia, e mais especificamente em engenharia quimica, s40 abordadas a seguir. Determinagao de Raizes de Polinémios No MATLAB, um polinémio é representado como uma matriz linha. Os elementos desta matriz io 08 coeficientes do polindmio e esto em ordem descendente. Por exemplo, ax’ +x? +0? tdete No MATLAB temos a seguinte forma de representar 0 polindmio p=labcdel. E possivel determinar as rafzes de um polindmio por meio do comando roots. Por exemplo: wPA3e 4 S3e-59x-S4x472=0 >>pa[ 1-13 93 59-54 72) . >> raiz = roots(p) 6.0000 4.0000 3.0000 1.0000 1.0000 Para determinar um polinémio a partir de suas raizes utiliza-se o comando poly. Exemplo: >> rl=[5-7462) >> pi=poly(rt) pl= 1 410-15 460-1636 1680 Interpolagao Ainterpolacio é um método que permite determinar um ponto desejado por meio de um conjunto | de dados conhecidos. 0 MATLAB apresenta varios métodos para interpola¢4o, apresentados na ‘Tabela 7 © comando interp1(x,y;xd/método") 6 a interpolagéo linear. Introdugo a0 MATLAB para engonharias, ‘Tabela 7 ~ Métodos para Interpolagdo Método Descrigao nearest Ponto mais préximo tinear Interpolagio linear spline Interpolagto cabiea Exemplo: pox=(l 2 3 4 5 6 7 8 9 10) [4 7 12 19 28 39 52 67 84 103) interpl(xy,3.5,'nearest’) poy >>ye yes 19 >> yo = interpl (x,y,3.5/ linear’) ye= 15.5000 >> ye = interpi(x,y,3.5,spline’) ye 15.2500 (O MATLAB apresenta func6es para célculo da interpolagéo bidimensional e tridimensional ¢ também para n dimensées, apresentadas na Tabela 8. ‘Tabela 8 - Fungées para Interpolacéo comando Descrigao interp2 Interpolagao bidimensional interp3 Interpolagao tridimensional interpN Interpolagao N dimensées Solugées de Equagoes Algébricas Lineares Dois métodos so disponfveis para a obtenc&o da solugdo de sistemas lineares de equagées algébricas: Arab O primeiro usa a operagdo inversa, inviay*d segundo usa as operacées \ ou / que resolvem o sistema usando fatoragéo LU (triangular superior e inferior), e eliminagao de Gauss. >> x=A\D ar hi wy Colegdo Fundamentum +n. 60 Exemplo: Vamos resolver o seguinte sistema linear: 1x, +22, +33, = 366 4x, +53, + 6%, Tx, +8x, +03, >> A=[123;456;780]; >> b=[366; 804; 351]; >> xsinv(A)*b 0000 22.0000 99.0000 Integrago Numérica 0 MATLAB utiliza a regra do trapézio para resolver integrais, utilizando o comando trapz. Exemplo: >>x= 12 3 4 5 6 7 8 9 10 1 12 13 14 15] >>y=(0 0.25 100 225 4.00 «6.25 9.00 12.25 16.00 20.25 2500 30.25 36.00 42.25 49.00 $6.25) >> [= trapatxy) I= 281.88 Hi ainda os métodos de quadratura, usados para determinagao das integrais. O comando quad (func&o’, limite minimo, limite méximo), 6 uma aproximagéo do método de Simpson, Exemplo: “>> T=quad(‘logi0(9)',10,100) T= 1.509134965481807e+002 Outra maneira de determinar a integral é utilizando o comando quadl (fungao’ limite minimo, limite maximo) , que utiliza o método de quadratura de Lobatto. Exemplo: >>T=quadl(‘log10(x)',10,100) = 1.509134966251074e+002 Apesar do método de Lobatto se caracterizar por ser mais preciso, nota-se que a diferenca cexistente é mfnima se houver comparacdo com o exemplo anterior. A Tabela 9 apresenta os comandos para integrago dupla e tripla. ‘Tabela 9 - Comandos Especiais para Integrago ‘Comando Descrigao dplquad Integral numérica dupla triplequad Integral numérica tipla 28 [a Introdugto 20 MATLAB para engenheres Solugées de Equagdes Algébricas nao Lineares Consideremos um sistema de n equagées algébricas ndo lineares, com n incégnitas f(%)=0, para o caso n=1, em que o MATLAB dispée da fungao fzero. Exemplo: Determinar a solugéo da equagéo f(2) = x Asin(x) +008(2) ‘comegando a busca em x=0 ¢ em Defini¢do da fungéo, no editor, e salvando como func .m i function y=func(x) Para sistemas multivaridveis, o MATLAB possui as fungées fsolve. Exemplo: Determinar a solugdo do sistema de equagées algébricas nao lineares: AiGiv%2) = 1 + 4RF Hx, | Ful jo%2) = xy 33 +3), Definigo da fungdo, no editor, ¢ salvando como nle.m function f=nle(x) £€)=x(1)-4°x(1)*x(1)-x(1)*xQ); £(2)=2"x(2)-(x(2)) *243°x(1)"x(2); >> x0=[1 11"; >> x=foolve(‘nle’x0) x =0.2500 0.0000 aa Regressées Polinomiais, Lineares Multiplas e nfo Lineares ‘A aproximagao de uma fungéo por um polinémio consiste no ajuste dos coeficientes da func&o polinomial, operagdo essa que minimiza o erro entre a func&o aproximada e a fungéo polinomial utilizada. O MATLAB faz isso através. da funcdo polyfit, que efetua o ajuste dos coeficientes de um polinomio de qualquer grau. ‘A fungio polyfit recebe dois vetores de entrada (abscissas e ordenadas), e um nmero que representa o grau do polinémio. A safda da funcdo é um vetor com os coeficientes do polindmio. Para verificar 0 resultado do ajuste usa-se a fungéo polyval, que resolve o polinémio em um onto desejado ou em varios pontos desejados, caso a entrada de polyval seja um vetor de pontos. Exemplo: Para um conjunto de pontos x, y ajustar um polindmio de segunda ordem e um de terceira, >> xe! 12345678913; 447 1,978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2]; 29 Colegdo Fundamentum «n. 50 >> p2epolyfitts.y,2); >> p8=polyfittsy,3); >> xislinspace(0,1,100); >> 22=polyval(p2,xi); >> 23=polyval(p3,xi); >> plotcxy,’0'xi,22,'"xi,23,'+") >> plottxy/'o'xi22,""xi,23,)") >> xlabel(‘x’) ylabel(y’) >> title(‘Ajuste Polinomial’) Arresposta gerada é a Figura 11. Ajuste P olinomial Figura 11 - Gréfico de Ajuste As regress6es, tanto as lineares quanto as no lineares, podem ser executadas através do método dos mfnimos quadrados, cujo procedimento no MATLAB seré apresentado aqui através de um exemplo. Exemplo: Dados os valores de 2, y,¢ x, obter os valores dos parimetros a, b e ¢ da equacao axtby+oxy Definicao da fungao, no editor, e salvando como regre.m % minimos quadrados function f=regre(k) global xyz + Introdugdo ao MATLAB para engenharias fori + (c(i) (C1) x0) #K(2)*¥ GD +K)"x)*¥@)) 92; end S>global xy zn >>x=[12345678); poysl23.5.7.9111315] “>>u={5 10 16 23 31 40 50 601; >>nelength(2); >>tko=[i 1 >> kefminsearch(regre’ ko) ~ =3.8253 2.8386 2.1087 Solugdes de Equagdes Diferencias Ordindrias As fungées odedS, ode23, ode113, odelSs, ode23s, ode23t, ode23tb so usadas na resolugéo numérica de equagées diferenciais ordindrias, que possuam valores iniciais. As mais usadas so ded e ode23. Exemplo: Consideremos a equacdo classica de Van der Pol, que descreve um oscilador. ax ae Gee ten 0 Comoem toda abordagem numérica de equagées diferenciais, as equacées diferenciais de ordem superior devem ser reescritas em termos de um conjunto equivalente de equagbes diferenciais de primeira ordem, Assim, definido duas novas variéveis: =x e = vn yn dt centio ficamos com o sistema de duas equagées diferenciais de primeira ordem a ’ aE -¥)M- Definigdo da fungéo, no editor, e salvando como vdpol.m. % equagdo de Van der Pol function y=vdpol(t.y); mu=2; y=lv@) mmu*(1-y() *2)"¥@)-¥)]; M23 ( vapor 0 201,180; (1); 3 1 Colegdo Fundamentum +n, 50 eyley2 >>plot(ty1,'o'sty2,""") >>xlabel(‘tempo’),ylabel(‘y1 e y2’) >>gtext(o yl”) >>ptext(‘* y2’) A resposta gerada é a Figura 12. | | sf | o 2 4 6 8 0 12 14 16 18 20 tempo Figura 12 - Solugdo da equacio diferencial Entrada e Saida de Dados para o Excel As novas vers6es do MATLAB sio capazes de interagir com o Excel, permitindo assim importar © exportar dados, e com isso, potencializando ambos os programas. ‘A Figura 13 mostra um exemplo de entrada de dados no Excel: PT Introdugdo 20 MATLAB para engonharias | pid | t | == | I | » Sere Figura 13 ~ Entrada de dados utilizando o Excel Por exemplo, para importar os dados usa-se o comando xlsread(‘arquivo.xls’) -xisread(Pastal xls’) 1.0000 5.0000 2.5000 8.5000 2,0000 6.0000 3.0000 11.0000 3.0000 7.0000 3.5000 13.5000 4.0000 8.0000 4.0000 16.0000 ‘Também é possivel selecionar os dados da planilha a qual desejam ser usados. Exemplo: >> B= xlsread(‘Pastal xls’, ‘AL:A#’) 1.0000 .0000 2.5000 8.5000 © comando xlswrite Carquivo.xls’) exporta os dados do MATLAB para o Excel. >> C=rand(4) c= 0.8147 0.6324 0.9575 0.9872 0.9058 0.0975 0.9649 0.4854 0.1270 0.2785 0.1876 0.8003 0.9134 0.5469 0.9706 0.1419 -_ Colegdo Fundamentum +n. 60 >> xlswrite(aulal.xls’,C) A resposta obtida no Excel é a Figura 14. Figura 14 ~ Safda de dados utilizando 0 Excel Interface com Usuario A interface permite ao usudrio alterar apenas os dados que podem ser modificados sem a necessidade de acessar o programa principal. Ocomando input é a maneira mais simples de interagir com 0 usuério, Exemplo: disp(‘Calculo do Volume de uma Bsfera’) Reinput(‘Entre com o Raio da Esters V=4pitR 3/3 £ possivel criar caixas de didlogo usando o comando inputdlg. Exemplo: prompt = (‘Entre com a altura:Entre com 0 raio:’}; titulo = ‘Célculo do Volume de um Cilindro'; ‘num _linhas def = 4"; resposta = inputdlg(prompt,titulo,num_linhas,def) Restr2num(resposta(1}) Introdugo 20 MATLAB para engenharias, A caixa de didlogo gerada é mostrada na Figura 15, Figura 15 - Janela de Entrada de Dados © comando menu gera um conjunto de opedes para o usuario, como segue o exemplo: Axa Be? k = menu(Escolha uma operagao’A+B',’ BYAIB) Figura 16 - Menu de Opgoes Existem também comandos especiais, como os apresentados na Tabela 10. ) Colegdo Fundamentum +n. 50 ‘Tabela 10 - Comandos Especiais para Caixas de Diélogo Comando Deserigio errordlg Mensagem de erro wamalg ‘Mensagem de aviso helpalg ‘Mensagem de ajuda input Curso para obter dados de gréficos text Curso para adieionar mensagem Exercicios 2 | 3 | » 4 5. 36 Um canhéo efetua um disparo, cuja altura méxima alcancada foi de 10m, e a bala do canhéo Percorreu 1,6Km. Qual é 0 comprimento do arco feito pela bala? Determine 0 volume é a rea superficial dos seguintes s6lidos: a-Paralelepipedo retangular com altura de 1,5cm, largura de 1cm e comprimento de 1,2cm, b-Esfera de diametro 10 cm, ©-Cilindro de raio igual a 2,5cm e altura 10cm. d-Cone circular reto de diémetro igual a 3cme altura Sem. e-Tronco de cone com raio superior igual a 2cm, altura de 6cm e diametro inferior de 13cm. Através de um grafico determine se as equagdes abaixo so determinados ou indeterminados. a x-2yad xty=5 ‘Suponha que um téxi esteja passando entre dois edificios. Considere que a varidvel x contenha a distancia do vefculo ao edificio mais préximo. Se o carro estiver a até 10 metros do edificio, a velocidade 6 calculada usando a seguinte equacdo: 1425 + 0,00175x? Se o taxi estiver a uma distancia maior que 10 metros, use a equagéo a seguir: v= 0,625 + 0,12 ~0,00025x* Esboce o grafico de v por x, num intervalo de 25m do primero prédio. O volume de um cone é dependente da altura (h) e do raio (R), por meio da seguinte equacdo: 1 Vszm'h 3 Desenvolva um programa que gere um gréfico em 3D para o volume, variando o raio de 0.a4 metros ¢ a altura de 0 a 6 metros. IntrodugSo a0 MATLAB para engenharias Referéncias CHAPRA, S. C.; CANALE, R. P. “Numerical Methods for Engineers”. McGraw-Hill, 4ed., 2002. LEITHOLD, L.“O Cileulo’. Bd. Harper & Rove do Brasil LTDA, vol 1. MATSUMOTO, E. ¥. “Matlab 6.5: Fundamentos de Programagéo”. Ed, rica Ltda, 2002. SPIEGEL, M, R. “Manual de Férmulas e Tabelas Mateméticas ~ Colegdo Schaum". Ed. McGraw-Hill Brasil, 1973 oT

You might also like