Mini Curso Matlab - SL

63
1 Ministério da Educação Universidade Tecnológica Federal do Paraná Engenharia Elétrica UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PR AUTORES: DIEGO DIAS PINHEIRO E FILLIPE LUCCHIN PAUKNER ORIENTAÇÃO: PROF. DR. JEAN PATRIC DA COSTA PATO BRANCO, JULHO 2014.

description

mini curso

Transcript of Mini Curso Matlab - SL

1 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR AUTORES: DIEGO DIAS PINHEIRO E FILLIPE LUCCHIN PAUKNER ORIENTAO: PROF. DR. JEAN PATRIC DA COSTA PATO BRANCO, JULHO 2014. 2 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR SUMRIO 1.INTRODUO ...................................................................................................... 4 2.INICIALIZANDO O AMBIENTE MATLAB ............................................................. 6 3.CONCEITOS E COMANDOS FUNDAMENTAIS NO MATLAB ............................ 8 3.1 Operaes Matemticas, Relacionais e Expresses Lgicas .......................... 10 3.2 Calculadora Cientfica ...................................................................................... 12 3.3 Formatos Numricos........................................................................................ 13 3.4 Funes Matemticas ...................................................................................... 14 4.VETORES.... ....................................................................................................... 18 4.1 Criando Vetores com Elementos Espaados de um Fator Constante ............. 19 4.2 Criando Vetores Especificando o Primeiro e ltimo Termo; e em Seguida o Nmero de Termos. ............................................................................................... 20 4.3 Referncia a um Elemento do Vetor ................................................................ 21 4.3.1 Dois Pontos (:) Referenciando Elementos de Vetor .................................. 22 4.4 Adicionando Elementos AO Vetor ................................................................... 23 5. MATRIZES....... ..................................................................................................... 25 5.1 Referncia a um Elemento da Matriz ............................................................... 26 5.1.1 Dois pontos (:) Referenciando elementos da matriz.................................. 27 5.2 Adicionando Elementos a uma Matriz.............................................................. 28 5.3 Eliminando Termos de uma Matriz .................................................................. 29 5.4 Matrizes Elementares ...................................................................................... 29 5.5 Operaes Bsicas com Matrizes ................................................................... 30 5.5.1 Adio e Subtrao ................................................................................... 31 5.5.2 Multiplicao ............................................................................................. 32 3 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.5.3 Transposta ................................................................................................ 35 5.5.4 Inversa ...................................................................................................... 36 5.5.5 Exponenciao .......................................................................................... 36 5.5.6 Determinante ............................................................................................. 37 5.6 Funes Nativas do Matlab com Vetores ........................................................ 39 6.POLINMIOS.. ....................................................................................................... 44 6.1 Anlise Polinomial ........................................................................................... 44 6.1.1 Comando Polyval ...................................................................................... 45 6.1.3 Multiplicao de Polinmios ...................................................................... 46 6.1.4 Diviso de Polinmios ............................................................................... 46 6.1.5 Razes do Polinmio ................................................................................. 47 6.1.6 Calculo ...................................................................................................... 48 7.GRFICOS... ...................................................................................................... 50 7.1Comando - PLOT ......................................................................................... 50 7.1.1Comando Subplot .................................................................................. 54 7.2Comando POLAR......................................................................................... 56 7.3Histogramas ................................................................................................. 57 8.PROGRAMAO .M .......................................................................................... 58 8.1Algoritmos .m ............................................................................................... 58 8.2Funo Disp e Fprintf ................................................................................... 61 4 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 1.INTRODUO OMATLAB(MatrixLaboratory),foicriadoem1970porCleveMolerna UniversidadedoNovoMxico,comointuitodeforneceraosseusalunosde matemtica,asbibliotecasdeclculonumricoporeledesenvolvidasutilizandoo fortran.Deumsoftwaredelaboratriodematrizes,tornou-seumsoftwarede computaonumrica,deanliseedevisualizaodedados,podendofuncionar como uma calculadora ou como uma linguagem de programao cientfica.Em ambientes universitrios, o MATLAB converteu-se em uma ferramenta bsicaparaprofessoresealunos,tornando-seumricoapoioemdisciplinascomo lgebralinear,sistemaslineares,sistemasdecontrole,processamentodesinais, entre outras disciplinas que compem as grades curriculares de variados cursos de graduao.OMATLABpossuiumambientedesimulaodeaplicaestotalmente orientadoparaoperaesqueimpliquememclculosmatemticoscomplexoscom sua visualizao grfica. possvel desfrutar da anlise numrica, clculo matricial e processamento de sinais em um meio onde as solues dos problemas matemticos so propostos de forma clara e objetiva, sem necessidade de fazer uso de tcnicas de programao avanada. Almdisso,nestepoderososoftwaredispem-setambmdeumamplo conjuntodeprogramasdeapoioespecializado,denominadosToolboxes,que otimizamotemponecessriopararealizarrotinas,umavezqueousuriopoder utilizar funes pr-definidas. Estes Toolboxes cobrem praticamente todas as reas principaisnouniversodaengenharia,destacando-seentreelasatoolboxde processamentodeimagens,sinais,controlerobusto,estatstica,anlisefinanceira, clculo matemtico simblico, redes neurais, lgica fuzzy, identificao de sistemas, simulao de sistemas dinmicos, entre outros. OMATLABainda trabalhacomouminterpretador decdigo, de maneira quenonecessriocompilaroscdigosdesenvolvidosparaele,osquaisso executados em a medida que so lidos pelo programa. 5 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR PROPSITO DA APOSTILA AUTFPRdispedelicenasinstitucionaisutilizadasparaoensinoem diferentesdisciplinasdoscursosdegraduaoeps-graduao.Aversodo MATLABabordadaaquinessaapostilaa2013a.Porm,versesanteriores possuemtambmasferramentasnecessriasparaosestudosabordadosnessa apostila. O softwareMATLAB um programaabrangente. Por esse motivo, invivel abordartodasasparticularidadesemumsmaterial.Opropsitodessaapostila primeiramenteapresentarosfundamentosbsicosdoMATLAB.Umavez consolidadoessesfundamentos,osestudantesserocapazesdeaprofundarem tpicos mais avanados, muitas vezes recorrendo apenas ao menu Help do prprio MATLAB. Os principais objetivos dessa apostila so tambm impulsionar e fundamentar os estudos da ferramenta MATLAB, a partir de noes bsicas. Bom Estudo! Estematerialtrata-sedeumaApostila IntroduoaoMATLAB,elaborado pelo acadmico de engenharia eltrica DiegoDiasPinheiroemsuaprimeira verso,atualizadopelomestrandoem EngenhariaEltricaFillipeLucchin Paukner erevisado pelo Prof. Dr. Jean Patric da Costa. 6 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 2.INICIALIZANDO O AMBIENTE MATLAB UmavezinicializadooMATLAB,aparecerajanelaprincipal,composta dequatropequenasjanelas:CommandWindow,CurrentFolder,Workspace, Command History. Esse o modo de abertura padro (default) do Matlab. A verso do software utilizada para a elaborao da apostila o Matlab2013a, portanto, para terocontroledajanelaprincipal,bastaprocurarnabarradeferramentaspor EnvironmentLayoutShowemarcaroudesmarcarasopes.Afigura1 apresenta as quatro principais janelas de inicializao. Figura 1 - Janela Inicial do MATLAB. CommandWindow:AprincipaljaneladoMATLAB.ativadasemprequeo software inicializado. Nesta janela, o prompt padro(>>) exibido na tela e, a partir deste ponto, o MATLAB espera as instrues do usurio. 7 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Current Folder: Exibe os arquivos presentes no diretrio ou na pasta desejada; Workspace: Disponibiliza informaes sobre as variveis e dados em uso; Command History: Apresenta o histrico dos comandos mais recentes digitados najanelaCommandWindow.Podesertilquandoprecisorepetiruma sequnciadecomandosoulocalizarumasintaxedecomandousada anteriormente. OutrajanelaimportanteoEditorM-files,nabarradeMenus acessando New Script. Muitas vezes, tentar resolver um determinado problema no MATLAB digitando muitos comandos seguidos demasiadamente trabalhoso. E na janela Command Window cada vez que a tecla Enter pressionada, o comando digitado executado. Dessa maneira, caso deseje-se digitar comandos variados no CommandWindownecessrioutilizarocomandoShiftEnter.Seforem necessriasmodificaesoucorreesemumdeterminadocomandodasrie executadaeosresultadosgeradosporelesafetaremcomandosemumacerta sequnciaencadeada,todaasequnciadecomandodeveserselecionadae executadanovamentenalinhadopromptdajanelaCommandWindow,isto,um comando de srie deve ser chamado e executado outra vez.UmaformadiferentedeexecutaroalgoritmonoMATLABcriandoum arquivocomumalistadecomandos,salv-lae,ento,rodaroarquivo.Quandoo arquivoexecutado,alistadecomandovaisendoprocessadanaordememque est listada no arquivo. Caso seja necessrio realizar alguma modificao na lista de comandos, basta modificar o algoritmo, salv-lo e executar novamente. Os arquivos criadoscomessepropsitosodenominadosrotinas,M-filesouscriptfiles.Na sequnciaserorealizadasalgumasrotinas,paramelhorentendimentodo funcionamento do software. A figura 2 apresenta a janela Editor, onde os scripts M-files so gerados. 8 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Figura 2 - Janela Editor. 3.CONCEITOS E COMANDOS FUNDAMENTAIS NO MATLAB Observaes quando ao uso da janela Command Window: Para digitar um comando, o cursor deve ser posicionado junto aoprompt de comando (>>). ParaqueocomandosejaexecutadobastarapertarateclaEnter,mas apenas o ltimo comando ser executado.Vrios comandos podem ser digitados na mesma linha, para realizar esse feito, basta separ-los por vrgulas. Quando a tecla Enter for pressionada, os comandos so executados, sucessivamente da esquerda para direita. Oscomandosaindapodemserdigitadosemlinhaseparadasdesdeque separados pelo comando Shift Enter. 9 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Os comandos digitados so armazenados em um buffer de comandos, no qualpode-senavegarusandoasteclasseta-para-cimaeseta-para-baixo . Os comandos terminados com ponto e vrgula ; no exibem as variveis derespostanatela.Essecomandotilquandoaimpressodo resultadonatelanointeressa,ouquando aimpressomuitoextensa como,porexemplo,umamatriz100x100.Apesardaimpressoser suspensa, o comando executado pelo programa.Deve-se tomar cuidado com as declaraes de variveis, as quais devem seriniciadascomletrasenopodemconterespaosoucaracteresde pontuao. O mesmo tambm faz a distino entre as letras minsculas e maisculas (case-sensitive). Asvariveispodemserredefinidasaqualquermomento,bastando apenasatribu-lasumnovovalor.Asmesmaspodemserexcludasdo espao de trabalho usando o comando clear, Por exemplo: clear nome_da_varivel Exclui somente a varivel especificada; clear ou clear all Exclui todas as variveis do espao de trabalho; clc Limpa a tela Command Window. Oscomandosdeajudasomuitoteis,atparaosusuriosmais experientes,poisessescomandosensinamcomoutilizardeterminadas funes ou comandos, Por exemplo: helpaformamaissimplesdeconseguirajudacasovocsaiba exatamente o tpico a respeito do qual necessita de informaes. lookfor Fornece ajuda fazendo uma busca em toda a primeira linha dos tpicosdeajudaeretornandoaquelesquecontmaspalavras-chaves quevocespecificou.Omaisimportantequeapalavra-chaveno precisa ser um comando no MALTAB. 10 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 3.1 OPERAES MATEMTICAS, RELACIONAIS E EXPRESSES LGICAS NoMATLABasexpressesseguemaordemmatemtica potenciao, seguida damultiplicao ou diviso, que por sua vez so seguidas pelasoperaesdeadioousubtrao.Osparntesespodemserusadospara alterar esta ordem. Neste caso, os parnteses mais internos so avaliados antes dos mais externos. A tabela 1 apresenta as operaes bsicas. Tabela 1 - Operaes Bsicas. OPERAO SMBOLO EXEMPLO Adio+3+1 Subtrao-32 Diviso/4/2 Multiplicao*3*3 Potenciao^3^3 Notequeoespaonalinhadecomandonoconsideradodurantea execuo do algoritmo. Umaexpressosedizlgicaseosoperadoressolgicoseos operandossorelaesouvariveisdotipolgico.Osoperadoresrelacionais realizamcomparaesentrevaloresdomesmotipo.Osoperadoresrelacionais utilizados pelo MATLAB so apresentados na tabela 2. Tabela 2 Operaes Relacionais. Operador RelacionalDescrio >Maior que >=Maior Igual a 7 >= 3 ans = 1 >> 2==1 ans = 0 12 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 3.2 CALCULADORA CIENTFICA AprimeiraformadeseutilizaroMATLABouamaneiramaissimples comocalculadoracientfica,atravsdadigitaodecomandosdiretamentenoseu promptdajanelaCommandWindowepressionandoateclaEnter.OMATLAB calcula as expresses emite uma resposta ans e exibe o resultado numrico na linha seguinte.Noquadro1sodemonstradosalgunsexemplos,decomoutilizaro MATLAB como calculadora. >> 3+6/3 ans = 5 >> (7+3)/2 ans = 5 >> 2^3/4 ans = 2 >> 3^(1/2)+2^0.8 ans = 3.4732 >> 3^1/2+2^0.8 ans = 3.2411 Quadro 1 Calculadora Cientfica 13 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Nota-se que o resultado da operao no MATLAB foi atribudo varivel ans.possvelatribuirnomesaessaauxiliar,oquadro2apresentacomo realizado a atribuio de valores a variveis. Quadro 2 Calculadora Cientfica 3.3 FORMATOS NUMRICOS possvel controlar o formato segundo o qual o MATLAB exibe os dados na tela. Caso nenhum formato esteja definido, se o resultado for um nmero inteiro, sermostradooprprio.Quandoumresultadoumnmeroreal,oprograma mostraoresultadocomumaaproximaodeatquatrocasasdecimais.Seos dgitossignificativosestiveremforadestafaixa,serapresentadooresultadoem formadenotaocientfica.Porm,pode-sepr-definirumformatodiferente utilizando os seguintes comandos, apresentado na tabela 4. Tabela 4 - Formatos Padronizados ComandoDescrio format short4dgitosdecimais(formato default) Ex: 23.2000 format long16 dgitos decimais >> a = 4, b=5, c = 7, d = 2 a = 4 b = 5 c = 7 >> resultado = (a+b+c)/3 resultado = 5.3333 14 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Ex: 23.2000000000000000 format short e5 dgitos mais expoente Ex: 2.3200e+1 format long e16 dgitos mais expoente Ex: 2.320000000000000e+1 format ratExibe no formato Racional Ex: 116/5 format bank 2 dgitos decimaisEx: 23.20 3.4 FUNES MATEMTICAS OMATLABpossuiumabibliotecaimensadefunes.Umafuno caracterizadaporumnomeeumargumentoentreparnteses.Porexemplo,a funo que calcula o valor absoluto de um varivel abs(a). O nome da funo abs eoargumentoa.Funestambmpodemserincludasnoargumentodeoutras funes, assim como em expresses.Atabela5apresentaumalistadefuneselementares,mostrandoao lado como utilizar essas funes. Tabela 5 - Funes Matemticas. FunoDescrioExemplo abs(x)Valorabsolutooumdulodeum nmero complexo >> y = abs(-12) y = 12 cos(x)Cosseno do argumento x >> y = cos(pi/4) y = 0.7071 acos(x) Arco cosseno>> y = acos(2/3) y = 0.8411 15 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR sin(x)Seno do argumento x>> y = sin(pi/3) y = 0.8660 asin(x)Arco Seno >> y = asin(1/3) y = 0.3398 tan(x)Tangente do argumento x >> y = tan(pi/4) y = 1.0000 atan(x)Arco Tangente>> y = atan(5/8) y = 0.5586 exp(x)Exponenciale x constante matemtica neperiana >> y = exp(3) y = 20.0855 20.0855 angle(x)ngulo de um nmero complexo>> x = 2+3i; >> y = angle(y) y = 0.9828 real(x)Parte real de um nmero complexo>> y = real(x) y = 2 imag(x)Parteimaginriadeumnmero complexo >> y = imag(x) y = 3 conj(x)Conjugado Complexo>> y = conj(x) y = 2.0000 - 3.0000i log(x)Logaritmo natural >> y =log(3) 16 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR y = 1.0986 log10(x)Logaritmo na base 10>> y =log10(5) y = 0.6990 sqrt(x)Raiz quadrada de x>> y = sqrt(18) y = 4.2426 lcm(x,y)Mnimo mltiplo comum de x e y>> x = 4, y = 18; >> z = lcm(x,y) z = 36 gcd(x,y)Mximo divisor comum de x e y>> x = 4, y = 18; >> z = gcd(x,y)z = 2 Porfim,observa-seaindaqueoMATLAButilizaopontoparacasa decimaleavrgulaficareservadaparafunesespeciais.Comoporexemplo definio de vetores. importantesalientarqueoMATLABcalculaasfunessin,cosetan paravariveisemradianos.Casoqueirautilizarngulosemgraus,deve-seutilizar as funes sind, cosd, tand, ou os arcos asind, acosd e atand. Com base no que foi apresentado at ento, tem-se o seguinte exemplo a ser resolvido: Exemplo de Aplicaes no Matlab 1. Um determinado objeto que est submetido a uma temperatura inicialT0 colocado noinstantedet=0,dentrodeumcongeladortemperaturaconstanteTs.A variao de temperatura do objeto determinado pela seguinte lei:

