Você está na página 1de 39
MATLAB Dicas iniciais de utilizagao M.Sc. — Programa de Engenharia Quimica/COPPE/UFRJ — Janeiro de 2003 ‘Andréa Oliveira Souza da Costa costa@peq.coppe.ufr.br MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costa@peq.coppe.utti.br CONTEUDO 1. TRABALHANDO COM VARIAVEIS.. Md ITILIZANDO STRINGS... se soe 5 2. UTILIZANDO FUNGOES MATEMATICAS ELEMENTARES, 3. TRABALHANDO COM VETORES E MATRIZES, 3.1. CoNSTRUINDO VETORES. . set 8 3.2. ORIENTANDO VETORES. 8 3.3. CONSTRUINDO MATRIZES von : sone : 10 3.4, MANIPULANDO VETORES E MATRIZES 10 3.5. COMPARANDO VETORES E MATRIZES 12 3.6, REALIZANDO OPERAGDES MATRICIAIS sssnsnssnsnsnsoniniannsnininnnnsninninnnnnnnnnnennnne 1B 3.7. UTILIZANDO MATRIZES ESPECIAIS. 4 3.8. ORDENANDO MATRIZES. non sn sone 4 3.9, UTILIZANDO MATRIZES MULTIDIMENSIONAIS.... 7 15 3.10, UTILIZANDO LISTAS, 16 3.11, UTILIZANDO ESTRUTURAS. sons : 16 3.11. UTILIZANDO MATRIZES ESPARSAS " 4, ANALISANDO DADOS. 5. TRABALHANDO COM POLINOMIOS .snssnnennnenneannennnunnnnnnmannmnnnnnmannennnnnnennes 20 6. CONFECCIONANDO GRAFICOS. 6.1, GRAFICOS BIDIMENSIONAIS. sen sen 2 6.2. GRAFICOS TRIDIMENSIONAIS. 25 7. TRABALHANDO COM TEMPO. 8, OBTENDO MODELOS EMPIRICOS..ssnesstenetnntnennten 8.1. REGRESSAO LINE: R, 27 9, INICIANDO UM PROGRAMA... 10, UTILIZANDO COMANDOS DE FLUXO F OPERADORES LOGICOS.. 10.1, UTILIZANDO A FUNGKO #08 30 10.2, UTILIZANDO A FUNCKO wt, 10.3. UTILIZANDO A FUNCAO 11, RESOLVENDO UM SISTEMA DE EQUACOI AL BRICAS, 12, RESOLVENDO UM SISTEMA DE EQUAGOES DIFERENCIAIS. 13. COMO SABER MAIS SOBRE 0 MATLAB?. EXERCICIOS. MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costa@peq.coppe.utti.br © objetivo desta apostiia 6 apresentar ao usuério iniciante do MATLAB 6 nogdes basicas de utilizagao deste programa. Assim, é realizada uma rapida descricéo do software, onde séo apresentadas as principais caracteristicas @ potencialidades do programa, Posteriormente, separados em itens, séo descritos alguns comandos importantes para a utiizagao do MATLAB. Nogées de programacao em MATLAB também so apresentadas nesta apostila, bem como os comandos empregados na resolugdo de sistemas de equagées nao lineares e de equagées diferenciais ordinarias. Sugestées para consultas futuras e alguns exercicios de fixacdo so apresentadas ao final da apostila MATLAB é uma abreviagdo para MATrix LABoratory. Trata-se de um ambiente de alto nivel que possui ferramentas avangadas de analise e visualizagao de dados, Mais do que um aplicativo, 0 MATLAB também possui caracteristicas de linguagem de programagao. ‘A programagao em ambiente MATLAB dispensa tarefas como declaragdo de varidveis, alocagao de meméria, utiliza¢ao de ponteiros, necessérias durante a utilizagao de linguagens de programagao como C ou Fortran. As fungdes matematicas ja existentes no MATLAB séo otimizadas, programadas em linguagem MATLAB e estdo agrupadas de acordo com a drea de interesse em toolboxes. Assim, 0 usuario tem acesso aos arquivos das fungdes matematicas 0 que possibilita a realizagao de alteragdes nas rotinas ja existentes. Todavia, vale ressaltar que estas alteragdes so perigosas e sé devem ser realizadas como ultima alternativa. Antes de abordar a programagao em ambiente MATLAB, faz-se necesséria uma analise da execugao de comandos de linha )diretamente digitados na area de trabalho (workspace)). Inicia-se esta andlise discutindo como se trabalha com variéveis em ambiente MATLAB. MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costat@peq.coppe.ufri.br 1. Trabalhando com variaveis No MATLAB os nomes das variaveis devem ser palavras inicas, sem a incluso de espagos ¢ no devem conter acentos. As regras basicas para nomes de varidveis sao apresentadas na Tabela 1.1. Tabelat.1: Regras basicas para nomes de variaveis no MATLAB. @ ITENS As varlavels S80 sensivels a letras malusculas © Teens, 2 mindsculas ‘S40 entendidas como diferentes varidveis. ‘As variaveis podem possuir até 31 caracteres, _ Oquevoceachadestenomedevariavel Os caracteres além do 31° sdo ignorados. Pode ser usado como nome de varidvel ‘O nome da varidvel deve comegarcomuma 0 que _voce acha deste nome e X51 letra, seguida de qualquer numero, letra ou —_ podem Ser utilizados como nome de varidveis. sublinhado. Existem algumas varidveis especiais que o MATLAB utiliza que sao apresentadas na Tabela 1.2. Se o usuario redefine estas varidveis, o MATLAB passa a atribuir a nova fungao as mesmas. Tabela 1.2: Variéveis especiais utlizadas pelo MATLAB. Variavel Significado ans Varidvel padréo usada para resultados P Razo entre o perimetro da circunferéncia e seu diametro. eps Precisdo relativa da maquina. int Infinito NaN nan Nao numérico a3 vi nargin Numero de argumentos de entrada de uma fungab. nargou Numero de argumentos de saida de uma fungao. Menor niimero real positivo utilizavel peta maquina. Maior numero real positivo utilizével pela maquina Caso 0 usuério necessite apagar alguma varidvel da meméria do MATLAB, isto pode ser realizado utilizando-se o comando “clear”. Por exemplo: MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costa@peq.coppe.utti.br Se a necessidade do usudrio for de apagar todas as varidveis que estdo sendo utilizadas deve-se utilizar 0 comando “clear al", Se por outro lado, 0 usuario deseja a listagem de todas as varidveis que estéo sendo utilizadas, basta utilizar 0 comando “who”. Por exemplo: Todo 0 texto depois do sinal de percentagem (+) é considerado comentario. Além disso, pode-se colocar mais de um comando em uma linha, separando-os por virgula ou Ponto e virgula. A virgula diz ao MATLAB para mostrar o resultado apés executar 0 comando. Jé ponto e virgula dispensa a visualizagao. Por exemplo: > a=10; b=20, & isto é um comentario Quando se deseja continuar 0 comando na préxima linha, 0 sinal utilizado pelo MATLAB é representado por 3 pontos (. . .). Isso $6 funcionara se os pontos estiver entre nomes de varidveis e operagdes. Este comando ndo funciona para comentarios. Ou seja: b-20; © usuario pode interromper a execucéo do MATLAB, a qualquer momento, pressionando o Crtl-e. Para limpar 0 workspace o usuario deve utilizar o comando 1.1. Utilizando strings © MATLAB entende como strings 0 conjunto de caracteres (vetor de caracteres) colocados entre aspas simples. Assim, para acessar uma parte da variavel é necessario listar a localizagao dos caracteres. Ou seja: MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costat@peq.coppe.ufri.br ariavel e uma string’ 3), § retirando a palavra variavel da string s 2. Utilizando fungées matematicas elementares A Tabela 2.1 apresenta uma listagem das principais funges matematicas que 0 MATLAB possui. Vale ressaltar que o MATLAB trabalha apenas com radianos (2x radianos = 360°). Tabela 2.1: Principais funges matematicas utilizadas pelo MATLAB. Fungao ‘Significado acos (x) ‘Arco coseno, Arco coseno hiperbélico. ‘Arco seno. ‘Arco seno hiperbélico. ‘Arco tangente. Arco tangente hiperbélico. Coseno Coseno hiperbélico, Exponencial: e* Maximo divisor comum entre os inteiros x e y. Logaritmo natural, Logaritmo na base 10. rem(x,y) Resto da divisdo de x por y. round (x) Arredondamento para o numero inteiro mais préximo, sign (x) Fungo sinal. Retorna o sinal do argumento x. sin (x) Seno sina (x) ‘Seno hiperbélico, Raiz quadrada Tangente Tangente hiperbélica 3. Trabalhando com vetores e matrizes © MATLAB foi desenvolvido especialmente para trabalhar com representacées matriciais. Desta forma, 0 usuario deve dar preferéncia para este tipo de representacéo quanto estiver utilizando 0 MATLAB, jé que isto significa a realizagao de célculos com 6 MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costat@peq.coppe.uft}.br maior eficiéncia. © MATLAB manipula vetores de uma maneira simples e intuitiva. Considere que se deseja calcular a fungao y = sen(x) em 0 < x < x. O primeiro passo é criar um vetor com todos os valores de x para os quais se deseja calcular y. Uma vez definido o vetor, caloula-se 0s valores correspondentes de y. Ou seja: O.14pi 0.2"pi 0.34mi O.4*pi 054m! O.6¢pi O.T*pi 0.8*pi 0.9*pi pil Columns 1 through 7 0 0.3942 «0.6283 0.9425 1.2566 -5708 8850 Columas @ through 11 2.1991 2.5133 2.8274 3.1416 » yesin(x) columns 1 ° 0.5878 0.8090 0.9511 0000 © 0.9511 columns & 0.8090 0.3090 a.0000 Para se resgatar um determinado elemento do vetor, basta indicar entre parénteses a localizagao do mesmo. Ou seja: > x=[0 Q.1*pi 0.2=pi 0.34pi O.4*pi 0.5*pi O.6*pi O.7*pi O.8*pi 0.9*pi pil; > x(1) >» x(11) 3.1416 Para ter acesso a blocos de componentes ao mesmo tempo, 0 MATLAB utiliza a notagao de dois pontos. Ou seja: ‘* _componentes de x, do primeiro ao quinto elemento: > (125) 0.3142 0.6283 0.9425 1.2566 ‘= componentes de x, iniciando do sétimo e indo até o final: > X(T al) 1.8850 2.1991 + componentes de x, iniciando do terceiro, contanto regressivamente de um em um e 7 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br parando no primeiro: > x (3:-1e1) 3.1. Construindo vetores Existem formas para construgéo de vetores que dispensam a tarefa de digitar termo a termo, Sao elas: ‘© cria um vetor que comega em zero e vai até o valor x, incrementado 0,1*n: > x= (020.121) *p: Columas 1 through 0 0.3242 0.6283 0.9425 1.2566 1.8850 Columns @ through 2.1991 2.5233 2.8274 3.146 ‘+ cria um vetor que comega em zero e vai até o valor x com 11 elementos utilizando a fungdo 1 inspace. Os argumentos desta fungao so’ nspace (primeiro valor, ultimo_valor, numero_de_valores) » Linspace (0,p. Columns 1 through 7 0.3242 0.6283 0.9425 «1.2566 ot 1.8850 Columns @ through 11 2.1991 2.5233 2.8274 3.1416 + cria um vetor em escala logaritmica que comega em 10° e vai até o valor 10° com 11 elementos utilizando a funcéio Logspace. Os argumentos desta fungao sao! ogspace (primeiro_expoente, ultimo_expoente, numero_de valores) > logspace (0,2, 21) Columns 1 through 1.0000 5849 2.5119 3.9811 «6.3096 10.0000 15.9489 Columns 8 through 1 25.1189 39.8107 63.0957 100.0000 Até agora foram construidos apenas vetores linhas. Todavia, muitas vezes se faz necesséria a utilizagao de vetores colunas. MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costat@peq.coppe.ufri.br ‘A maneira mais direta de construgao de um vetor coluna é especificando elemento por elemento e separando os valores com ponto e virgula: #2 Uma alterativa a esta proposta é transpor um vetor linha, ja especificado, transformando-o em um vetor coluna: ‘Além da forma de transposigdo vista anteriormente (' ), o MATLAB tem o recurso de transposigéo pontuada ( ."). Este comando ¢ interpretado como a transposigéo sem a operagao de conjugagao complexa, Isto porque quando um vetor & complexo, o operador de transposigao (' ) nos dé a transposigo do complexo conjugado, isto 6, o sinal da parte imagindria 6 mudado como parte da operagao de transposigao. Jé 0 operador de transposi¢ao pontuada ( .’) transpée 0 vetor mas ndo o conjuga. Vale ressaltar que para vetores reais estes operadores sao equivalentes. Ou seja: >> a=(-4)*.5; =[a a al 0.00 + 2.00 0.00 + 2,008 0.00 + 2.004 >> be[a a al" MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br 3.3. Construindo matrizes Para a construgao de matrizes no MATLAB utilizam-se ponto e virgula para separar os elementos de uma linha da outra: 2345678 3.4, Manipulando vetores e matrizes Considerando-se vetores ou matrizes, a adigéo, a subtragdo, a multiplicagao e a divisdo por um escalar simplesmente aplica a operagdo a todos os elementos do vetor. Ou seja: 5 15 > 9/241 1.5000 2.0000 3.5000 4.0000 0000 Ja as operagées entre vetores e/ou matrizes nao sdo tao simples. Quando dois vetores ou matrizes possuem a mesma dimensdo, a adicao e a subtragdo sdo realizadas elemento a elemento pelo MATLAB. Ou seja: pol 234) 567 8)r >he[l 111; 2222); > geh 2 3 4 7 8 8 3 4 5 6 Quando se utilizar 0 simbolo deseja multiplicar duas matrizes, elemento de multiplicagéo escalar pontuada (.*) por elemento, deve-se © ponto que precede o 10 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br astetisco, simbolo padréo de multiplicago, diz a0 MATLAB para fazer a multiplicagao elemento por elemento. A multiplicagao sem o ponto significa multiplicagao matricial, Ou soja Para a divisao de matrizes, elemento por elemento, deve-se utilizar 0 simbolo de diviséo escalar pontuada ./. Novamente 0 ponto que precede o simbolo padréo de divisao diz ao MATLAB para fazer a divisdo elemento por elemento. A divisdo sem o ponto significa divisao matricial. Ou seja: > gl 6): > hell 8; 240; > gfe ~~ 1,000 0.2500 2is000 115000 h er) 0.6667 2.8333 E possivel elevar cada elemento de uma matriz a uma dada poténcia. Para isto aplica-se 0 operador .~s, onde n 6 poténcia que se deseja aplicar a cada elemento da matriz. Ou seja: A Tabela 3.4.1 fornece ainda a listagem de alguns comandos Uteis de manipulagao matricial. " MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br Tabela 3.4.1: Comandos titeis de manipulagao matricial utilizados pelo MATLAB. Fungao ‘Significado Exemplo 12 Considere em todos os exempios: A=}, |: Riz, #) _ Fomece a submatriz de A cujas linhas sao definidas pelo» AC velor re que inclui todas as colunas. ans l 2 (sy) Fomece a submatriz de A cujas colunas so definidas pelo » A(:,) vetor re que inclui todas as linhas. ans = 1 A(z) Fomnece todos os elementos de Aem um vetor coluna, » A(:) percorrendo as colunas de A pela ardem crescente de ans ~ seus indices 1 3.5. Comparando vetores e matrizes Os comandos mais utilizados para comparacao entre vetores e matrizes sao listados na Tabela 3.5.1 Tabela 3.5.1: Comandos titeis de comparagdo entre vetores e matrizes. Fungao ‘Significado Exemplo 12 16 12 Considere em todos os exemplos: A = B=}. 0): c= 3 af is 2 34 sequal (i, 5) Variavel logica: verdadelra se A e B Sao idénlicos. » Tsequal (A, 5 > Lsequal (A,C) 1 ismember (A,B) Variavel légica: verdadeira quando os elementos» ismember (A,B) de A sao também elementos de B. ans = 1 1 > ismenber (A/C) loo 1 1 12 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br 3.6. Realizando operacées matriciais A Tabela 3.6.1 fornece as principais fungées matriciais existentes no MATLAB. Tabela 3.6.1: Principais fungdes matriciais existentes no MATLAB. Fungao. ‘Significado Exemplo 12 Constr amino on nena: A=]! 3] Calcula 6 determinante da matriz > de A ans = areigia) Determina os autovalores e autovetores de A. Calcula a matriz inversa da matriz A poly(A) Calcula a equagao caracteristica do. -2,0000 rank(al Determina o numero de linhas e colunas linearmente independentes de A. sve Calcula a decomposigao em valores singulares. ans = 13 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br 3.7. Utilizando matrizes especiais A Tabela 3.7.1 fornece algumas matrizes especiais existentes no MATLAB. Tabela 3.7.1: Matrizes especiais existentes no MATLAB. Fungao ‘Significado Exemplo, eye Matriz identidade ones Matriz onde todos os elementos» ones (2) so iguais a1 ans = LoL 1 ooL rand Matriz com elementos aleatérios > rand (2) distribuidos entre 0 6 1 ans = 0.9501 randn Matriz com elementos aleatérios » rand (3) distribuldos que seguema ans = distribuigdo normal e tm média 0.8913 0.6154 zero e varidncia igual a 1 0.762: 0.7919 0.4565 0.9218 zeros Matriz onde todos os elementos» zeros (2) 0 iguais a 0. ans = Ca) 3.8. Ordenando matrizes ‘A ordenagao dos elementos de um vetor ou de uma matriz podem ser realizados utilizando 0 comando A utilizagio deste comando possibilita ainda o armazenamento da localizagao original dos dados. Assim: 14 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br >> asrand (1,3) 8311596780460 0.60854036122399 0. 586918471884 09284246174092 0.01575981791975 0. 108987829 >> (a_ordenado_1,ord]=sort(a(1,:)), % ordena a 1 a_ordenado_! 9,01286257467300 0,01635493355000 0.03533832396916 ord 1 32 >> [a_ordenado_c,ord]=sort(a(:,2)), % ordens a “an a_ordenado_c = ord 9.01286257 103533832396926 160854036122399 32534724 0.02718512299667 0.31268504808015 12299667 0.043895325 0.31268504808015 (4,3) 000 32396916 0,01635493355000 38396728849430 0.61239548137302 0.19007458907973 01575981792975, 61239548137302 3.9, Utilizando matrizes multidimensionais Para a utilizago de matrizes multidimensionais s4o necessarios 3 indices ao invés dos 2 adotados durante a uti agao de matrizes bidimensionais. A Figura 3.8.1 mostra a forma visual de interpretar matrizes multidimensionais. 29 14 33 87 6-89 1s 4042 29-14 20 54 S8 28 58 09 m8 © | s6 sz 85 96 58 23 87 10 32 89 74 15 79 25 75 Figura 3.8.1: Forma visual de interpretar matrizes multidimensionais. 15 MATLAB ~ PEQ/COPPE/UFRI- Janciro de 2003, costat@peq.coppe.uft.br As matrizes multidimensionais podem ser construidas e manipuladas utiizando os mesmos comandos apresentados para as matrizes bidimensionais. Desta forma: >> M = rand(2,4,3) MO 49655244970320 18997691 7516961 12) 34119356942488 — 0.72711321692968 3407301762660 0.30929015979096 23) Saes7119182921 0.69456724042555, 4448802046729 0621310130795. (1,2) -82162916073534 6449103: 4 81797434083925 +66022755644160 34197061827022 28972569585624 «( 83849604493808 —0,37041355663212 +56807246100778 0, 70273991324038 9482108020093 9564344840488 2259034908071 8801422074133, 0.49655244970320 3.10. Utilizando listas As listas (ou disposigao em células, cell arrays) so formas especiais de representar de matrizes. Neste tipo de representagdo, cada elemento da matriz pode conter matrizes com diferentes dimensées. © exemplo abaixo ilustra a criagdo de uma Wsta, [>> a-1:3; berand(2,2); onl; d=(a chs >> listasia bed lista [1x3 double [2x2 double {1x2 ce: Para a manipulagdo dos elementos de uma lista também sao utilizadas chaves e parénteses como exemplificado abaixo, # berand (2,2); =tabec dit 3.11, Utilizando estruturas As estruturas s&o matrizes especiais utllizadas pelo MATLAB para armazenar dados de naturezas diferentes. As estruturas diferem das listas por possuirem nomes que identificam a localizagéo dos dados. O exemplo abaixo evidencia a utilizagéo de 16 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 estruturas. > ado.alunos="maria'; >> reeuitado.actas=[9 8.5); >> resultado resultado = jotas: [9 8.50000000000000 >> resultado (2) .alunos=" joao": >> resultado(2} .notas=[10 7); resultad 1x2 struct array with fields: >> resultado.alunos joao costal@peq.coppe.ufri.br Uma outra forma de gerar estruturas é utilizando 0 comando ‘struct’ >> resu uct (Yalunos', ‘maria’, ‘notas", [9 8 resultad notas: (9 8.50000000000000 >> sesul notas si 3.12. Utilizando matrizes esparsas ‘As matrizes esparsas séo aquelas onde apenas alguns de seus elementos possuem valores diferentes de zero, Neste caso, 0 armazenamento de toda a matriz representa um desperdicio de espago de armazenagem e de poder computacional em operagées aritméticas com zeros. No MATLAB é possivel consi uma matriz utiizando os comandos “sparse” e “full” © comando jerar a esparticidade de “sparse” armazena os elementos néo nulos da matriz original, desconsiderando os elementos iguais a zero. JA 0 comando “full” rescreve a matriz esparsa original. Ou seja 7 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br >> clei >> X-[1 0560 ke >> S = sparse (x) S- a a,3) aa (2,5) >> whos Name size s 2x7 >> X2efull (8) x2 = 2x7 2x7 2x7 00; 5 6 09 0 0 0 ° 1 a) 1 6 1 Bytes Class 20 a2 8 elements using 192 bytes 5 6 0 oo 0 ° 1 a) array a2 array 12 fe array 2 elements using 304 bytes 4. Analisando dados A andlise de dados coluna, representa uma observagéo no MATLAB é feita utilizando-se matrizes orientadas por As diversas variéveis séo armazenadas em diferentes colunas e cada linha diferente de cada varidvel. As principais fungdes de andlise de dados so apresentadas na Tabela 3.11.1 8 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costal@peq.coppe.ufri.br Tabela 3.11.1: Principais fungées de andlise de dados. Fungao ‘Significado Exemplo, 123 Considere em todos os exemplos: A=|4 5 6 789 corrcoet (Ay Coeficientes de correlagdo >> corrcoet (A) doo. dol. 1 1 1 cumprod (a) Produto acumulative das colunas de» cumprod (A) 4 2 3 4 10 3B 28 80162 cumsum (A) Soma acumulativa ao longo das» cumsum(A) colunas de A. ans 1 2003 5 7 3 2 5 18 max (A) Maximo ao longo das colunas de A.» max (A) 7 8 3 mean (A) Média ao longo das colunas de A.» mean (A) 4 5 min (A) Minimo ao longo das colunas de A.» min (A) “4 prod(ay Produto ao longo das colunas de A.» pred (A) 28 90162 Calcula o desvio padrao ao longo» das colunas de A. al 3003 sum(A) ‘Soma os elementos ao longo das» sum (A) colunas de A. ans 8 19 MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br 5. Trabalhando com polinémios No MATLAB, um polinémio é representado por um vetor linha contendo seus coeficientes em ordem decrescente. Por exemplo, 0 polinémio x‘ — 12.x° + 25.x + 116 é representado da seguinte forma: =12 0 25 116 Vale ressaltar que os termos com coeficientes iguais a zero devem ser incluldos. Através do uso do comando roots é possivel encontrar as raizes de um dado polindmio. Ou seja’ Dadas as raizes do polinémio, também é possivel construir 0 polindmio associado. Para isto, é utilizado 0 comando poly: > pp=poly (x) 1.0000 -12.000 ) 25.0000 116.0 A multiplicagéo de polinémios realizada pelo comando “conv”. Desta forma, considerando o produto de dois polindmios f,(x) = x° + 2.x? + 3.x +4 @ fo(x) =x? + 42 + 9.x + 16 temos: 149 16); 64 20 MATLAB — PEQICOPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br O resultado desta operagao & 0 polindmio fa(x) = x° + 6.x° + 20.x! + 50.x° + 75.x7 + 84.x + 64. A funcdo “deconv" € utlizada para dividir um polindmio por outro. Considerando- se as fungdes f,(x) e f(x) anteriores temos: > [a,=]=decon| q Como resultado, 0 comando retora o polinémio resultante q, que neste caso é a fungao fy(x), ¢ 0 resto da diviséo r. © MATLAB possui a fungao “po yde- de polindmios, Ou seja que é utilizada na obtengao de derivadas 1234); olyder (é E possivel que seja necessério utilizar razées entre p transferéncia por exemplo). Nestes casos, 0 MATLAB considera a existéncia de 2 polinémios distintos. Smios (fungées de 6. Confeccionando graficos 6.1. Graficos bidimensionais Uma das fungdes que 0 MATLAB possui para elaboragao de gréficos é a fungao plot", Este comando calcula a fungao a ser representada e certifica-se de que suas, propriedades estejam bem representadas. Como entrada, 0 “fplot" precisa saber a fungo a representada (como varidvel string) e 0 dominio do grafico. Ou seja: 24 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br exp (~x) .*8in (x) "7 8)) Outra fungo utilizada para confeccionar graficos bidimensionais, onde f = f(x), 6 a fungo “ezplot”. Esta fungao também tem como argumentos de entrada uma fungao string e um intervalo de variagao. Se f = f(xy), 0 comando “ezplot" representa a fungao considerando f(x,y) >> ezplot (1x*3 + y*3 — 5éx © comando mais comum utilizado para elaboragao de gréficos bidimensionais no MATLAB é 0 comando “plot”. Esse comando cria gréficos de vetores de dados em eixos adequados e conecta os pontos a linhas retas. Por exemplo: space (0, 2*pi, 30); > yosin (x): » plot (xy) E possivel utilizar 0 comando “plot” para tragar mais de um gréfico no mesmo sistema de eixos. Ou seja: > x-linspace(0, 2*pi, 30); Ga: 108 (x) 5 (ir Ve, 2) Durante a confecgao de um grafico no MATLAB , 0 usuario pode escolher a cor e 0 estilo das linhas bem como o marcador utiizado. A Tabela 6.1 mostra os oédigos utilizados ¢ 0 exemplo abixo evidencia a utllizagéo dos mesmos. > x=linspace (0, 2*pi, 30) >» yeosin (x); » Becos (x) + > plot (x, ¥s" © usuério pode ainda modificar a cor de fundo do gréfico utilizando 0 comando ‘clordes", Neste caso, sugere-se ao usuario consultar 0 help na area de trabalho do MATLAB (» help colordef). © comando “grid on* adiciona linhas de grade ao grafico nas posigdes dos eixos que hé marcadores. O comando “grid off" remove as linhas de grade. Vale ressaltar que o MATLAB comega sempre com “grid off* Para gréficos bidimensionais. 22 MATLAB — PEQ/COPPE/UFRI- Janciro de 2003, costa@peq.coppe.utti.br Tabela 6.1: Cédigos para marcadores, cores e tipos de linha na confecgao de gréficos no MATLAB. ‘Cores de Tinhas Marcadores Tipo de linha ‘simbolo. ‘cor ‘Simbolo Marcador ‘Simbolo Tipo de linha > azul - pponto = Tinha continua g verde ° freulo linha pontithada r vermelho x x tragos e pontos . iano + + linha tracejada n magenta * estrela y amarelo s quadrado x preto a losango « branco < triangulo para a esquerda > tridngulo para a direita P pentagrama h hexagrama Para atribuir nomes aos eixos, pode ser utilizado os comandos comando “x Label e “ylabel", O comando “tit Le" adiciona um titulo ao grafico. Ou seja: nspace (0, sin (x)? Lot (x, ¥s » geid on » xlabel ("x") > ylabel (*seno (x) ") » titlel'grafico') > grid off Para criar legendas no gréfico, o usuario pode utilizar os comandos “legend* ou text". Ou seja: >» x=linspace(0, 2*pi, 30); > yesin(x); » Becos (x) + Lot (Xp Yr Xe 2) > Legend ("Seno (x) ", "cosene (x) "} » legend off $ retira a legenda » gtext ("Seno (x) ") > gtext ("coseno (x) ") E possivel criar uma janela com mais de um sistema de eixos. Para isto, é utilizado 0 comand “suisplot (m,n,p) *, Este comando subdivide a janela de gréficos em uma matriz com m por n regides. A variavel p indica a localizagao do grafico, Ou seja 23, MATLAB ~ PEQ/COPPE/UFRI- Janeiro de 2003, costat@peq.coppe.uft}.br > 2pi, 30); » 22008 (x) 7 > a=2*sin(x) .*c0s (x); > besin (x) ./ (cos (x) +eps) 7 > subplo 2,21) >» axis((0 2*pi -1 1)) valores: minimos e miximos para x e y » title (‘seno(x)") > subplot (2, 2,2) » plot(x,2), axis([0 2*pi title ('coseno(x)") » subplot (2,2, 3) » plot (xa), axis([0 2*pi -1 1]}, title('Z.seno(x) .coseno(x)") > subplot (2,2/4) » plot (x/b), axis({0 2*pi -20 20]), title('seno(x) /coseno(x)") ‘Além dos graficos ja elaborados, outros recursos gréficos bidimensionais sao disponiveis no MATLAB. Sao eles: ‘© grafico tipo torta: 15.5 .05 .05 .21; pie(a) a-=max(a)) § traga o grafico separando a mi: ‘+ grdficos com escalas diferentes: xa-2*piipi/10:2*piz yesin (x); 2=2"c0s (x) 7 subplot (2,1,1) plot (x, y,x/2), title('escalas iguais'), plot (2,1,2),plotyy (x,y,z), title('escalas diferentes"), © graficos de barras: > x2=2.920.2:2.95 > yrexp (-x.7x)7 > subplot (2,2/1), bar (x,¥)+ » subplot (2,2,2), bar3 (x,y), » subplot (2,2,3), stairs (x,¥), » subplot (2,2,4), barh (x,y), © grafico com barras de erros: nspace (0,2,21); > yrert(xl; Sy ba > e=rand (size (x) ) /10; orbaz (x, ye) Gao erro de x s contém valores de exros aleatérios + grdficos com pontos selecionados manualmente: 24 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br nspace(-2"pi, 2*pi, 60); yesin (x) °2./ (xt0p8) 7 > plot (x, ¥1 >» [a,bl=ginput (5) $ toma 5 » hold on § Para escrever por cima do grafico anterior » plot (a,b, 'mo!) » hold off § 1 rao grafice anterior para sez eliminado 6.2. Graficos tridimensionais © comando ‘plot* para grdéficos bidimensionais é estendido para os tridimensionais com 0 comando “plot3", Este comando ria gréficos de linhas tridimen space (0, 10*pi, 1000: 3(sin(t),cos(t), t) © comando ‘neshgria" ¢ utilizado para gerar matrizes x e y, contendo linhas colunas repetidas. Esse par de matrizes , x y, pode ser entéo usado para caloular fungdes de duas varidveis usando os recursos do MATLAB de matematica vetorial Uma vez estabelecidos os valores dos pontos a serem representados em um. grafico tridimensional, 0 comando “nesh* pode ser utiizado para gerar um gréfico de rede 0 comando “suré" pode ser utllizado para gerar uma superficie. J os comandos ontour" @ “contour3" geram as curvas de nivel. Uma forma similar do comando contour” 6 0 comando “pcoler" onde sao utilizadas cores distintas para delimitar regides de alturas diferentes. Ou seja: D> xeo3:0.1237 yous [X,¥]=meshgrid(x,y); Z-X.*3 + ¥.°3 - S*X.AY + 1/5; >> mesh (X,Y, 2) > suct (X,¥,2) our (X, ¥, 2, 40) contours (X,Y, Z, 40) peolor (X,Y, 2) E possivel para o usuario trocar as cores padrao utllizadas pelo MATLAB na confecgao de gréficos. Para isto, utiliza-se dos mapas de cores que sao matrizes com trés colunas. Cada linha define uma cor particular, usando os nimeros 0 a1 93 y ¥.A3 = S*KSAY © 1/5; D> Meo3:0.1:3; yous [K,¥]=meshgrid (x,y); 2 >> sue (X,¥,Z), colormap({l 1 1}) % branco >> surf(X,¥,2), colormap([.5 .5 .§]) © cinza 25 MATLAB ~ PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufti.br © usuério pode ainda escolher um dos mapas de cores ja existente no MATLAB. (Tabela 6.2.1). Tabela 6.2.1: Mapas de cores utilizadas pelo MATLAB. Escalar com cores saturadas. Preto-vermelho-amarelo-branco Escalar linear de tons de cinza. Escala de tons de cinza levemente azulados. Escala linear de tons acobreados. ‘Tons pastéis de rosa Mapa de cores totalmente branco. Vermelho, branco, azul e preto alternados. Uma variante do mapa hsv Mapa de cores denominado ‘prisma’. Tons de ciano e magenta. Mapa de cores que usa as mesmas cores do comando plot Mapa de cores denominado “cube colorido". sunmer Tons de amarelo e verde. autunn Tons de vermelho @ amarelo, oa Tons de azul e verde, Tons de magenta ¢ amarelo. D> me320,1237 yous [X,¥]-meshgrid (x, X,¥,2), colormap ( [summer]) (%)¥, 2), colormap (hot ]} ~ OKAY + Para acrescentar uma legenda no grafico tridimensional, 0 usuario deve utilizar 0 comando colo: D> w=-320.137 YZ), [x Yl=meshgrid(x,y)7 2=X.°2 + ¥.73 — S*KAY + 1/57 ormap({winter]), colorbar 7. Trabalhando com tempo © MATLAB possui varias fungdes para manipular datas e horas. A fungao “clock” . Por exemplo, fornece a data e a hora atuais em um vetor. > T=clock ne 1.0e+003 * 2.003 0.001 9.009 0.010 0.031 0.05 Os elementos que retoram no vetor T ao se aplicar o comando K* so: ano, 26 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br més, dia do més, hora, minutos e segundos. JA a fungdo “date” fomece a data atual como um texto no formado dia-més-ano. Ou seja’ Jan-2003 Os comandos e “toc” podem ser utllizados para cronometrar uma operagao. Ou seja: >> tics plot (rand(5))7 clapsed_t 0.11000000000000 A fungao “cputime" fornece o tempo, em segundos, da Unidade Central de Processamento (CPU) usado pelo MATLAB desde 0 inicio da sesso corrente. Ou seja: putine; plot (rana(S)); cputime-to 11000000000058 8, Obtendo modelos empii © MATLAB possui funges que possi empiricos tais como: modelos ARX, ARMAX, redes neuronais e ainda modelos obtidos via regressao linear e nao linear, Nesta apostila, a utilizagéo da regressdo linear é exempiificada. tam a obtengao de diferentes modelos 8.1. Regressao linear © comand utilizado pelo MATLAB para a realizagéo de regresso linear 6 denominado “regress”. Para utilizar este comando 0 usuario deve fomecer a matriz com as varidveis independes e um vetor com a varidvel dependente. Cada linha da matriz ou do vetor deve corresponder a uma observagéo. Caso o modelo linear possua uma constante, a matriz com as variaveis independentes deve possuir uma tiltima coluna com valores iguais a 1, O exemplo abaixo exemplifica a utilizago deste comando: ar MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br >> clear all (200:200)* 1,1) (300:400) "+randn(101,1) ones (101,1)]; >> matriz com variaveis independentes 7 P3100; yoPL*x(:,1)+P2*x( 2,2 >> P1e2; B2: + yeytrandn (101, 1); >> % vetor com variaveis dependentes >> [P, Pin, R,Rin, stat ]=regress (y,x, 0.05); P ¥ parametros do modelo 344230552157 06793100944515 86.20341131968449 Pin & intervalo de confianga paza os parametros 1.06+002 * 96312069 0.02053588298954 0181. 0094762222814 0.01188239797076 0337049697678 62069772941691 1 1.de+005 * o.coceeasgea9004 4 Os intervalos de confianga para os parametros do modelo foram calculados considerando um nivel de confianga igual a 95%. Isto porque usamos o valor 0,05 como terceiro argumento de entrada para a fungéo “regress formece © 5° argumento de saida, neste caso denominado “stat”, respectivamente: o valor de R’, 0 resultado do teste de hipstese F (testa-se se todos os coeficientes do modelo obtido so iguais a zero) e 0 p-valor associado a este teste. Durante a realizagdo do teste F assume-se a existéncia de uma constante no modelo. Neste caso, 0 modelo obtido consegue descrever cerca de 99,9899% da variabilidade experimental e podemos considerar, com grande seguranga, que todos os coeficientes do modelo nao sao iguais. a zero. Os erros verificados entre os valores preditos pelo modelo ¢ os reais, bem como o intervalo de confianga para estes valores so fornecidos através do 3° e do 4° argumento de saida da fungdo "regress". Neste caso: “R" e “Rin”. Uma melhor visualizagdo desta icado abaixo. 28 informago pode ser obtida através do comando “rcop1ot” como exempll MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br >> rcoplot(R, Rin) Neste caso, todos os residuos que néo atingirem o valor zero sao considerados outliers. © MATLAB também possui fungdes destinadas a realizacdo de regressdes ndo lineares. Neste caso, a soma dos quadrados dos residuos, verificados entre os valores reais e preditos pelo modelo, ¢ minimizada utiizando um método de otimizagao Quasi Newton (Levenberg-Marquardt). Para maiores detalhes sugere-se a consulta ao comando 9. Iniciando um programa Todos os comandos descritos anteriormente podem ser utilizados durante a elaboragao de um programa em MATLAB. ‘Antes de comegar a programar, vocé deve escolher qual o diret6rio de trabalho. A programagao em MATLAB é realizada através da elaboragao de arquivos tipo '. Sendo assim, uma vez escolhido o diretério de trabalho, vocé deve abrir um arquivo “m" seguindo 0 seguinte caminho: File-> New —» M-file. Neste arquivo deve ser escrito 0 programa. Uma vez escrita a rotina a ser executada, deve-se salvar 0 arquivo, Para “rodar" a rotina, deve-se digitar 0 nome do arquivo tipo “m" no workspace do MATLAB. © MATLAB possui diversas fungées que sao particularmente apropriadas para o uso em arquivos tipo “m’, Estas fungGes sao apresentadas na Tabela 9.1. Tabela 9.1: Principais fungées utilizadas em arquivos tipo “m” Variaver ‘Significado’ Disp (*texto") Mostra o texto escrito entre as aspas. Solicita ao usuério que forneca algum dado de entrada. ‘Suspende a execugao até que o usuario pressione alguma tecla. Suspende a execugdo por n segundos. Exemplo 4. Abra um arquivo novo tipo “m”; 29 MATLAB — PEQ/COPPE/UFRI- Janciro de 2003, costat@peq.coppe.ufri.br 2. Digite: meiro programa 1 #limpa disp(*Rodando programa ...'); (‘Qual o valor final de x desejado?"); xe0:n; yax. 92 plot (x,y)i pause (2) xlabel ("x"); ylabel ("y"); 3. Salve 0 programa com o nome “prog1”; 4. Va a rea de trabalho do MATLAB e digite “prog!” (sao) A(s) primeira(s) linha(s) comentada(s) existente(s) no arquivo exibida(s) caso 0 usuério utilize 0 comando help + nome do arquivo. Ou seja: >> help progl imeiro programa 10. Utilizando comandos de fluxo e operadores légicos 10.1. Utilizando a fungaéo for Os loops for possibilitam que uma série de comandos seja repetida por um numero de vezes fixo e predefinido, Vale ressaltar que o comando for nao pode ser encerrado atribuindo-se valores ao contador (no exemplo ‘n’) dentro do loop. Exemplo: 1. Abra um arquivo novo tipo “m” 2. Digite: [icar aii n-1:10 x(a)=n/2; n=10; $ ao final do primeiro célculo de x n = valor maximo end 3. Salve o programa com 0 nome “prog2”; 4. Va rea de trabalho do MATLAB e digite “prog2” 5. Aresposta obtida sera’ 30 MATLAB ~ PEQ/COPPE/UFRI- Janciro de 2003, costal@peq.coppe.ufti.br Naturalmente, é possivel a utilizagdo de mais de uma estrutura for Exemplo: 1. Abra um arquivo novo tipo “m”; 2. Digite: 3. Salve o programa com o nome “prog3”; 4. VA a drea de trabalho do MATLAB e digite “prog3” 5. Aresposta obtida sera: [5 progs 4 5 26 8 23 13 34 20 a1 29 50 10.2. Utilizando a fungado while Os loops while executam um grupo de comandos um vezes. numero indefinido de 31 MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br Exemplo 1. Abra um arquivo novo tipo "m"; 2. Digite: ear ail 3. Salve o programa com o nome “prog”; 4, Va a rea de trabalho do MATLAB e digite “prog4”, 5. Aresposta obtida sera: 10.3. Utilizando a funcéo if-else-end Quando agdes devem ser executados condicionalmente, com base em um teste relacional, sao utilizados comandos utilizar varios comandos i f-e. Exemplo 1. Abra um arquivo novo tipo “m"; else Como no comando é possivel ‘end simultaneamente, 2. Digite clear all if ma cust: Brcusto; & esconto de 20% 3. Salve o programa com o nome “progs”; 4, Va rea de trabalho do MATLAB e digite “progS' 5. A resposta obtida sera: 32 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br Exemplo: 1. Abra um arquivo novo tipo “m"; 2. Digite: [ciear = if m=n10 disp('m 6 igual a 10"); elseif me20; ““disp('m 6 diferente de end disp('m é menor que 10"); 10); 3. Salve o programa com 0 nome “prog6”; 4. V&A rea de trabalho do MATLAB e digite “prog6' 5. Aresposta obtida sera: [Ss proge Observacdo importante: Como um programa desenvolvido para trabalhar com matrizes. Sendo assit mencionado anteriormente, o MATLAB é . quando se deseja um loop onde o objetivo é calcular uma expressdo diversas vezes, é mais eficiente trabalhar utilizando notagao matricial. 11, Resolvendo um sistema de equagées algébricas No MATLAB a funcdo utilizada para resolver sistemas de equagées algébricas nao lineares denominada “fsolve" e se localiza no toolbox de otimizagao. Para maiores detalhes a respeito desta fungao, sugere-se consultar o help digitando “help fsolve” na pagina principal do MATLAB. © método padrao, utilizado para resolugao do sistema pelo comando “fsolve", é 0 Gauss-Newton com um método misto (quadratico e ctibico) de busca em linha, Caso o usuério prefira, pode ser utilizado o método de Levenberg-Marquardt em alternativa ao 33 MATLAB ~ PEQ/COPPE/UFRI- Janciro de 2003, costat@peq.coppe.ufti.br Gauss-Newton, Exemplo Considere 0 sistema de equag6es algébricas ndo lineares apresentado pela equagao 1.11 2x) -x)-e%l 1% (14.4) mxpt2xg E72 = 0 Para resolver este sistema no MATLAB, realize as seguintes tarefas: 4. abra um novo arquivo “m" e escreva: calm tie (1) - (2) ~emp (-¥ (2))7 Mx (1) +2*% (2) ~exp (=x (21) 7 2. salve 0 arquivo como “funt"; 3. abra um segundo arquivo “m’ e escreva: clear all x0=(-5 -517 8 es niciais para x(1) © x(2) options (1}=1; $ para mostrar detalkes sobre 0 célculo que seré realizado xefsolve("funl',x0,options) % chamada da retina que resolve © sistena 4. salve este segundo arquivo como ‘teste’ 5. va a drea de trabalho do MATLAB e digite “teste1”. O programa retornard o seguinte resultado: RESID GRAD/SD 3 47071.2 1 -9.dle+004 8 966.828 -1.81e+003 15 1.9946 5.6 20 0.00063205 -0.086 25 1,39647e-015, -1,898-008 Terminated Successfull 0.5671 0.867 12. Resolvendo um sistema de equacées diferenciais © MATLAB possui diversas fungées destinadas a resolugdo de sistemas de equagées diferenciais ordindrias. Nesta apostila utllizaremos a fungdo “ode23". Para maiores detalhes a respeito destas fungSes, sugere-se consultar 0 help digitando “help 34 MATLAB ~ PEQ/COPPE/UFRI- Janciro de 2003, costat@peq.coppe.ufti.br ode23" na area de trabalho do MATLAB. © método padrdo utilizado para resolugao do sistema de equagées diferenciais pelo comando “ode23" é o Runge Kutta Exemplo Considere 0 sistema de equagées diferenciais apresentado por Simmons (1988) e deserito pela equagao 12.1 é Boeiay at (12.4) Yogxary at Assuma as condigées iniciais apresentadas pela equagéo (12.2): t=0 x=2 0 y=3 (12.2) Para resolver este sistema no MATLAB, realize as seguintes tarefas: 1. abra um novo arquivo “m" e escreva: function [dy]=fun2(t, (yay a) 42ey (297 y(2)=3¥y (1) +2" y (2) dy (1) say (2)1 2. salve o arquivo como “fun2"; 3. abra um segundo arquivo “m” e escreva ear all yorl2 3. tspan=[0 na alo no qual sera realizada a integraco [de 0 & 1 [t, yl-ode23(" fun2", tspan, yo) 7 vais xe y'); tye) ylabel ("var legend ({"x(t) salve este segundo arquivo como “teste2”; 5. va & rea de trabalho do MATLAB e digite “teste2". O programa retornaré como resultado um grafico apresentando a evolugao das fungées x(t) e y(t) de 0a 1. De acordo com Simmons (1988) o sistema apresentado pela equacdo 2 possui a solugao analitica descrita pela equago 12.3. Esta solugao confere com a solugdo numérica apresentada pelo programa, 35 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br x=2-ett ye" (12.3) SIMMONS, G. F., Célculo com Geometria Analitica, Vol. 2, 1* ed. So Paulo,McGraw-Hil, 1988 13. Como saber mais sobre o MATLAB? © MATLAB possui uma biblioteca com varios arquivos tipo pdf. Cada um destes arquivos diz respeito a um foolbox do MATLAB. A seguir é apresentada uma listagem com a indicagao de qual arquivo deve ser consultado pelo usuario, se o mesmo necessitar aprofundar seus conhecimentos sobre os tdpicos apresentados nesta apostila. Além disso, buscou-se adicionar alguns assuntos de interesse para engenheiros quimicos que nao sao tratados neste material. Parte da literatura citada foi utilizada para a confecgao desta apostila. Tabela 13.1: Arquivos pdf recomendados. Assunto Arquivo pat ‘Comandos basicos de utiizagao, descrigao do__getstartpdf The Language of Technical Computing, programa Getting Started with MATLAB, 496 paginas, 6° versio, 2000 Tratamento estatistico de dados (regress ao Statistics Toolbox, linear, ANOVA, regressao nao linear, matriz de stats_th-pd 560 paginas, 3° versio, 2000 correlagao, planejamento fatorial, PCA) Controle de processos Controle preditivo de processos Resolugao de sistemas de equagies diferenciais parciais Redes neuronals Identiicagao de processos (modelos ARX, ARMAX,) otimizagao Utizagao simultanea do Excel e do MATLAB, usingcontrol pdf Control System Toolbox, 591 paginas, 1" versdo, 2000 mpe.paf Model Predictive Control Toolbox, 250 paginas, 1" versio, 1998 pde.pdf Partial Differential Equation Toolbox, 284 paginas, 1997 nnet.pdf Neural Networks Toolbox, 846 paginas, 4° vesdo, 2000 ident pdf ‘System Identifcation Toolbox, 368 paginas.5° versdo, 2000 optim_tb.pdf ‘Optimization Toolbox, 330 paginas, 2" versao, 2000 exlink pdf Excel Link 74 paginas, versao 1.1.2, 1999 36 MATLAB — PEQ/COPPE/UFRI- Janeiro de 2003, costal@peq.coppe.ufri.br Exercicios Série A 1) Considere os resultados experimentais apresentados na Tabela A: Tabela A: Resultados experimentais. Experimento Concentragées: Cae Cb 05 08 2 0,4 0,75 1.1) armazene os dados da Tabela A em uma matriz bidimensional; 1.2) _ armazene os dados da Tabela A em uma matriz multidimensional. 2) Crie uma matriz de dimensao 4x4 © a chame de A. (Sugestdo: crie uma matriz com nimeros aleatérios.) 1.1) apague a 2° linha de A; 1.2) apague a 3° coluna de A. Série B Represente graficamente as seguintes fungdes: 1. 22429 onde -10< x <10, -10¢ y <10 2. z= x8 +2y' + S.xsen(y) onde ~10< x <10, 10 y <10 Série C Considere 0 seguinte problema Uma indiistria produtora de aluminio deseja conhecer a influéncia das variéveis razo Al,Ox/NaOH e temperatura de reagdo sobre o teor de Na,O presente na alumina. Utilizando os dados operacionais disponiveis na Tabela C proponha um modelo linear que descreva 0 processo. 37 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br Tabela C: Dados operacionais. Teor de NaaO (oy Este problema é originalmente apresentado por: WERKEMA, M. C. C., AGUIAR, S., Andlise de Regressdo: Como entender o relacionamento entre as variaveis de um processo, 1° ed, Belo Horizonte, Fundagao Christiano Otto problema original. 1996, Nesta apostila ¢ utiizada uma versao simplificada do Série D Considere 0 reator bioquimico descrito na Figura D, onde x; representa a biomassa presente no reator € x2 0 substrato. O reator possui um volume constante (V.) uma vez que as vazbes de alimentagdo e de salda so iguais (F). A corrente de alimentag&o possui concentragéo de substrato igual a xa e uma concentragéo de biomassa igual a zero. Fy x2 X1, Xe F, x1, x2 Ve Figura D: Representagao esquematica do reator bioquimico. Bequette (1998) propde o modelo descrito pela equagdo (D.1) para o proceso, 38 MATLAB ~ PEQICOPPE/UFRI- Janeiro de 2003 costa@peq.coppe.utti.br (0.1) onde Y é a relacdo constante entre as taxas de geragdo de biomassa e o consumo de substrato e 1 6 0 coeficiente de taxa de crescimento descrito pela equagao (D.2). Himax *X: He 2 (0.2) Km +X +ky x3 Descreva 0 comportamento das concentragées de biomassa e de substrato considerando um tempo de integrago de 30 horas (O

Você também pode gostar