17 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR OndeTatemperaturadoobjetoemumtempotqualquerekumaconstante. Com base nas informaes, considere uma lata de refrigerante na qual encontra-se aumatemperaturade39,7C.Emseguida,colocadadentrodeumcongelador ondeatemperatura2,7C.DetermineatemperaturadalataemgrausCelsius,4 horas aps a lata ser colocada no congelador. Considere a constante k = 0,35. Teste Resolva os problemas a seguir utilizando a janela Command Window. 1. Calcule: a)

; b)

c)

2.Declareasvariveisxezcomox=3.1ez=8.Determineovalorda expresso: a)

3. No tringulo retngulo mostrado na figura 3, a = 10cm e c = 4cm. Determine o valordocatetoadjacentebutilizandooTeoremadePitgoraseemseguida determine o ngulo em graus.Dica: Declare as variveis inicialmente. ac >> T0 = 39.7; k = 0.35; t = 4; Ts = 2.7; >> T = Ts + (T0 - Ts)*exp(-k*t) T = 11.8241 b 18 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 4. A distncia d de um ponto (x0,y0) funo da reta expressa por Ax+By+C = 0 dada por:

Determine a distncia do ponto(3,-2) reta 2x + 5y 8 = 0.Dica: Declare as variveis A,B,C,x0,y0, na sequncia calcule d. 5.AintensidadeMdeumterremotonaescalaRichterdadapelaseguinte equao:

.OndeEaenergialiberadapelotremoreE0=104,4 Joulesumaconstante(energialiberadaemumtremordeterradereferncia). Determinequantasvezesaenergialiberadaemumterremotode7.2naescala Richter maior do que um terremoto 5.3 nessa mesma escala. 4.VETORESOMATLABinicialmentetinhacomopropsitodetrabalharcom manipulaes de matrizes, sendo esta a essncia dosoftware. Observa-se que um escalarumamatrizdedimenso1x1equeumvetorumamatrizquepossui somente uma linha ou uma coluna. A maneira mais fcil de introduzir pequenas matrizes no MATLAB uma listaexplcita.Paracriarumavarivelondearmazenadaumamatriz,basta escrever os elementos da matriz entre colchetes, onde os elementos de uma mesma linha da matriz separados por vrgula ou espao e as colunas separadas por ponto e vrgulas. Qualquer lista de nmeros pode ser tratada como um vetor. Por exemplo, a tabela 6 apresenta o crescimento populacional que podem ser utilizados para criar duas listas de nmeros: uma referente a anos e outra da populao. Cada lista pode serconsideradascomosendoconstitudasdeentradas,elementosdeumvetor, organizados em linha ou coluna. 19 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Tabela 6 - Crescimento Populacional. Ano1984198619881990199219941996 Populao (milhes) 127130136145158178221 O quadro 3 apresenta a criao dos vetores da tabela 6 no MATLAB. Eparadeclararumamatriznosoftware,segueamesmaideiados vetores,pormo;indicaaprximalinha.Porexemplo,oquadro4ilustracomo armazenar a matriz K.

4.1CRIANDOVETORESCOMELEMENTOSESPAADOSDEUMFATOR CONSTANTE Os vetores acima tiveram seus elementos definidos um a um. No entanto vetorespodemserconstitudosespecificando-sevaloresiniciais,incrementose finais, o quadro 5 apresenta este modo, onde foi definido um vetor A variando de 2 a 7 (de um em um) e outro indo de 0 a 15, mas de trs em trs. >> K = [1 2 3;4 5 6] K = 1 2 3 4 5 6 Quadro 4 Criando uma Matriz >> Ano = [1984 1986 1988 1990 1992 1994 1996]; >> Populacao = [127 130 136 145 158 178 221]; Quadro 3 Criando Vetores 20 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Portanto,pode-sedefinirumvetorutilizandoapenasovalordoprimeiro termo,oespaamentoentrecadatermoeovalordoltimotermo,bastandopara isso, separ-los por dois pontos ':' . 4.2 CRIANDO VETORES ESPECIFICANDO O PRIMEIRO E LTIMO TERMO; E EM SEGUIDA O NMERO DE TERMOS.Um vetor cujo o primeiro elemento i, o ltimo elemento f e o nmero de elementos n, pode ser criado por meio do comando linspace(i,f,n) (O MATLAB determina o incremento/decremento correto). Alguns exemplos so apresentados no quadro 6.

Ocomandolinspacesemoltimoelementoforneceumvetorde100 elementoscomopadro.Otamanhodovetorpodeserverificadocomocomando length, como no exemplo abaixo: >> A = 2:7, B = 0:3:15 A = 2 3 4 5 6 7 B = 0 3 6 91215 Quadro 5 Vetores >> V = linspace(1,38,7) V = 1.00007.1667 13.3333 19.5000 25.6667 31.8333 38.0000 >> W = linspace(3,0.1,5) W = 3.00002.27501.55000.82500.1000 Quadro 6 Comando linspace 21 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR De maneira similar o comandologspace(i,j,n) fornece n elementos entre 10i e 10j. A ausncia do terceiro argumento, n, fornece 50 elementos entre 10i e 10j. 4.3 REFERNCIA A UM ELEMENTO DO VETOR Elementosemumvetorpodemserreferenciados(endereados) individualmenteou emsubgrupos,isto,tilquandonecessrio redefinirapenas umdoselementosougrupodeelementosdeumvetorouusarovalordeum elementoespecficoemclculos,ouainda,quandoelementosemsubgruposso usados para redefinir uma nova varivel. Realizar referncia a um elemento de um vetor indicar a posio que ele ocupa na linha ou coluna desse vetor. Para um vetor x, x(k) referencia o elemento na posiok.Aprimeiraposio,maisesquerdadovetor,anmero1.Por exemplo, se o vetor x possui cinco elementos: [x] = 12 32 45 67 19 Ento, x(2) = 32, x(5) = 19 e x(1) = 12. Um nico elemento do vetor, x(k) pode ser usado como uma varivel. Por exemplo, possvel mudar ovalor desse elemento atribuindo-lhe um novo valor na posiodesejada.Pararealizaressefeito,bastadigitarx(k)=novovalor.Alguns exemplos: >> c = linspace(1,10); >> comprimento_do_vetor = length(c) comprimento_do_vetor = 100 22 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 4.3.1 Dois Pontos (:) Referenciando Elementos de Vetor possvel referenciar uma faixa de elementos dentro de um vetor, isso realizado atravs do comando :. Para um vetor a(:) Referencia todos os elementos do vetor a (na linha ou coluna do vetor). a(x:y) Referencia os elementos entre as posies x e y do vetor a. Exemplo: >> y = [3 21 62 12 78 56 48 99] y = 321621278564899 >> y(4) ans = 12 >> y(7) ans = 48 >> z = y(1)+y(8) z = 102 >> w = sqrt(y(3))+y(1)^3-y(2) w = 13.8740 >> a = [1 4 -9 23 24 7] a = 1 4-92324 7 >> b = a(2:5) b = 4-92324 23 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 4.4 ADICIONANDO ELEMENTOS AO VETOR Oselementospodemseradicionadosatribuindo-sevaloresaosnovos elementosdovetor.Porexemplo,seumvetorpossui6elementos,pode-se aumenta-loatribuindo valoresaoselementos7,8,eassimpordiante.Seumvetor possui n elementos e um novo valor atribudo ao elemento cuja a referncia n+4 oumaior,oMATLAB,encarrega-sedeatribuirzerosaoselementosposicionados entre o ltimo elemento original e o novo elemento terminal do vetor. Exemplos: Funo Descrio Exemplo mean(A)Se A um vetor, retorna o valor mdio dos elementos do vetor >> A = [1 4 3 8 5] A = 1 4 3 8 5 >> mean(A) >> v = [1 5 3 -9 5] v = 1 5 3-9 5 >> v(6:12) = linspace(8,20,7) v = 1 5 3-9 5 8101214161820 >> w = [ 2 5 3 7] w = 2 5 3 7 >> w(6) = 99 w = 2 5 3 7 099 >> q (4) = -0.9 q = 0 0 0 -0.9000 24 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR ans = 4.2000 B = max(A) [d,n] = max(A) SeAumvetor,Brecebero maiorelementodeA.SeA umamatriz,Bumvetorlinha contentoomaiorelementoem cada coluna de A SeAumvetor,drecebeo maiorelementodeAenindica aposiodesseelementono vetor. >> A = [1 4 3 -11 9 8 51] A = 1 4 3 -11 9 851>> B = max(A) B = 51 >> [d,n] = max(A) d = 51 n = 7 C = min(A) [d,n] = min(A) Semelhantefunomax(A), masretornaomenorelemento de A Semelhante a [d,n] = max(A) Para o menor elemento de A. >> A = [-11 4 0 8] A = -11 4 0 8 >> B = min(A) B = -11 >> [d,n] = min(A) d = -11 n = 1 sum(A)Se A um vetor, retorna a soma dos elementos do vetor >> A = [1 2 3 4]; >> sum(A) ans = 10 sort(A)SeAumvetor,ordenaos elementosdeAnaordem >> A = [ 3 2 1 7 6] A = 25 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR crescente3 2 1 7 6 >> sort(A) ans = 1 2 3 6 7 std(A)SeAumvetor,retornao desviopadrodoselementos do vetor >> A = [1 -3 4 5 2 -7] A = 1-3 4 5 2-7 >> std(A) ans = 4.5461 dot(a,b)Determinaoprodutoescalarde doisvetoresaeb.Osvetores podemsertantolinhaquanto coluna >> a = [1 3 4] a = 1 3 4> >> b = [5 8 1] b = 5 8 1 >> dot(a,b) ans = 33 cross(a,b)Determinaoprodutovetorialde doisvetoresaeb(axb).Os dois vetores devem possuir trs elementos. >> cross(a,b) ans = -2919-7 5. MATRIZES O conhecimento das tcnicas de manipulao de matrizes fundamental poisdadosimportadosparaoespaodetrabalhodoMATLABsotratadoscomo matrizes. Alm disso, exercem um papel importante na lgebra linear e so usadas na engenharia (e em outras cincias) para descrever muitas grandezas fsicas. 26 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Asentradasdeumamatrizpodemconternmerosouexpresses matemticas(formadasdenmeros,variveisdeclaradasefunes). necessariamenteimportantequetodasaslinhaspossuamamesma quantidadedeelementos.Casoumelementonalinhacontenhaovalorzero,ele deve ser digitado.Aslinhasdasmatrizestambmpodemserdefinidasatravsdos comandos utilizados anteriormente para se definir vetores linha. Por exemplo: 5.1 REFERNCIA A UM ELEMENTO DA MATRIZ Aposioderefernciadeumelementoemumamatrizdefinida especificando-se o nmero da linha e da coluna que o elemento ocupa. Declarando uma matriz qualquer N, sendo a mesma N(m,n) faz referncia ao elemento na linha m e na coluna n. Por exemplo, dada uma matriz:

Ento, N(2,3) = -0.9 e N(3,1) = 6. Assimcomonosvetores,possvelalterarovalordeapenasum elemento da matriz atribuindo-lhe um novo valor. A seguir, so apresentados alguns exemplos com a manipulao das posies dos elementos da matriz. >> A = [a-c, b*sqrt(c);sin(b/c) a^3/tan(a/b)] A = -7.8000 23.2164 0.5943 66.6158 >> A =[1:4;linspace(2,8,4);5:5:20] A = 1 2 3 4 2 4 6 8 5101520 27 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.1.1 Dois pontos (:) Referenciando elementos da matriz Para uma matriz: A(:,n) Referencia os elementos da matriz A em todas as linhas da coluna n. A(n,:) Referencia os elementos da matriz A em todas as colunas da linha n. A(m:n,:) Referencia os elementos da matriz A em todas as colunas entre as linhas m e n. A(:,m:n) Referencia os elementos da matriz A em todas as linhas entre as colunas m e n. A(m:n,k:l) Referencia os elementos da matriz A entre as linhas m e n e as colunas k e l. Exemplos: N = 4.24563.78873.27740.1592 4.67003.71570.85591.3846 3.39371.96113.53020.2309 >> M = N(3,4) M = 0.2309 >> O = N(3,3) - N(1,4) O = 3.3711 >> A = rand(4,6) A = 0.09710.95020.76550.44560.27600.1190 0.82350.03440.79520.64630.67970.4984 0.69480.43870.18690.70940.65510.9597 0.31710.38160.48980.75470.16260.3404 >> B = A(:,6) B = 0.1190 0.4984 0.9597 0.3404 28 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.2 ADICIONANDO ELEMENTOS A UMA MATRIZ Conformeovetor,linhasecolunaspodemserinseridasemumamatriz previamentedeclarada.Issofeitoatribuindosevaloresnovosaoselementos situados nas linhas e colunas da matriz. Exemplos: >> M = [ 1 3 4; 1 4 5] M = 1 3 4 1 4 5 >> M(3,:) = [ 2 6 9] M = 1 3 4 1 4 5 2 6 9 >> C = A(3,:) C = 0.69480.43870.18690.70940.65510.9597 >> D = A(1:2,:) D = 0.09710.95020.76550.44560.27600.1190 0.82350.03440.79520.64630.67970.4984 >> E= A(:,3:5) E = 0.76550.44560.2760 0.79520.64630.6797 0.18690.70940.6551 0.48980.75470.1626 >> F = A(3:4,1:2) F = 0.69480.4387 0.31710.3816 29 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.3 ELIMINANDO TERMOS DE UMA MATRIZ Um termo ou um grupo de elementos em uma varivel declarada pode(m) serapagada(s)atribuindovazioaesseelemento.Issofeitousando-secolchetes sem nenhum espao ou caractere entre eles. Apagando o(s) elemento(s) desejados. Exemplos: 5.4 MATRIZES ELEMENTARES Tabela 7 - Matrizes Elementares. Tipo de MatrizDescrioExemplo Matriz IdentidadeCriaumamatrizquadrada comnlinhasencolunas, cujoselementosda diagonalprincipalso iguais a 1 e os demais so 0 >> A = eye(3) A = 1 0 0 0 1 0 0 0 1 Matriz NulaCriaumamatrizmxn, cujos os elementos so os >> B = zeros(3,2) B = >> A = rand(2,3) A = 0.89090.54720.1493 0.95930.13860.2575 >> A(:,3) = [] A = 0.89090.5472 0.95930.1386 >> N(:,5) =[12 21] N = 1 3 4 512 5 4 3 121 30 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR nmeros 0.00 00 0 0 Matriz UnidadeCriaumamatrizmxn, cujos os elementos so os nmeros 1. >> c = ones(2,3) c = 1 1 1 1 1 1 Matriz AleatriaCria uma matriz com nmeros randmicos >> D = rand(2,3) D = 0.42180.79220.6557 0.91570.95950.0357 5.5 OPERAES BSICAS COM MATRIZES OMATLABcontmdoistiposdiferentesdeoperaesaritmticas.As operaesaritmticasmatriciaissodefinidaspelasregrasdelgebraLinear.As operaes aritmticas com arrays (conjuntos) so efetuadas elemento por elemento. Ocaracteredepontodecimal.distingueasoperaesmatriciaisdasoperaes com arrays. No entanto, como as operaes matriciais e com arrays so iguais para soma e para a subtrao, o par de caractere . + e . - no so utilizados para estas operaes.As operaes bsicas com matrizes no MATLAB so as seguintes: Adio; Subtrao; Multiplicao; Transposta; Inversa; Exponenciao; Determinante. 31 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.5.1 Adio e Subtrao Aadioeasubtraodematrizessoindicadas,respectivamente,por +e-.Assimcomonamatemtica,asoperaessodefinidasapenasseas matrizes apresentarem as mesmas dimenses n x n.Aadioeasubtraotambmsodefinidasseumdosoperadores for umescalar,ouseja,umamatriz1x1.Nestecaso,oescalaradicionadoou subtrado de todos os elementos do outro operador.Exemplos: 1)Operao de Matriz com Escalares 2)Operaes de Adio e Subtrao de Matrizes >> A A = 3.0000 -2.00005.6000 1.0000 21.00009.0000 >> B = A-2 B = 1.0000 -4.00003.6000 -1.0000 19.00007.0000 >> C = 3.3+A C = 6.30001.30008.9000 4.3000 24.3000 12.3000 >> A = [ 3 -2 5.6; 1 21 9] A = 3.0000 -2.00005.6000 1.0000 21.00009.0000 >> B = [1 3 -6;0.6 4 -31] B = 1.00003.0000 -6.0000 0.60004.0000-31.0000 32 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.5.2 Multiplicao A operao de multiplicao (*) executada no MATLAB de acordo com asregrasdelgebralinear,ouseja,seAeBsoduasmatrizes,aoperaoA*B tem sentido se, e somente se, o nmero de colunas da matriz A for igual ao nmero de linhas da matriz B. O resultado uma matriz que possui o nmero de linhas da matriz A com o nmero de colunas da matriz B.Dois vetores podem ser multiplicados um pelo outro apenas se possurem o mesmo nmero de elementos e se um dos vetores for um vetor linha e outrovetor coluna.Exemplos: 1)Operao com escalares >> A = [1 4;1 3.7;0.9 -1.2] A = 1.00004.0000 1.00003.7000 0.9000 -1.2000 >> B = pi*A B = 3.1416 12.5664 3.1416 11.6239 2.8274 -3.7699 >> C = A+B C = 4.00001.0000 -0.4000 1.6000 25.0000-22.0000 >> D = A-B D = 2.0000 -5.0000 11.6000 0.4000 17.0000 40.0000 33 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 2)Operao de Multiplicao de Matrizes >> A = [-1 5; 6 8; 9 1.8] A = -1.00005.0000 6.00008.0000 9.00001.8000 >> B = [0.6 3.5 7;-9 3 -12] B = 0.60003.50007.0000 -9.00003.0000-12.0000 >> C = A*B C = -45.6000 11.5000-67.0000 -68.4000 45.0000-54.0000 -10.8000 36.9000 41.4000 >> D = [1 2.8;5 7] D = 1.00002.8000 5.00007.0000 >> E = [3 1;4 9] E = 3 1 4 9 >> F = D*E F = 14.2000 26.2000 43.0000 68.0000 >> G = E*D G = 8.0000 15.4000 49.0000 74.2000 >> 34 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR OBS: O produto F = D*E no igual ao produto G = E*D. 3)Operao de Multiplicao de Matrizes Elemento a Elemento OBS: Este tipo de operao realizada utilizando- se um ponto (.) antes do operador de multiplicao(*). >> E = [3 1;4 9] E = 3 1 4 9 >> F = D*E F = 14.2000 26.2000 43.0000 68.0000 >> G = E*D G = 8.0000 15.4000 49.0000 74.2000 >> A = [1 2;2 1] A = 1 2 2 1 >> B = [2 3;3 2] B = 2 3 3 2 >> C= A.*B C = 2 6 6 2 35 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.5.3 Transposta DadaumamatrizAdeordemmxn,amatriztranspostaser representada por At de ordem n x m. Essa ordem invertida significa que para realizar a transformao de um matriz para uma matriz transposta, basta trocar os elementos das linhas pelo das colunas. Para obter a matriz transposta no MATLAB, basta utilizar o apstrofo , indicaatranspostadeumamatriz.CasoamatrizAforcomplexaaoperao, almderealizaratransposiotambmrealizaoconjugadodosnmeros complexos. Exemplos: >> A = [ 1 2 3;4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9 >> B = A' B = 1 4 7 2 5 8 3 6 9 >> C C = 1.0000 + 2.0000i 0.0000 + 1.0000i 3.0000 - 7.0000i-1.0000 + 1.0000i >> D = C' D = 1.0000 - 2.0000i 3.0000 + 7.0000i 0.0000 - 1.0000i-1.0000 - 1.0000i 36 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.5.4 Inversa UmamatrizBamatrizinversadamatrizAseoprodutodessasduas matrizes a matriz identidade (supondo que possvel multiplicar as duas matrizes). Ambasasmatrizesdevemserquadradase amultiplicaodevecomutar,isto,a ordem BA ou AB no importante. Obviamente, se B a inversa de A, naturalmente A ser inversa de B. NoMATLAB,ainversadeumamatrizpodeserobtidaelevandoa matriz potncia 1 ou utilizando a funo inv().Exemplo: 5.5.5 Exponenciao AexpressoA^nelevaAn-simapotnciaedefinidaseAmatriz quadradaenumescalar.Senuminteiromaiordoque1,aexponenciao executada como mltiplas multiplicaes. >> A = [3 -1;2 9] A = 3-1 2 9 >> B = A^-1 B = 0.31030.0345 -0.06900.1034 >> B = inv(A) B = 0.31030.0345 -0.06900.1034 37 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Aexponenciaoporelementoentrematrizesdefinidademaneira similar multiplicao por elemento, ou seja, A.^n = aij bij. 5.5.6 Determinante A determinante de uma matriz uma funo matricial, que associa a cada matriz quadrada a um escalar. Esta funo permite determinar se a matriz possui ou no inversa. Exemplo: >> A = [1 3;8 9] A = 1 3 8 9 >> B = A^7 B = 4389625 5665125 1510700019496625 >> B = A.^7 B = 12187 2097152 4782969 >> A = [ 1 23 8; 12 -9 0; 4 31 0.9] A = 1.0000 23.00008.0000 12.0000 -9.0000 0 4.0000 31.00000.9000 >> B = det(A) B = 3.0075e+03 38 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Exemplo de Aplicaes do Matlab 2. Usando operaes matriciais para resolver o seguinte sistema de equaes lineares. 2x - 7y + 8z= 11 3x + y 3z= 5 -8x + 9y z = 0 Utilizandoasregrasdelgebralinearmostradasanteriormente,osistemade equaes acima pode ser rescrito na forma matricial Ax = B:

>> A = [2 -7 8;3 1 -3;-8 9 -1] A = 2-7 8 3 1-3 -8 9-1 >> B = [11;5;0] B = 11 5 0 >> xyz = A\B xyz = 4.2727 4.2448 4.0210 >> xyz = inv(A)*B xyz = 4.2727 4.2448 4.0210 39 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 5.6 FUNES NATIVAS DO MATLAB COM VETORES FunoDescrioExemplo mean(A)Se A um vetor, retorna o valor mdio dos elementos do vetor >> A = [1 4 3 8 5] A = 1 4 3 8 5 >> mean(A) ans = 4.2000 B = max(A) [d,n] = max(A) SeAumvetor,Brecebero maiorelementodeA.SeA umamatriz,Bumvetorlinha contentoomaiorelementoem cada coluna de A SeAumvetor,drecebeo maiorelementodeAenindica aposiodesseelementono vetor. >> A = [1 4 3 -11 9 8 51] A = 1 4 3 -11 9 851>> B = max(A) B = 51 >> [d,n] = max(A) d = 51 n = 7 C = min(A) [d,n] = min(A) Semelhantefunomax(A), masretornaomenorelemento de A Semelhante a [d,n] = max(A) Para o menor elemento de A. >> A = [-11 4 0 8] A = -11 4 0 8 >> B = min(A) B = -11 >> [d,n] = min(A) d = -11 40 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR n =1 sum(A)Se A um vetor, retorna a soma dos elementos do vetor >> A = [1 2 3 4]; >> sum(A) ans = 10 sort(A)SeAumvetor,ordenaos elementosdeAnaordem crescente >> A = [ 3 2 1 7 6] A = 3 2 1 7 6 >> sort(A) ans = 1 2 3 6 7 std(A)SeAumvetor,retornao desviopadrodoselementos do vetor >> A = [1 -3 4 5 2 -7] A = 1-3 4 5 2-7 >> std(A) ans = 4.5461 dot(a,b)Determinaoprodutoescalarde doisvetoresaeb.Osvetores podemsertantolinhaquanto coluna >> a = [1 3 4] a = 1 3 4> >> b = [5 8 1] b = 5 8 1 >> dot(a,b) ans = 33 cross(a,b)Determinaoprodutovetorialde doisvetoresaeb(axb).Os dois vetores devem possuir trs >> cross(a,b) ans = -2919-7 41 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR elementos. Exemplo de Aplicao no MATLAB 3. A figura a seguir apresenta trs foras sendo aplicadas em um suporte. Determine a fora total (ou resultante) aplicada ao suporte. 3020143xyF2 = 500NF1 = 400NF3 = 700N Uma fora uma grande vetorial, ou seja, uma grandeza fsica que possui mdulodireoesentido.Nosistemadecoordenadascartesianas,umvetor bidimensional F pode ser escrito em suas componentes de acordo com:

Onde F o mdulo do vetor F; o ngulo medido relativamente ao eixo x, Fx e Fy so as componentes de F nas direes x e y, respectivamente; e i e j so osvetoresunitriosnasdireesxey,respectivamente.Sendoconhecidasas componentes Fx e Fy, pode se determinar F e .

42 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR A fora resultante aplicada ao suporte obtida adicionando-as foras individuais que agem sobre o suporte. A seguir, vejamos uma soluo do problema no MATLAB. >> F1 = 400;F2 = 500;F3 = 700; >> alfa1 = -20*pi/180;alfa2 = 30*pi/180;alfa3 = 37*pi/180; >> F1xy = F1*[cos(alfa1) sin(alfa1)] F1xy = 375.8770 -136.8081 >> F2xy = F2*[cos(alfa2) sin(alfa2)] F2xy = 433.0127250.0000 >> F3xy = F3*[-cos(alfa3) sin(alfa3)] F3xy = -559.0449421.2705 >> Ftxy = [F1xy(1)+F2xy(1)+F3xy(1) F1xy(2)+F2xy(2)+F3xy(2)] Ftxy = 249.8449534.4625 >> F_total = sqrt(Ftxy(1)^2+Ftxy(2)^2) F_total = 589.9768 >> angle_total = atan(Ftxy(2)/Ftxy(1)) angle_total = 1.1335 >> angle_total_graus = angle_total*180/pi angle_total_graus = 64.9453 43 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Exemplo de Aplicao no MATLAB 4. Ocoeficientedeatritocintico()podeserdeterminado experimentalmentemedindo-seomdulodaforanecessriaparamoveruma massa m sobre uma superfcie com atrito. QuandoF medido e sendo conhecidos os valores de m, o coeficiente de atrito cintico pode ser determinado por:

Umconjuntodeseis medidasmostradonatabelaabaixo.Determineo coeficiente de atrito por medida e a respectiva mdia no experimento. m Fatrito Medida 123456 Massa (kg)245102050 Fora (N)12.523.53061117294 >> Massa = [2 4 5 10 20 50] Massa = 2 4 5102050 >> Forca = [12.5 23.5 30 61 117 294] Forca = 12.5000 23.5000 30.0000 61.0000117.0000294.0000 >> g = 9.8 g = 9.8000 >> mi = Forca./(Massa*g) mi = 0.63780.59950.61220.62240.59690.6000 >> mi_medio = mean(mi) mi_medio = 0.6115 44 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 6.POLINMIOSO MATLAB traz uma srie de comando para realizar a anlise polinomial, almdemeiosdeavaliarospolinmioseseucomportamento.Polinmios normalmente aparecem em aplicaes em Engenharia e nas Cincias em geral por constiturem bons modelos na representao de sistemas fsicos. 6.1 ANLISE POLINOMIAL PolinmiossorepresentadosnoMATLAB,atravsdevetores,onde cadaelementodovetorcorrespondeaumdoscoeficientesdopolinmio.Como exemplo tem-se o seguinte polinmio:

Sexassumirvaloresescalares,pode-seescreverdaseguinteformano MATLAB: Afunoprettyacima,temoobjetivodeorganizarafunodesejada, sem interferir em seu valor. Se x for um vetor ou uma matriz deve-se escrever: >> fx = 2*x^3-5.1*x^2+x-9 fx = 2*x^3 - (51*x^2)/10 + x - 9 >> pretty(fx)

2

351 x 2 x- ----- + x - 910 >> fx = 2*x.^3-5.1*x.^2+x-9 fx = 2*x^3 - (51*x^2)/10 + x - 9 45 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 6.1.1 Comando Polyval Ovalordeumpolinmioparaum dadopontoxpodeseravaliadopelo funo polyval. Exemplo:

6.1.2 Adio e Subtrao de Polinmios Asoperaesdeadioesubtraodepolinmiosdemesmograu simples, basta operar os vetores correspondentes: >> a = [2 -5.1 1 -9] a = 2.0000 -5.10001.0000 -9.0000 >> f = polyval(a,[1 2 3]) f = -11.1000-11.40002.1000 >> a =[2 -3 8] a = 2-3 8 >> x = 0:0.5:2 x = 00.50001.00001.50002.0000 >> gx = polyval(a,x) gx = 8 7 7 810 >> x =[1 8 2]; >> y =[1 -1 5]; >> z = x+y z = 2 7 7 46 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Quandoospolinmiosdiferememgraunecessriocompletaros termos do que tem menor grau para operar os vetores com soma e subtrao: 6.1.3 Multiplicao de Polinmios Amultiplicaopolinomialefetuadapormeiodocomandoconv(que realiza a convoluo entre dois conjuntos). A multiplicao de mais de 2 polinmios requer o uso repetido de conv. Exemplo: 6.1.4 Diviso de Polinmios Edemaneirasimilaradivisofeitacomocomandodeconv,que retorna duas sadas, o resultado e o resto da diviso. >> x =[1 8 2 8] x = 1 8 2 8 >> y = [0 y] y = 0 1-1 5 >> z = y-x z = -1-7-3-3 >> a = [3 4 5]; %3x^2+4x+5 >> b = [5 1 -7 9]; %5x^3+x^2-7x+0 >> c = conv(a,b) c = 1523 8 4 145%15x^5+23x^4+8x^3+4x^2+x+45 47 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 6.1.5 Razes do Polinmio Obterasrazesdeumpolinmio,ouseja,osvaloresparaosquaiso polinmio igual a zero, um problema comum em muitas reas do conhecimento, comopor exemplo,acharasrazes de equaesqueregem odesempenho de um sistemadecontroledelevitadormagntico,ouaindarespostademotorCC,e analisando a estabilidade de um filtro digital. Seafuno(x)forumpolinmiodegraun,amesmaterexatamenten razes. Estas n razes podem conter mltiplas razes ou razes complexas.NoMATLAB,umpolinmiorepresentadoporumvetorlinhadosseus coeficientesemordemdecrescente.Observequeostermoscomcoeficientezero tmdeserincludos.Dadaestaforma,asrazesdopolinmiosoencontradas utilizando-se o comando roots do MATLAB. Exemplos:

Arecprocaverdade.Quandotem-seasrazesdeumpolinmio possvelreconstru-lo.NoMATLAB,ocomandopolyencarregadodeexecutar >> [p,r] = deconv(b,a) p = -1.3333 -0.2222 r = 0 03.8889 -2.1111 >> p = [-1 1 2 -3 5]; >> r = roots(p) r = -1.8235 + 0.0000i 1.9280 + 0.0000i 0.4478 + 1.1053i 0.4478 - 1.1053i 48 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR essatarefa.Ondeoargumentodocomandoovetorcontendoasrazesdo polinmio que deseja-se determinar. Exemplo

As razes da funo acima so: 2+i, 2-i e -2. Testes Determine as razes dos seguintes polinmios: a)

b)

6.1.6 Calculo Emalgunscasoprecisa-seutilizarumavarivelsimblica,aqual chamaremosdex,paradefinircomosendoqualquervariveldodomnio,ouseja, uma varivel contnua. Para isso existe o comando syms. >> r = [2+i 2-i -2]' r = 2.0000 - 1.0000i 2.0000 + 1.0000i -2.0000 + 0.0000i >> p = poly(r) p = 1-2-310 49 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR ComandoDescrioExemplo limit(f(x),x,a)Calculaolimitedafuno f(x),ondetendeparao termo a. >> syms x >> fx = 2*x^2+3*x-8 fx = 2*x^2 + 3*x 8 >> a = 5 a = 5 >> limit(fx,x,a) ans = 57 diff(f(x),x,n)Calculaaderivadada funof(x),ondenindica a ordem da derivao >> fx = 2*x^2+3*x-8 fx = 2*x^2 + 3*x - 8 >> diff(fx,x,2) ans = 4 int(f(x),x)Calculaintegrais indefinidas >> fx = 2*x^2+3*x-8 fx = 2*x^2 + 3*x 8 >> int(fx,x) ans = (x*(4*x^2 + 9*x - 48))/6 >> pretty(ans) int(f(x),x,a,b)Calcula integrais definidas

>> int(fx,x,0,pi) ans = pi*(pi*((2*pi)/3 + 3/2) - 8) 50 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 7. GRFICOS AconstruodegrficosnoMATLABmaisumadasfacilidadesdo sistema.Atravsdecomandossimplespode-seobtergrficosbidimensionaisou tridimensionais com qualquer tipo de escala e coordenada. Alguns comandos frequentes para plotar grficos bidimensionais so: ComandoDescrio plotPlotar linear loglogGrfico em escala logartmica semilogxGrfico em escala semi logartmica (eixo x) semilogyGrfico em escala semi logartmica (eixo y) FillDesenhar polgono 2D polarGrfico em coordenadas polares stem Grfico de sequncia discreta stairsGrfico em degrau barGrficos de barras hist.HistogramaroseHistograma em ngulo compassGrfico em forma de bssola feather Grfico em forma de pena fplotGrfico da funo comet Grfico com trajetria de cometa 7.1COMANDO - PLOT Ocomandoplotocomandomaiscomumparaplotagemdedados bidimensionais Exemplo: SeYumvetor,plot(Y)produzumgrficolineardoselementosdeYversoso ndicedoselementosdeY.Porexemplo,paraplotarosnmeros [0.0,0.48,0.84,1.0,0.91,0.6,0.14]: 51 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Exemplo: Plotar a funo x+1 1 2 3 4 5 6 700.10.20.30.40.50.60.70.80.91-5 -4 -3 -2 -1 0 1 2 3 4 5051015202530>> Y = [0.0 0.48 0.84 1.0 0.91 0.6 0.14] Y = 00.48000.84001.00000.91000.60000.1400 >> plot(Y) >> x =-5:0.5:5; >> y = x.^2+1; >> plot(x,y) 52 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR possvelplotarmaisqueumafunonomesmogrfico.Existemdois modos: um atravs do comando plot e outro atravs do comando hold. Porexemplo,plotarasfunessen(x),cos(x)ecos(3x),nomesmo grfico: AindaseriapossvelutilizarocomandoHoldon,parafazercomqueos plots sejam realizados no mesmo grfico: 0 2 4 6 8 10 12 14-1-0.8-0.6-0.4-0.200.20.40.60.81>> x = 0:pi/100:4*pi; >> a = sin(x); >> b = cos(x); >> c = cos(3*x); >> plot(x,a,x,b,x,c) x = 0:pi/100:4*pi; a = sin(x); b = cos(x); c = cos(3*x); figure (1); plot(x,a,'r') hold on; plot(x,b,'b') plot(x,c, 'k') 53 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR Para acrescentar informaes aos grficos existem alguns comandos que permitem realizar tarefas, os quaisso apresentados na tabela a seguir:ComandoDescrio title(Nome_do_Titulo)Ttulo do grfico xlabel(xxxxx)Ttulo do eixo x axis[(xmin xmax ymin ymax)]Limita o grfico legend(-----)Inclui legenda no grfico text(x,y,texto desejado)Adiciona texto em algum lugar especfico do grfico gtext(texto desejado)Adiciona texto com a posio escolhida pelo mouse grid onLinhas de grade Almdettulos,legendas,designaodoseixos(title,legend, xlabel,ylabel),pode-sedefinirmaispropriedadesgrficas,alterando:cores,estilos de linhas, estilos de marcadores.Acoreoestilodalinhaeotipodemarcadorparapontosdedadosna linha podem ser selecionado pelo uso de uma cadeia de caractere de atributos aps os vetores x e y da funo do plot. Na tabela abaixo so apresentados os principais comandos paraalterar cores, marcadores e estilos de linhas dos grficos. CorMarcadoresEstilo da Linha yAmarelo.Ponto-Slido mrosa (magenta) Crculo:Pontilhado cAzul (ciano)xX-.Ponto Trao rVermelho+Mais--Tracejado gVerde*Asterisco bAzulsQuadrado wBrancovTringulo para baixo kPreto^Tringulo para cima 54 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR ppentgono Oexemploaseguirmostraumsinalsendoplotado,utilizandoalgunscomandos auxiliares. 7.1.1Comando Subplot possvel colocar mais de um conjunto de eixos em uma mesma figura, criandoassimmltiplosdiagramas.Ossubdiagramassocriadospelocomando 0 5 10 15-0.8-0.6-0.4-0.200.20.40.60.81Funo Seno Amorteciday(t)Tempo(s)>> t = 0:0.01:15; >> r = exp(-0.1*t).*sin(2*t); >> plot(t,r,'g.') >> title('Funo Seno Amortecida') >> ylabel('y(t)'); >> xlabel('Tempo(s)'); >>grid on; 55 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR subplot(i,j,k),ondeirepresentaonmerodelinhasejonmerodecolunasek indica a posio do grfico. Plotarasfunessen(x)ecos(x),comx=-pi:pi/20:pi,namesmajanela mas em grficos separados, utilizando o comandosubplot para dividir a janela em dois subgrficos.

-4 -3 -2 -1 0 1 2 3 4-1-0.500.51Grfico1-4 -3 -2 -1 0 1 2 3 4-1-0.500.51Grfico2>> x = -pi:pi/20:pi; >> a = sin(x); >> b = cos(x); >> subplot(211) >> plot(x,a); >> title('Grfico_1'); >> grid on; >> subplot(212) >> plot(x,b); >> title('Grfico_2'); >> grid on; 56 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 7.2 COMANDO POLAR OMATLABcontmumafunochamapolar(theta,r)quedestinadaa plotar grficos nas coordenadas polares. Exemplo: Cardiide A Cardiide pode ser expressa atravs de coordenadas polares: Utilizando o comando polar, grafique a Cardiide: 1234302106024090270120300150330180 0Cardioide em Coordenadas Polares>> theta = 0:pi/50:2*pi; >> r = 2*(1+cos(theta)); >> polar(theta,r,'y+'); >> title('Cardioide em Coordenadas Polares') 57 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 7.3 HISTOGRAMASUmhistogramaumdiagramaquemostraadistribuiodevaloresem um conjunto de dados. Para criar um histograma, a faixa de valores em um conjunto de dados dividida em grupos regularmente espaados, e o nmero de valores de dadosquedistribuememcadagrupodeterminado.Acontagemresultantepode ser representada em um diagrama como funo do nmero do grupo.Alguns das snteses para gerar histogramas so: hist(y), cria um histograma com 10 grupos igualmente espaados. hist(y,n), cria um histograma com n grupos igualmente espaados. Exemplo: Dicas teis: O Comando 'print -dmeta' pode ser utilizado no Command Window para exportar uma figura em alta qualidade para a rea de transferncia. O Comando 'figure(n)' criar uma figura nova no qual o plot ser gerado. -3 -2 -1 0 1 2 3051015202530Histograma>> y = randn(100,1); >> hist(y) >> title(Histograma) 58 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 8.PROGRAMAO .M A utilizao da janela Command Window excelente para a realizao de pequenosclculosmatemticos,porpermitiravisualizaoinstantneados resultadosdosclculosrealizados,maspodesetornarinvivelquandoseest trabalhandocomclculosmaiscomplexos.Muitasvezestentarresolverum determinadoproblemanoMATLABdigitandomuitoscomandosconsecutivospode sertrabalhosoouatmesmoimpraticvel.Seforemnecessriasmodificaesou correes em um determinado comando da srie executada e os resultados gerados por eles afetarem comandos em uma certa sequncia encadeada, toda a sequncia decomandosdeveserselecionadaeexecutadanovamentenalinhadopromptda janelaCommandWindow,ouseja,ocomandodasriedeveserchamadoe executado todo de uma vez. Uma formadiferentedeexecutarcomandos noMATLAB primeirocriar um arquivo com uma lista de comandos, salv-la e, ento rodar o arquivo. Quando o arquivoexecutado,alistadecomandosexecutadanaordememqueesto listadasnoarquivo.Casosejanecessriascorreesoualteraesnessearquivo, basta abri-lo, modificar os comandos ou a sequncia lgica de interesse, salv-lo e testaronovoarquivo.Osarquivoscriadoscomessepropsitosodenominados rotinas, m-files ou script files. Observa-se tambm que o smbolo (%) utilizado para inserircomentriosnocdigodeprogramaoosquaisnosoexecutadospelo compilador.importantesalientarqueonomedoarquivo.mnopodeconter espaos. 8.1 ALGORITMOS .M Quando uma rotina executada, as variveis usadas nos clculos dentro doarquivodevemserinicializadasafimdeotimizarotempodeexecuodo algoritmo. Alm disso, algumas observaes devem ser levadas em conta quanto ao uso para elaborao do algoritmo: 59 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR RotinaumasequnciadecomandosdoMATLAB(tambmdenomida programa); Quando uma rotina testada, o MATLAB executa os comandos na ordem em que eles foram escritos; Quando uma rotina possui um comando que gera uma sada, a mesma exibida na janela Command Window; Ousoderotinasbastanteconveniente,porqueelaspodemser reeditadas e executadas muitas vezes; possveldigitare/oueditarrotinasemqualquereditordetextoe,em seguida, col las no editor do MATLAB. As rotinas do MATLAB so denominas M-files, porque lhes so atribudas extenses .m quando salvadas. Exemplos de programas .m: 1)Oprogramaaseguirefetuaoclculodamdiadasnotasdeprovasdeum alunoduranteosemestre,permitindoaousurioaentradadecadanotadas provas e retornando a situao do aluno. % Esta rotina calcula a mdia das provas. % A nota das provas so atribudas as variveis nota por meio do comando input % Notas da Provas do Acadmico prova1 = input('Nota da Prova 1: '); prova2 = input('Nota da Prova 2: '); prova3 = input('Nota da Prova 3: ');

%Mdia das Provas media_final = (prova1+prova2+prova3)/3

if (media_final > 70) disp('Aprovado - Parabens'); else disp('Exame'); prova_exame = input('Nota do Exame: '); nota_final = (prova_exame + media_final)/2 if(nota_final > 50) disp('Aprovado - Exame'); else disp('Reprovado'); end end 60 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR 2)Efetua o clculo de lanamento de um projtil. 3)Divisor de Tenso Quando resistores so conectados para formar um circuito srie,aquedadetensoemcadaumdelespodeserdeterminadaspelaregra do divisor de tenso:

Onde Vn, Rn,Reqe Vs so respectivamente a queda de tenso sobre o resistor n, a resistncia do resistor,a resistncia equivalente ou total e a tenso da fonte. A potncia dissipada em cada resistor dada por:

A figura abaixo apresenta um circuito com sete resistores conectados em srie. VsR1 R2 R3R4R5 R6 R7 Para calcular a queda de tenso e a potncia dissipada em cada resistor deumcircuitosriecomseteresistoresdesenvolveu-seumscriptdeMATLAB,o qualpermitequeousurioinsiraemumvetorovalordafontedetensoea % Este algoritmo calcula o alcance do lanamento do projetil % dados a velocidade inicial e o ngulo de lancamento.

v = 1500;% Velocidade inicial em Km/h teta = 30; % ngulo (em graus) vms = v*1000/3600; % Velocidade inicial em m/s t = vms*sin(30*pi/180)/9.8; d = vms*cos(30*pi/180)*2*t/1000;

fprintf('O projtil foi lanado a %2.2f graus, com velocidade inicial %4.2f Km/h \n e atingira o solo a uma distncia de %g km',teta,v,d) 61 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR resistnciadecadaresistor.Oprogramaexibirumatabelacomasresistncias listadasnaprimeiracoluna,aquedadetensonasegundacolunaeapotncia dissipadanaterceiracoluna.Apsatabela,oprogramadeveexibiracorrenteno circuito e a potncia total dissipada. Sugesto de valores do circuito: Vs = 24V, R1 = 20, R2 = 14, R3 = 12, R4 = 18, R5 = 8, R6 = 15, R7 = 10 8.2 FUNO DISP E FPRINTF Ocomandodispmostraovalordasvariveisnatela.Aindapossvel utiliz-lo para combinar frases com variveis alfanumricas. Para que isso acontea, % Este programa calcula a queda de tenso em cada resistor em um circuito % em srie Vs = input('Tenso da fonte do circuito eltrico: '); for i=1:7 Resistores = input('Valores dos resistores como elementos de um vetor.\n '); Rn(1,i) = [Resistores]; end Req = sum(Rn);

Vn = Rn*Vs/Req; Pn = Rn*Vs^2/Req^2;

i = Vs/Req;

Potencia_Total = Vs*i;

Tabela = [Rn',Vn',Pn'];

disp('') disp('ResistnciaTenso Potncia') disp('(Ohms)(Volts) (Watts)') disp('') disp(Tabela) disp('')

fprintf('A corrente no circuito e %.3f Amps',i) fprintf('\n A potncia total dissipada no circuito e %.3f Watts',Potencia_Total) 62 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR interessantecombinarocomandodispcomocomandonum2strqueconvertem valores numricos em valores alfanumricos. O comando num2str converte qualquer nmero(oumatriz)emumacadeiadecaractere,mantendooformatodos elementos, j o comando int2srt converte primeiro os valores inteiros, para s ento transform-los em caracteres. Ocomandofprintfumdosmtodosmaissimplesdesadadedados. Comelepossvelcombinarfrasescomvariveisnumricasdedimenso1,ou seja, um escalar ou um elemento da matriz.Exemplo: Acimaoqueestentreaspasaparecerparaousurio,ositensonde aparecem%dserosubstitudospelasvariveis,respeitando-seaordememque aparecem.Ainda,%dsignificaquesapareceraparteinteiradexey.Existem, ainda, os seguintes comandos: %dExibe o valor como inteiro %eExibe o valor no formato exponencial %f Exibe o valor em ponto flutuante %gEscolhe o mais curto entre ponto flutuante e exponencial Frase = [O valor de e^13 :num2srt(exp(13))]; Disp(frase) x = 2; y = 5; fprintf(O x vale %d, enquanto y vale %d,X,Y) 63 Ministrio da Educao Universidade Tecnolgica Federal do Paran Engenharia Eltrica UNIVERSIDADE TECNOLGICA FEDERAL DO PARANPR REFERNCIAS HANSELMAN,D;LITTLEFIELD,B;MATLAB Verso EstudanteGuiadoUsurio Verso 4. MAKRON Books do Brasil. So Paulo,1997. NoesBsicasdeUtilizaoeProgramaoemMatlab,CursodeMatemtica, Programa de Educao Tutorial, Universidade Federal de Santa Maria, 2008 Frederico Ferreira Campos Filho, Apostila de Matlab. Departamento de Cincia da Computao, ICEX, UFMG. PETENGENHARIAELTRICAUFSM;IntroduoaoMATLAB.SantaMaria,2007. Disponvel em :http://www.ufsm.br/petee/ http://www.mathworks.com/help/matlab