Matlab 2013

137
Comandos do MatLab para apoio ` as aulas de M´ etodos Num´ ericos Ana Maria Alves Coutinho da Rocha [email protected] Departamento de Produ¸ ao e Sistemas Universidade do Minho 2012/2013 Ana Maria A. C. Rocha (DPS/UM) Comandos do MatLab 2012/13 1 / 137

description

Aplicações Matlab

Transcript of Matlab 2013

ComandosdoMatLabparaapoio`asaulasdeMetodosNumericosAnaMariaAlvesCoutinhodaRochaarocha@dps.uminho.ptDepartamentodeProdu caoeSistemasUniversidadedoMinho2012/2013AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 1/137IntroducaoaoMATLABIntroducaoaoMATLABOMATLAB(MATrixLABoratory) eumsistemainteractivoparaaexecucaodecalculoscientcosedeengenharia,suportadoporsoftwaresosticadobaseadoemcalculomatricial.OMatlab eumsoftwaredecomputa caonumericaqueintegra:computacaovisualizacaoprogramacaoAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 2/137IntroducaoaoMATLABOsistemaMatlabOsistemaMatlab econstitudopelasseguintespartes:AlinguagemOambientedetrabalhoGracosToolboxesAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 3/137IntroducaoaoMATLABOsistemaMatlabAlinguagemPermiteamanipula caoecriacaodematrizesdeformarapidaeintuitiva.Diferentessolucoesparaumproblemapodemsertestadasnumafrac caodotempoquelevariacomoutraslinguagens(CouFortranporex.).Possuiumconjuntomuitovastodefuncoesquepermitemresolverproblemascomplexosdeformaeciente.OambientedetrabalhoOMatlabproporcionaumambientedetrabalhoquepermiteagestaoevisualizacaodasvariaveis,leregravarvariaveisemdiscoegerarprogramasemlinguagemMatlab,possibilitandoassimaautomatiza caodecalculoscomplexos.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 4/137IntroducaoaoMATLABOsistemaMatlabGracosAsfuncoesdecria cao,visualizacaoemanipula caodegracossaomuitofaceisdeusarepermitemacriacaodegracos2De3D.Oajustedeescala eautomaticoeoutilizadorpodecomecarautilizarasfuncoesdegeracaodegracospoucotempodepoisdoprimeirocontactocomoambientedoMatlab.ToolboxesOMatlabdisponibilizaumconjuntodepacotesdefuncoesparaasmaisvariadasareasdecalculocientco,sendoestesdenominadostoolboxes.Existemtoolboxesparaoptimizacao,estatstica,processamentodesinal,processamentodeimagem,controlo,calculosimbolico,etc.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 5/137IntroducaoaoMATLABOcomandoHELPParaesclareceramaiorpartedasd uvidasacercadautiliza caodeumadadafuncaodoMatlabocomandohelp edegrandeutilidade.Sepretender,informacaosobreafun caoplot,bastafazer>> help plotobtendo-seaseguintedescricaoPLOT Linear plot.PLOT(X,Y) plots vetor Y versus vetor X...PLOT(Y) plots the columns of Y versus their index...AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 6/137IntroducaoaoMATLABOcomandoHELPOMatlabpossuitodasasfuncoesorganizadasemgruposeapropriaestruturadedirectoriosondeoMatlab earmazenadoemdiscoreecteessefacto. Porexemplo,todasasfuncoesdealgebralinearestaoarmazenadasnodirectoriomatfun. Paraobterumalistacompletadestetipodefuncoesbastafazer>> help matfunComonao efacildecorarosnomesdetodasascategoriasdefuncoes,existeumajaneladeajudamaisorganizada,bastandoparatalescreverocomando>> helpwinAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 7/137IntroducaoaoMATLABExpress oesOMatlabpermiteaconstrucaodeexpressoesmatematicassemqualquerdeclaracaodoformatonumericooudimensaodasmatrizes.ExistemquatroconstituintesbasicosnasexpressoesdoMatlab:VariaveisN umerosOperadoresFuncoesAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 8/137IntroducaoaoMATLABVariaveisTodasasvariaveisdoMatlabsaodotipomatrizeasuacriacao eautomatica. Porexemplo,ocomando>> Custo = 1000resultanacria caoemmemoriadeumamatrizde1 1(guardadanavariavelCusto)comovalor1000.Declaracaodeumavariaveis:variaveissaoalocadasnamemoriaaoseremdeclaradas;nomesdevariaveissaosensveisaletrasmai usculasemin usculas;vetoresematrizesdevemserdeclaradosentre[];elementosdeumamesmalinhanumamatrizsaoseparadosporespaco(s)ouvrgula;ponto-e-vrgula(;)indicaonaldeumalinhadeumamatrizouexpressao.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 9/137IntroducaoaoMATLABVariaveisParavisualizarovalordeumavariavelbastaescreveroseunome.>> CustoConstantesevariaveisespeciaisSmbolo Opera caoans respostamaisrecenteeps precisaodamaquinarealmax maiorn umerodepontoutuanterealmin menorn umerodepontoutuantepi 3.1415926535897....i,j unidadesImaginariasinf InnitoNaN Not-a-NumberAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 10/137IntroducaoaoMATLABN umerosOMatlabutilizaumanota caostandardparaarepresenta caodosn umeros,admitindonotacaocientcaen umeroscomplexos.Exemplos:3 -99 0.00019.6397238 1.60210e-20 6.02252e2312i 2j -3.14159j 3e5iFormatoNumericoO comandoformat dene o modo como os valores numericos sao exibidos.Ocomandoformatcontrolaapenasaformacomosvaloressaoapresentadosenaoaformacomoestessaousadosinternamente.TodososcalculosemMatlabsaoexecutadosemduplaprecisao. short.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 11/137IntroducaoaoMATLABFormatoNumericoFORMAT (Default)FormatigualaSHORTFORMATSHORT Formatodepontoxocom5dgitosFORMATLONG Formatodepontoxocom15dgitosFORMATSHORTE Formatodevrgulautuantecom5dgitosFORMATLONGE Formatodevrgulautuantecom15dgitosFORMATSHORTG Melhorformatoentrepontoxoouvrgulautuantecom5dgitosFORMATLONGG Melhorformatoentrepontoxoouvrgulautuantecom15dgitosFORMATHEX FormatohexadecimalFORMAT+ Escreveossmbolos+,-eespacoparapositivos,negativosezeros,respectivamenteFORMATBANK FormatoxoparadolaresecentimosFORMATRAT FormatoracionalAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 12/137IntroducaoaoMATLABFormatoNumericoExemplo1>> pians=3.1416>> format long>> pians=3.141592653589793Exemplo2Comando Formato Sada5/2 formatshort 2.5000formatlong 2.50000000000000formatshorte 2.5000e+000formatlonge 2.500000000000000e+000formatshortg 2.5formatlongg 2.5formathex 4004000000000000formatrat 5/2formatbank 2.50AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 13/137IntroducaoaoMATLABOperadoresAsoperacoesnasexpressoesdoMatlabseguemasregrashabituaisdeprecedenciaepodemseraplicadasqueramatrizesqueran umeros.OperadoresmatematicosSmbolo Opera cao+ Adi cao- Subtrac cao Multiplica cao/ Divisao`aesquerda PotenciacaoAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 14/137IntroducaoaoMATLABFunc oesOMatlabpossuiumconjuntomuitograndedefuncoesmatematicasquepermitemresolvergrandepartedosproblemasdecalculo.Quandoasfuncoessaoaplicadassobrematrizesafuncao eaplicadaacadaumdoselementos.Funcoesmatematicasexp exponencialdex exlog logaritmonaturaldexnabasee ln xlog10 Logaritmodexnabase10 log xsqrt raizquadradadexxabs Valorabsolutodex |x|real parterealden umerocomplexoimag parteimag. den um. complexoconj conj. dosn um. complexosstd desviopadraoAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 15/137IntroducaoaoMATLABFunc oesFuncoestrigonometricassin seno cos cossenotan tangente csc co-secantesec secante cot co-tangenteacos arco-coseno asin arco-senoatan arco-tangente asec arco-secanteacsc arco-cossecante acot arco-cotangenteround(x) Convertexparaointeiromaispertox(x) Convertexparaointeiromaispertoemdireccaoazerooor(x) Convertexparaointeiromaispertoemdireccaoa ceil(x) Convertexparaointeiromaispertoemdireccaoa+sign(x) Devolve-1sex> u = [1 2 3]Solu cao:u = 1 2 3>> v = [1; 2; 3]Solu cao:v =123>> x = [123]Solu cao:x =123AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 17/137IntroducaoaoMATLABIntroducaodedadosAformadeintrodu caodeumamatrizenvolve:aseparacaooselementosdeumalinhaporespacoou,aseparacaooselementosdeumacolunapor;ainsercaodalistadoselementosdamatrizentre[]Exemplo:>> A=[2 2 3; 4 5 6; 7 8 9]Solu cao:A =2 2 34 5 67 8 9>> A = [2 2 34 5 67 8 9]Solucao:A =2 2 34 5 67 8 9AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 18/137IntroducaoaoMATLABOperac oesbasicascomvetores/matrizesadicaodematrizessubtraccaodematrizesprodutode2vetoresmultiplicacaodematrizestranspostadeumvetoroumatrizsomadoselementosdeumamatrizprodutodoselementosdeumvetoroumatriznormadevetoresoumatrizesdeterminantedeumamatrizinversadeumamatrizAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 19/137IntroducaoaoMATLABFicheiros.mAsinstrucoesemMATLABsaogeralmentedadaseexecutadaslinhaalinhanajaneladecomandos.Tambem epossvelexecutarumasequenciadecomandosqueestaguardadanumcheiro(M-le).TiposdeM-lesscripts: executamosargumentosdiretamente,automatizandoumaseriedecomandosfun cao: argumentospodemserpassadosparaafuncao,havendoumamanipulacaodevariaveis.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 20/137IntroducaoaoMATLABM-lesScriptsUmascript eumcheirodetextoondesaoarmazenadososcomandosaseremexecutadospeloMatlab,umemcadalinhaepelasequenciadesejada.Estetipodecheiro emuitousadoquandohanecessidadedeexecutarumgranden umerodeopera coes.FuncoesUmafuncaocontemapalavrafunctionnoinciodaprimeiralinhadeumaM-le.Asfuncoesdiferemdasscriptsvistoquepodemusarargumentoseasvariaveisdenidasemanipuladasdentrodeumafuncaaonaooperamglobalmentenoespa codetrabalho.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 21/137IntroducaoaoMATLABFunc oesSintaxededeni caodeumafuncaofunction [arg saida] = nome_da_funcao (arg entrada)oufunction[res1,res2,...] = nome_da_funcao (arg1,arg2,...)% comentariolista de procedimentos da funcaoreturnNota: gravarocheirocomonomenomedafuncaoAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 22/137IntroducaoaoMATLABFunc oesDeni caodefun coesUmafuncaopodesercriadanumcheiro.m(M-le)oudirectamentenalinhadecomandosatravesdocomandoinline.Quando edenidanumaM-ledeveserdenidadaseguinteforma,comoporexemplo:functionf=fact(n)%funcaofactorial%retornaofactorialdenf=prod(1:n);n- eargumentodeentradafact-nomedafuncaof-argumentodesadafunction-palavrareservada%-indicacomentarioAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 23/137IntroducaoaoMATLABRepresentacaodefunc oesOMATLABrepresentafun coesmatematicasexprimindo-asemM-lesoudirectamentenalinhadecomandossobaformadestring.Porexemplo,paraafun cao1(x 3)2+ 0.01+1(x 0.9)2+ 0.046AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 24/137IntroducaoaoMATLAB1. Podecriar-seumcheiro(M-le)denomehumps.mcomoseguinteconte udo:functiony=humps(x)y=1./((x-0.3).2+0.01)+1./((x-0.9).2+0.04)-6;Parasaberovalordafun caoquandox=2.5faz-se:>> humps(2.5);2. Podeinserir-senalinhadecomandof=inline(1./((x-0.3).2+0.01)+1./((x-0.9).2+0.04)-6);Parasaberovalordef(2.5)faz-se:>> f(2.5);AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 25/137IntroducaoaoMATLABArgumentosdefuncoesUmafuncaopodeserdenidacomargumentosdeentradae/ouargumentosdesada.Exemplo:function[x,y,z]=sphere(theta,phi,rho)Eumafun caoquetem:3argumentosdeentrada(theta,phi,rho);3argumentosdesada(x,y,z).AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 26/137IntroducaoaoMATLABSeumafun caonaotemargumentosdesadaetem,porexemplo,umargumentodeentradax,podeserdenidapor:functionprintresults(x)oufunction[]=printresults(x)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 27/137IntroducaoaoMATLABAsvariaveisnarginenargoutindicamquantosargumentosdeentradaedesada,respectivamente,temumafuncao.Exemplo:functionc=testarg(a,b)if(nargin==1)c=a2;elseif(nargin==2)c=a+b;endAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 28/137IntroducaoaoMATLABEmalgunscasos,podemconsiderar-seosargumentos(tantodeentradacomodesada)comovetores.function[p,j]=exerc(v)a=v(1);b=v(2);c=v(3);p=[(a+b)*(c-b),(a-c)*b];j=(a-b)2+(b-2)-(c+5)3;emque:v eumvetordedimensao3,p eumvetordedimensao2eumescalar.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 29/137IntroducaoaoMATLABGracosAgeracaodegracosnoMatlabrepresentaumdosseusaspectosmais uteis.OMatLabofereceumavastabibliotecadefuncoesvoltadas`aconstru caodegracos.Atravesdecomandossimples,oMatlabpodeproduzirgracosbidimensionaisoutridimensionais(ex: gracosdecontornos,desuperfcie,etc).AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 30/137IntroducaoaoMATLABComandoplotAfuncaoplot eamaisutilizadanoMatlabparagerargracosvariandooseucomportamentoconsoanteosparametrosdeentrada.Asintaxedeutilizacao e:plot(X) desenhaX(sendoXumvetorouumafuncao)plot(X,Y) desenhaafun caoYemfuncaodovetorXplot(X,Y,S) desenhaXemfun caodeY,segundoosparametrosSAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 31/137IntroducaoaoMATLABAsuaformamaissimplesconsisteempassarcomoentradaapenasumvetor:>> x=0:0.1:10;>> plot(x);0 20 40 60 80 100 120012345678910Passando uma funcao e:>> x=0:0.1:10;>> plot(sin(x));0 20 40 60 80 100 120-1-0.8-0.6-0.4-0.200.20.40.60.81Ogracogeradoapresentaemabcissasos ndicesidoselementosdovetoreemordenadasovalordecadaumdoselementosdovetor.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 32/137IntroducaoaoMATLABTambem epossvelutilizarumsegundovetorparaoeixodasabcissastalcomonoexemploseguinte:>> x=0:0.1:10;>> y=sin(x);>> plot(x,y);0 1 2 3 4 5 6 7 8 9 10-1-0.8-0.6-0.4-0.200.20.40.60.81Afuncaoplotadmitearepresentacaosimultaneadevariascurvas,acrescentandomaisargumentosdeentrada,devendoosvetorespossuiromesmon umerodeamostras.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 33/137IntroducaoaoMATLABVejamosumexemplo:>> w=0:pi/100:2*pi; >> x1= sin(w);>> x2= sin(w+pi/2);>> x3= x1.*x2;>> plot(w,x1,w,x2,w,x3);legend(

sin

,

cos

,

asin cos

);0 1 2 3 4 5 6 7-1-0.8-0.6-0.4-0.200.20.40.60.81sincosasin*cosAfuncaoplotpermiteescolherotipodelinha,acor,etc,eexistemaindafuncoespara,porexemplo,acrescentaretiquetasaoseixos,criarumagrelha,etc.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 34/137IntroducaoaoMATLABDestasfuncoesdestacam-seasseguintes:xlabel Etiquetadoeixodasabcissasylabel Etiquetadoeixodasordenadastitle Nomedaguralegend legendacomosignicadodecadalinhagure Criaumajanelanovagure(gcf) Colocaajaneladegracacorrente`afrentezoom Paraaumentarzonasdeumgracogrid Grelhaaxis DeneoslimitesdoseixosdogracoOMatlabpossuiumafun caoquepermitegerarumcerton umerodevaloresnumdadointervalo. Sepretender,porexemplo,gerar100pontosnointervalode a:>> x = linspace(-pi,pi,100);AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 35/137IntroducaoaoMATLABPode-sedeniroestilodelinha,smbolooucordeumgracoatravesdeumconjuntodecaracteresformadoporumelementodecadaumadasseguintes3colunas:Cor Tipodesmbolo Estilodelinhac azulclaro . ponto - s olidam magenta o crculo tracejaday amarelo x cruz . pontosg verde * asterisco -. tra co-pontob azul s quadrado none nenhumaw branco d diamantek preto v trianguloinvertido trianguloparacima< trianguloparaesquerda> trianguloparadireita+ maisp pentagramah hexagramaAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 36/137IntroducaoaoMATLABExemplos>> x=-10:1:10;>> y=sin(x)+x.3;>> plot(x,y ,

m

);-10 -8 -6 -4 -2 0 2 4 6 8 10-1000-800-600-400-20002004006008001000>> x=-10:1:10;>> plot(x,sin(x),

bs :);0 1 2 3 4 5 6 7 8 9 10-1-0.8-0.6-0.4-0.200.20.40.60.81AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 37/137IntroducaoaoMATLABComandofplotOcomandofplotfazogracodefuncoes.Asintaxedeutilizacao e:fplot(fun cao,[intervalopretendido]);Exemplo:>> fplot(sin(x),[-10 10]);-10 -8 -6 -4 -2 0 2 4 6 8 10-1-0.8-0.6-0.4-0.200.20.40.60.81AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 38/137IntroducaoaoMATLABAfuncaopodeserespecicada:directamentenainstru caofplot>> fplot(

sin(x)

,[-10 10]);numainstrucaoatravesdocomandoinline>> f = inline(

sin(x)

);>> fplot(f,[-10 10]);numcheiroeinvocadaatravesdocomando@>> fplot(@funcseno,1);AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 39/137IntroducaoaoMATLABComandoezplotOcomandoezplotpermitedesenharogracodeumafuncaosemespecicarointervalodedomnio.Asintaxedeutilizacao e:ezplot(funcao);Exemplo:>> ezplot(sin(x)+x^3)6 4 2 0 2 4 625020015010050050100150200250xsin(x)+x3AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 40/137IntroducaoaoMATLABParaalterarumgraco,pode-serecorrer`asop coes/menusdajaneladograco.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 41/137CalculoderazesdeequacoesCalculoderazesdeequacoesOMATLABpossuiduasfuncoesparaocalculodaraizdeumaequa cao:ComandofzeroDeterminaumaraizdeumaequa caoalgebricaoutranscendenteComandorootsObtemtodasasrazesdeumaequa caoalgebricaAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 42/137CalculoderazesdeequacoesComandofzeroOcomandofzeropermiteencontrarozero(raiz)deumafuncaodeumavariavel.Asintaxedeutilizacao e:x = fzero(fun,x0)x = fzero(fun,x0,options)x = fzero(fun,x0,options,P1,P2,...)[x,fval] = fzero (fun,x0,options,P1,P2,...)[x,fval,exitflag,output] = fzero(fun,x0,options,...)Oalgoritmoutilizadousaumacombina caodometododabisseccao,dasecanteemetodosdeinterpolacaoquadraticainversa.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 43/137CalculoderazesdeequacoesComandofzero: Parametrosdeentradax0 eumpontoproximodasolucaoouentaoumintervalocujosvaloresdafuncaonoslimitestemsinaisopostos.fun eafuncaoquesepretendeencontrarasuarazOptions - denicaodeparametrosDisplay Nveldeapresenta caooff naoapresentanadaiter apresentaresultadosemcadaiteracaofinal apresentaapenasoresultadonalnotify (default)apresentaapenasoresultadonalTolX ToleranciadeparagemrelativamenteaXParaverasopcoesdisponveisparaofzerofazer:>> optimset(fzero)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 44/137CalculoderazesdeequacoesComandofzero: Parametrosdesadaxcontemovalordaraizfvalcontemovalordafuncaonaraizexitflag - descrevevaloresdesadadofzero> 0 indicaqueafun caoencontrouaraizemX< 0 indicaqueafun caonaoconvergiuoutput - estruturaqueconteminformacaoacercadaoptimiza caoiterations indicaon umerodeiteracoesrealizadasalgorithm indicaoalgoritmousadofuncCount indicaon umerodeavaliacoesdafuncaoAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 45/137CalculoderazesdeequacoesExemplo1Encontrarozerodafuncaox32x 5queestaproximode2.>> [x,fval,exitflag,output] = fzero(x3-2*x-5,2)Solucao: x=2.0946Outraformaderesolver...>> f=inline(x3-2*x-5)>> [x,fval,exitflag,output] = fzero(f,2)Solucao: x=2.0946AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 46/137CalculoderazesdeequacoesExemplo1: outraformaderesolver1. Criarumcheirofun.mfunction y = fun(x)y = x3-2*x-5;2. Digitarnalinhadecomandosaseguinteinstru cao:>> [x,fval,exitflag,output] = fzero(@fun, 2)Solucao: z=2.0946AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 47/137CalculoderazesdeequacoesExemplo2Encontrarozerodafuncaocossenoentre1e2>> [x,fval,exitflag] = fzero(@cos,[1,2])Solucao:x = 1.5708fval= 6.1232e-017exitflag = 1AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 48/137CalculoderazesdeequacoesExemplo3Igualaoexemploanterior,mascujatoleranciaemx ede1 103.>> op = optimset(TolX,1e-3)>> [x,fval,exitflag,output] = fzero(cos(x),[1,2],op)Solucao:x = 1.5710fval= -1.8225e-004exitflag = 1output =iterations: 4funcCount: 4cgiterations: 3algorithm: bisection, interpolationAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 49/137CalculoderazesdeequacoesComandorootsAfuncaorootspermiteencontrarasrazes(oszeros)deumpolinomio.Asintaxe e:roots(c)emquec eumvetorlinhacomoscoecientesdeumpolinomio.SeovetorlinhaccontemoscoecientesdopolinomioP(x) = c1xn+ c2xn1+ . . . + cnx + cn+1entaoafun caoroots(c)forneceumvetorcolunacontendoasnrazesdeP(x) = 0.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 50/137CalculoderazesdeequacoesExemplo1Calcularas4razesdeP(x) = x4+ 2x313x214x + 24 = 0>> c = [1 2 -13 -14 24];>> r = roots(c)Solucao: r = -4.0000 3.0000 -2.0000 1.0000AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 51/137CalculoderazesdeequacoesExemplo2CalcularasrazesdeP(x) = x5+ 3x3+ 2x + 4 = 0>> c = [1 0 3 0 2 4];>> r = roots(c)Solucao:r =-0.2804 + 1.6770i-0.2804 - 1.6770i0.7060 + 1.0616i0.7060 - 1.0616i-0.8513AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 52/137SistemasdeequacoeslinearesDenicaodematrizesIntrodu caodeumvetoroumatrizaseparacaodoselementosdeumalinhaporespacoou,(vrgula)aindicacaodomdeumalinhausandoo;(pontoevrgula)a insercao da lista dos elementos da matrizentre [ ] (parenteses retos)ExemploA=[2 2 3; 4 5 6; 7 8 9]A =2 2 34 5 67 8 9AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 53/137SistemasdeequacoeslinearesVetoresematrizesGeracaodevetoresordenados>> a=1:1:4a =1 2 3 4>> b=1:0.2:2b =1.0000 1.2000 1.4000 1.6000 1.8000 2.0000Transpostadematrizouvetor>> Aans =2 4 72 5 83 6 9AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 54/137SistemasdeequacoeslinearesManipulacaodematrizes>> A(1,:)ans =2 2 3>> A(2,3)ans =6>> A(2:3,1)ans =47AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 55/137SistemasdeequacoeslinearesFunc oesespeciaisdegeracaodematrizesComando Opera caorand(m,n) Geraumamatriz(mxn)deelementosaleatoriosentre[0,1]rand(n) Geraumamatrizquadradadeelementosaleatorios[0,1]eye(m,n) Geraumamatrizcomelementosnadiagonaliguaisa1eye(n) Geraamatrizidentidadededimensaonzeros(m,n) Geramatrizcomtodoselementosiguaisa0zeros(n) Geramatrizquadradacomtodoselementosiguaisa0ones(m,n) Geramatrizcomtodoselementosiguaisa1ones(n) Geramatrizquadradacomtodoselementosiguaisa1magic(n) Geraumamatrizden umerosinteiros(nxn)cujasomadoselemtosdecadalinha eigual`asomadoselementosdecadacolunaAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 56/137SistemasdeequacoeslinearesAdicaoesubtraccaodematrizesAtencaoquetemdeteramesmadimensao>> A=[2 2 3; 4 5 6; 7 8 9]>> B=[ 2 2 2; 3 3 3; 4 4 4]A =2 2 34 5 67 8 9B =2 2 23 3 34 4 4>> X=A+BX =4 4 57 8 911 12 13>> X=A-BX =0 0 11 2 33 4 5AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 57/137SistemasdeequacoeslinearesProdutodevetoresAtencao`assuasdimensoes>> u = [1 2 3]>> v = [1; 2; 3]u =1 2 3v =123>> u*vans =14>> y = v*uy =1 2 32 4 63 6 9AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 58/137SistemasdeequacoeslinearesMultiplicacaodematrizesAtencao`assuasdimensoesA =2 2 34 5 67 8 9B =2 2 23 3 34 4 4>> A*Bans =22 22 2247 47 4774 74 74>> B*Aans =26 30 3639 45 5452 60 72>> A.*Bans =4 4 612 15 1828 32 36AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 59/137SistemasdeequacoeslinearesTranspostadeumvetoroumatriz>> A=[2 2 3; 4 5 6; 7 8 9]>> u=[1 2 3]A =2 2 34 5 67 8 9u =1 2 3>> x=ux =123>> x=Ax =2 4 72 5 83 6 9AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 60/137SistemasdeequacoeslinearesOperac oesbasicascommatrizes/vetoresComando Opera caomax maximovalormin mnimovalordiag elementosdadiagonalprincipaldeumamatriztriu matriztriangularsuperiordeumamatriztril matriztriangularinferiordeumamatrizsort ordenarascendentementesortrows ordenarlinhasascendentementesum somadoselementosdeumvetoroumatrizprod produtodoselementosdeumvetoroumatriznorm(x,1) norma1deumamatrizouvetornorm(x,2) norma2deumamatrizouvetornorm(x,inf) normainnitadeumamatrizouvetorAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 61/137SistemasdeequacoeslinearesSomadascolunasoulinhasdeumamatriz>> A = [2 2 3; 4 5 6; 7 8 9]A =2 2 34 5 67 8 9>> sum(A)ans =13 15 18>> sum(A,2)ans =7 15 24>> sum(A)ans =7 15 24AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 62/137SistemasdeequacoeslinearesNormadevetoresoumatrizesA =2 2 34 5 67 8 9u=[1 2 3]norma2>> norm(u,2)ans = 3.7417>> norm(A)ans = 16.9587norma1>> norm(u,1)ans = 6>> norm(A,1)ans = 18normainnita>> norm(u,inf)ans = 3>> norm(A,inf)ans = 24AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 63/137SistemasdeequacoeslinearesOperac oesComando Opera caosize Dimensoesdeumamatrizlength ComprimentodeumvetorSmbolo Opera cao.* Multiplica caoelementoaelemento./ Divisao`aesquerdaelementoaelemento. PotenciacaoelementoaelementoAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 64/137SistemasdeequacoeslinearesOperac oeselementoaelementoA =2 2 34 5 67 8 9B =2 2 23 3 34 4 4u = 2 3 5v = 4 2 1>> u.*vans =8 6 5>> u.3ans =8 27 125>> u.\v)ans =0.5000 1.5000 5.0000>> A.*Bans =4 4 612 15 1828 32 36>> B.2ans =4 4 49 9 916 16 16>> A.\Bans =1.0000 1.0000 1.50001.3333 1.6667 2.00001.7500 2.0000 2.2500AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 65/137SistemasdeequacoeslinearesPotenciadematrizesA2 e equivalente a A*AA.2 e equivalente ao quadrado de cada elemento de AA =2 2 34 5 67 8 9>> A2ans =33 38 4570 81 96109 126 150>> A.2ans =4 4 916 25 3649 64 81AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 66/137SistemasdeequacoeslinearesDeterminantedeumamatrizA =2 2 34 5 67 8 9>> det(A)ans = -3B =2 2 23 3 34 4 4>> det(B)ans = 0AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 67/137SistemasdeequacoeslinearesInversadeumamatrizA =2 2 34 5 67 8 9B =2 2 23 3 34 4 4>> inv(A)ans =1.0000 -2.0000 1.0000-2.0000 1.0000 01.0000 0.6667 -0.6667>> inv(B)Warning: Matrix is singular.ans =Inf Inf InfInf Inf InfInf Inf InfAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 68/137SistemasdeequacoeslinearesResolucaodesistemasdeequac oeslineares(Elimina caodeGauss)Resolucaode Ax=B sendoAeBmatrizes.A =2 2 34 5 67 8 9B =2 2 23 3 34 4 4>> x = A\Bx =0.0000 0.0000 0.0000-1.0000 -1.0000 -1.00001.3333 1.3333 1.3333AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 69/137SistemasdeequacoeslinearesResolucaodesistemasdeequac oeslineares(Elimina caodeGauss)Resolucaode Ax=v sendoAumamatrizevumvetorcoluna.A =2 2 34 5 67 8 9v =123>> x=A\vx =0.000000.3333AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 70/137SistemasdeequacoesnaolinearesResolucaodesistemasdeequac oesnaolinearesNoMATLABocomandoutilizadapararesolversistemasdeequa coesnaolineares edenominadafsolveelocaliza-senatoolboxdeoptimiza cao.Asuasintaxedeutilizacao e:[X,FVAL]=FSOLVE(FUN,X0,...)[X,FVAL,EXITFLAG]=FSOLVE(FUN,X0,...)[X,FVAL,EXITFLAG,OUTPUT]=FSOLVE(FUN,X0,options,...)[X,FVAL,EXITFLAG,OUTPUT,JACOB]=FSOLVE(FUN,X0,options,...)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 71/137SistemasdeequacoesnaolinearesAlgoritmosdeoptimiza caoLarge-scaleoptimizationPordefeito,oFSOLVEusaestemetododeoptimiza cao(LargeScaleaon). OalgoritmoconsistenometododeNewtoninterior-reectivecujatecnicadeglobalizacao ebaseadanasregioesdeconanca. Cadaitera caoenvolvearesolucaodeumsistemalineardegrandesdimensoesatravesdometodopre-condicionadodosgradientesconjugados(PCG).Medium-scaleoptimizationComLargeScaleao,usaometododeGauss-Newtoncomummetodomisto(quadraticoec ubico)deprocuralinear.Alternativamente,podeusarometododeLevenberg-Marquardt(seoptions.LevenbergMarquardtestiveraoneoptions.LargeScaleestiverao).AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 72/137SistemasdeequacoesnaolinearesComandofsolve: Parametrosdeentradax0 eumvetorproximodasolu caofun eonomedaM-lecomosistemadefuncoesParaverasopcoesdisponveisfazer: >> optimset(fsolve)Options - denicaodeparametrosDerivativeCheck comparaoJacobianocomdiferenciacaonitaDisplay Nveldeapresentacaooff naoapresentanadaiter apresentaresultadosemcadaitera caofinal (default)apresentaapenasoresultadonalJacobian DenicaodoJacobianopeloutilizadorounaoLargeScale AlgoritmodegrandedimensaoMaxFunEvals N umeromaximodeavaliacoesdafuncaoMaxIter N umeromaximodeiteracoesLevenbergMarquardt UtilizaometododeLevenberg-MarquardtLineSearchType TipodeprocuralinearutilizadaTolFun ToleranciadeparagemrelativamenteaFUNTolX ToleranciadeparagemrelativamenteaXAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 73/137SistemasdeequacoesnaolinearesComandofsolve: Parametrosdesadaxcontemodesolucoesfvalcontemovetordasfun coesnasolu caoexitflag - descrevevaloresdesadadofsolve> 0 indicaqueconvergiuparaumasolu caoX= 0 indicaqueatingiuoMaxFunEvalsouMaxIter< 0 indicaquenaoconvergiuparaumasolucaooutput - estruturaqueconteminformacaoacercadaoptimiza caoiterations indicaon umerodeiteracoesrealizadasfuncCount indicaon umerodeavaliacoesdafuncaoalgorithm indicaoalgoritmousadocgiiterations indicaon umerodeiteracoesGCrealizadas(selarge-scale)stepsize indicaocomprimentodepassonal(semedium-scale)firstorderopt condicaodeoptimalidadede1aordem(selarge-scale)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 74/137SistemasdeequacoesnaolinearesExemploConsidereosistemadeequacoesnaolineares

2x1x2ex1= 0x1 + 2x2ex2= 0PararesolverestesistemanoMATLAB,fazer:1. Criarumcheirodenomefun1.m:function F=fun1(x)F(1)=2*x(1)-x(2)-exp(-x(1));F(2)=-x(1)+2*x(2)-exp(-x(2));oufunction F = fun1(x)F = [2*x(1)-x(2)-exp(-x(1)) ; -x(1)+2*x(2)-exp(-x(2))];AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 75/137SistemasdeequacoesnaolinearesExemplo(continuacao)2. Criarumsegundocheiroteste1.m(opcional):clear allx0=[-1 ; -1]; % estimativas iniciais para x(1) e x(2)options=optimset(Display,iter); % mostra a soluc~ao em cada it.[x,fval,exitflag,output]=fsolve(fun1,x0,options) % resolve3. Ir`ajaneladecomandodoMATLABedigitar>> teste1ou(emsubstitui caode2. e3.)Ir`ajaneladecomandodoMATLABedigitaroscomandosapresentadosem2.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 76/137SistemasdeequacoesnaolinearesExemplo: solucaoPrimeiroapresentaalgunsresultadosporitera cao.Func Norm of First-order Trust-regionIter. count f(x) step optimality radius0 3 27.6512 13.8 11 6 5.33464 1 3.82 12 9 0.137328 0.986918 0.437 13 12 0.000122467 0.222302 0.0123 2.474 15 9.99189e-011 0.00704881 1.11e-005 2.475 18 6.63847e-023 6.37844e-006 9.03e-012 2.47AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 77/137SistemasdeequacoesnaolinearesExemplo: solucao(continuacao)Depois,oprogramaretornaosseguintesresultados:x = 0.5671 0.5671fval = 1.0e-006 * ( -0.1965 -0.1965)exitflag = 1output =firstorderopt: 3.0791e-007iterations: 5funcCount: 16cgiterations: 4algorithm: large-scale: trust-region reflective NewtonAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 78/137SistemasdeequacoesnaolinearesExemplocomopc oesResolvendocom2opcoes(TolX= 103eTolFun = 102)>> options=optimset(TolFun,1e-2,TolX,1e-3);>> [x,fval,exitflag,output]=fsolve(fun1,x0,options)Solucao:x = 0.5663 0.5663fval = -0.0013 -0.0013exitflag = 1output =firstorderopt: 0.0020iterations: 4funcCount: 13cgiterations: 3algorithm: large-scale: trust-region reflective NewtonAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 79/137SistemasdeequacoesnaolinearesExemplo: comJacobianoSequisermosdaramatrizdojacobianotemosqueredeniraM-le:function [F,G]=fun1(x)F(1)=2*x(1)-x(2)-exp(-x(1));F(2)=-x(1)+2*x(2)-exp(-x(2));if (nargout>1)G=[2+exp(-x(1)) -1; -1 2+exp(x(2))];endEdigitarnalinhadecomandosasseguintesinstru coes:>> options=optimset(Jacobian,on);>> x0=[-1 ; -1];>> [x,fval,exitflag,output]=fsolve(fun1,x0,options)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 80/137InterpolacaopolinomialInterpolacaopolinomialUmadastecnicasmaisutilizadasparaestimarocomportamentodeumadeterminadafuncaoentredoispontosconsiderados, eainterpola cao.Interpola caoSplineUmasplinec ubica eumacurvasuaveajustadaaoconjuntodepontosconsideradosque,entrecadapardepontos, edeterminadaporumpolinomiodo3ograu.Estatecnicapermiteobterumacurvasuave,aoinvesdainterpola caolinear,ondeospontossaounidoscomsegmentosderecta.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 81/137InterpolacaopolinomialComandosplineOcomandospline eocomandoquepermitedeterminarnoMATLABumasplinec ubica.Asuasintaxedeutilizacao e:YY = SPLINE(X,Y)YY = SPLINE(X,Y,XX)X eumvetorquecontemospontosparaainterpolacaoYcontemafuncaoouosrespectivosvaloresdafun caoXX eovalordoponto(ouvetordepontos)interpoladorSequiserdeterminarumasplinec ubicanatural,temqueforcarquehajacurvaturanulanosextremos.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 82/137InterpolacaopolinomialExemplo1Considereaseguintetabelaquerepresentaaevolucaodatemperaturadeumsolidoaolongodotempo:tempo 0 2 4 5temperatura 0 20 60 110Primeirodevedenirosvetoresx(tempo)ey(temperatura)comosdadosdatabela.>> x = [0,2,4,5];>> y = [0,20,60,110];AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 83/137InterpolacaopolinomialComodeterminarovalordasplinenumpontoSe pretende determinar a temperatura no instante 4.2 segundos,atraves deSplinec ubicacompleta>> temp = spline(x, y, 4.2)Solucao: temp = 67.8720Splinec ubicanatural>> temp = spline(x, [0 y 0], 4.2)Solucao: temp = 72.7130AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 84/137InterpolacaopolinomialComodeterminarcadasegmentodasplineNosubintervalo[xi, xi+1]aspline ereprsentadaporsi(x) = cl1 (x xi)3+ cl2 (x xi)2+ cl3 (x xi) + cl4emque[cl1, cl2, cl3, cl4]corresponde`alinhaldamatrizdoscoecientes.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 85/137InterpolacaopolinomialComodeterminarcadasegmentodaspline(continuacao)>> cscomp = spline(x,y)Eapareceaseguinteestrutura:cs_comp =form: ppbreaks: [0 2 4 5]coefs: [3x4 double]pieces: 3order: 4dim: 1pp indicaque edaformapolinomialporpartesbreaks representaosvariospontosdainterpolacaocoefs amatrizdoscoecientesparaconstruirosvariossegmentosAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 86/137InterpolacaopolinomialComodeterminarcadasegmentodaspline(continuacao)Paradeterminarasplinecompleta(polinomiodegrau3),paracadaumdossegmentos,deve:1veroscoecientes>> cscomp.coefsSolucao:1.5000 -6.5000 17.0000 01.5000 2.5000 9.0000 20.00001.5000 11.5000 37.0000 60.00002construirosvariossegmentoss(1)3= 1.5(x 0)36.5(x 0)2+ 17(x 0) + 0parax [0, 2]s(2)3= 1.5(x 2)3+ 2.5(x 2)2+ 9(x 2) + 20parax [2, 4]s(3)3= 1.5(x 4)3+ 11.5(x 4)2+ 37(x 4) + 60parax [4, 5]AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 87/137InterpolacaopolinomialComodeterminarcadaspline(continuacao)Paraestimarovalordasplinenoponto4.2podemosfazer:>> cscomp = spline(x,y)>> a=ppval(cscomp,4.2)ou>> a=spline(x,y,4.2)Sepretendedeterminarasplinenatural,paracadaumdossegmentos,devefazer:>> csnat = spline(x,[0 y 0])>> csnat.coefsAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 88/137InterpolacaopolinomialRepresentacaogracadassplinesSepretenderdeterminarerepresentargracamenteumasplinecompletanoutrointervalodetempo,devegerarumnovovetornewxeusa-locomo3oargumentodocomandospline.>> newx = [0:.1:10];>> newy = spline(x, y, newx);>> plot(x,y,o,newx,newy,r);>> grid;0 1 2 3 4 5 6 7 8 9 10051015202530AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 89/137InterpolacaopolinomialExemplo2Considereoexemploemqueycontemumafun cao:>> x = 0:10;>> y = sin(x)+cos(x.2);>> xx = 0:.05:10;>> yy = spline(x,y,xx);>> plot(x,y,o,xx,yy);>> grid;0 1 2 3 4 5 6 7 8 9 10-2-1.5-1-0.500.511.52AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 90/137InterpolacaopolinomialExemplo3Considereaseguintetabeladevalorestempo 0 1 2 3 4 5temperatura 0 20 60 68 77 110Pretende-seusarumasplinec ubicacompletaparaestimarovalordatemperaturaquandox=4.6segundos:>> x = [0,1,2,3,4,5];>> y = [0,20,60,68,77,110];>> temp1 = spline(x,y,4.6)Solucao: temp1 = 92.9813AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 91/137InterpolacaopolinomialExemplo3(continuacao)Sequisermosdeterminar,simultaneamente,atemperaturaemdiferentesmomentospodemosusarosseguintescomandos:>> x = [0,1,2,3,4,5];>> y = [0,20,60,68,77,110];>> temp2 = spline(x,y,[2.6,4.9])Solucao: temp2 = [67.3013,105.2020]AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 92/137InterpolacaopolinomialExemplo3: RepresentacaogracaSequisermosrepresentargracamenteumacurvasplinecompletaabrangendooutrointervalodevalores,podemosgerarumnovovetornewxecoloca-locomoterceiroargumentodocomandospline.>> x = [0,1,2,3,4,5];>> y = [0,20,60,68,77,110];>> newx = 0: 0.1 :5;>> newy = spline(x,y,newx);>> plot (x,y,o,newx,newy);>> title (Spline Cubica Completa);>> xlabel(Tempos);>> ylabel(Graus, F);>> grid;AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 93/137InterpolacaopolinomialExemplo3: Representacaograca(continuacao)0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-20020406080100120Spline Cbica CompletaTemposGraus, FNotequenainterpola caolinear(corazul),ogracodexeypercorreascoordenadaspormeioderectas,enquantoqueogracodenewxenewyrepresentaasplinedenidaporinterpolacaoc ubica(corverde).AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 94/137InterpolacaopolinomialExemplo4Paraoexemploanterior,determineumasplinec ubicanaturalparaestimarovalordatemperaturayquandox = 4.6segundos:>> x = [0,1,2,3,4,5];>> y = [0,20,60,68,77,110];>> temp1 = spline(x,[0 y 0],4.6)Solucao: temp1 = 101.4555AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 95/137InterpolacaopolinomialExemplo4: RepresentacaogracaSequisermosrepresentargracamenteacurvasplinenaturalabrangendooutrointervalodevalores,podemosgerarumnovovetornewxeinseri-locomoterceiroargumentodocomandospline.>> x = [0,1,2,3,4,5];>> y = [0,20,60,68,77,110];>> newx = 0: 0.1 :5;>> nnewy = spline(x,[0 y 0],newx);>> plot (x,y,o,newx,nnewy);>> title (Spline Cubica Natural);>> xlabel(Tempos);>> ylabel(Graus, F);>> grid;AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 96/137InterpolacaopolinomialExemplo4: Representacaograca(continuacao)0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 5-20020406080100120Spline Cbica NaturalTemposGraus, FAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 97/137AproximacaodosmnimosquadradosAproxima caodosmnimosquadradosOmetododosmnimosquadradospermitefazerumajustedecurvas,paraumconjuntodepontos,porexemplo,adquiridosnumaexperiencia.Ometodoanalticodosmnimosquadrados,permiteencontraromelhormodeloqueseajustaaoconjuntodepontos,podendoacontecerquenenhumdospontosperten caaomesmo.Denotarqueestemetodo emuitodistintodainterpola cao,dadoquenainterpola caoacurvaajustadapassaportodosospontos.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 98/137AproximacaodosmnimosquadradosComandopolyvalEstecomandopermitedeterminarosvaloresdeumpolinomioparaumdadoconjuntodepontos.Asuasintaxedeutilizacao e:y = polyval(coef,x)coef eumvetorcomoscoecientesdopolinomioxcontemosvaloresparaosquaisdesejamosavaliaropolinomioycontemosvaloresdopolinomioAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 99/137AproximacaodosmnimosquadradosExemplo1Considereosseguintepolinomiop(x) = 3x2+ 2x + 5.Pretende-sedeterminarosvaloresdopolinomioparax = 4.>> coef = [3, 2, 5];>> f = polyval(coef,4)Solucao: f = 61Estescomandostambempodemsercombinadosnumso:>> f = polyval([3, 2, 5],4);AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 100/137AproximacaodosmnimosquadradosExemplo2Suponhaquequersaberovalordopolinomiog(x) = x5+ 3x32.5x22paratodososvaloresdexnointervalode[0,3],comespa camentode0.5.>> x = 0:0.5:2;>> coef = [-1,0,3,-2.5,0,-2]>> g = polyval(coef,x)Solucao:g(0) = -2.0000g(0.5) = -2.2813g(1) = -2.5g(1.5) = -5.0938g(2) = -20.0000AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 101/137AproximacaodosmnimosquadradosComandopolytPermitecalcularanaliticamenteoscoecientesdeumpolinomioaajustaraoconjuntodepontos. Calculatambemoresduo.Asuasintaxedeutilizacao e:[p,S] = polyfit(x,y,N)x eumvetorcomospontosy eumvetorcomosvaloresdafun caonospontosNrepresentaograudopolinomiop eumvetorcomoscoecientesdopolinomioP(x) = c1xn+ c2xn1+ . . . + cnx + cn+1S eumaestruturaparausarcompolyvalparaobterumaestimativadoserros. Aestruturacontemosseguintescampos:R,dfnormr- eanormadosresduos,i.e., earazquadradadasomadoquadradodoserros.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 102/137AproximacaodosmnimosquadradosExemplo3xi0 1 2 3 4 5fi0 20 60 68 77 110Determineopolinomiodegrau3quemelhorseajustaaosdadosdatabela,nosentidodosmnimosquadrados.>> x = [0,1,2,3,4,5];>> y = [0,20,60,68,77,110];>> [p,S] = polyfit(x,y,3)Solucao: p = 1.1019 -9.3175 41.1918 -3.0556S =R: [4x4 double]df: 2normr: 15.3853Polinomio: 1.1019x39.3175x2+ 41.1918x 3.0556Asomadosquadradosdosresduos e: S.normr2 = 236.7063AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 103/137AproximacaodosmnimosquadradosRepresentacaogracadopolin omioPor msequiser desenhar ogracocomos varios pontos eopolinomioencontrado(averde),bastafazer:0 0.5 1 1.5 2 2.5 3 3.5 4 4.5 520020406080100120>> newx = 0:0.1:5;>> newy = polyval(p,newx);>> plot(x, y, o, newx, newy, g);AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 104/137AproximacaodosmnimosquadradosExemplo4xi2.5 3.5 4 6 7fi0 25 45 65 75Determineopolinomiodegrau2quemelhorseajustaaosdadosdatabela,nosentidodosmnimosquadrados,ecalculeasomadosquadradosdosresduos.>> x = [2.5, 3.5, 4, 6, 7];>> y = [0, 25, 45, 65, 75];>> [p,S] = polyfit(x,y,2)>> S.normr2Opolinomio e: f(x) = 3.3464x2+ 47.9971x 98.8069Asomadosquadradosdosresduos e: 55.9580.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 105/137AproximacaodosmnimosquadradosExemplo5Considereaseguintetabeladevaloresxi-1 1 2 5.5 7 10 15fi0 20 60 88 120 150 1001Determineumpolinomiodegrau2,umpolinomiodegrau3eumpolinomiodegrau4paraajustaraosdadosdatabela,nosentidodosmnimosquadrados. Avalieosmodelos.2Calculeasomadosquadradosdosresduos,paracadaumdospolinomiosdeterminados.3Representegracamenteosvariospontosdadoseospolinomioscalculados.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 106/137AproximacaodosmnimosquadradosExemplo5(continuacao)x = [-1,1,2,5.5,7,10,15];y = [0,20,60,88,120,150,100];[p2,S2] = polyfit(x,y,2)[p3,S3] = polyfit(x,y,3)[p4,S4] = polyfit(x,y,4)newx = -1:0.1:15;newy2 = polyval(p2,newx);newy3 = polyval(p3,newx);newy4 = polyval(p4,newx);plot(x,y,o,newx,newy2,m,newx,newy3,r,newx,newy4,k);grid;AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 107/137AproximacaodosmnimosquadradosExemplo5(continuacao)Ospolinomiosdeterminadossao:p2(x) = 1.0932x2+ 22.6613x + 13.0522p3(x) = 0.0956x3+ 0.9314x2+ 13.3587x + 13.7053p4(x) = 0.0111x4+ 0.1950x31.1758x2+ 16.7218x + 16.3203Asomadosquadradosdosresduosparaopolinomiodegrau2 e1079.4opolinomiodegrau3 e499.1589opolinomiodegrau4 e397.2293AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 108/137AproximacaodosmnimosquadradosExemplo5(continuacao)Arepresenta caogracados3polinomiosedospontos e:2 0 2 4 6 8 10 12 14 1620020406080100120140160 Pontosp2(x)p3(x)p4(x)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 109/137IntegracaonumericaIntegracaonumericaOMATLABdispoedealgumasfuncoesparacalcularnumericamenteointegraldeumafun cao:ComandotrapzBaseadonometodotrapezoidalComandoquadMaseadonaquadraturaadaptativadeSimpsonComandoquadlBaseadonaquadraturaadaptativadeLobatto.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 110/137IntegracaonumericaComandotrapzO comandotrapz(x,y) calculauma aproximacao ao integraldey= f(x)usandoaregradotrapezio.Asuasintaxedeutilizacao e:Z = TRAPZ(Y)Z = TRAPZ(X,Y)SeosvaloresdeXtiveremumespacamentounitario,entaooparametroxpodeseromitido.X eumvetorcomospontosdeintegracaoYcontemovalordafuncaonospontosX.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 111/137IntegracaonumericaComandotrapz(continuacao)OsvaloresdeYpodemserespecicadosdevariasformas:Directamentenolinhadecomandos>> x = 0:0.1:5;>> y = x.2+2.*x;>> Z = trapz(x,y)Atravesdocomandoinline>> x = 0:0.1:5;>> g = inline(x.2+2.*x);>> Z = trapz(x,g(x))AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 112/137IntegracaonumericaComandotrapz(continuacao)DenidanumaM-lefunction y = fun(x)y = x.2+2.*x;einvocandoocalculonalinhadecomandos>> x = 0:0.1:5;>> Z = trapz(x,fun(x))Nota: comoXeumvetor,afun caodeveserdenidadeformaafazeropera coeselementoaelemento.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 113/137IntegracaonumericaExemplo1Considereafun caof(x) = cos(3x + 1)x2+ x1.5cujoesbocoseapresentanaguraseguinte:1 2 3 4 5 6 7 8 9-60-40-20020406080100AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 114/137IntegracaonumericaCalcular

91

cos(3x + 1)x2+ x1.5

dxa) usandoaregradotrapeziocomespa camento1.>> x = 1:1:9;>> y = cos(3.*x+1).*x.2+x.1.5;>> area = trapz(x,y)ou>> area = trapz(y)Solu cao: area = 93.8111b) usandoaregradotrapeziocomespa camento0.1.>> x = 1:0.1:9;>> y = cos(3.*x+1).*x.2+x.1.5;>> area = trapz(x,y)Solu cao: area = 102.4429AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 115/137IntegracaonumericaOutraformaderesolver,usandoocomandoinlineAfuncaoaserintegradapodeserdenidaatravesdocomandoinline.Assim,paracalcularointegralacima,bastafazer:>> x = 1:0.1:9;>> g = inline(cos(3.*x+1).*x.2+x.1.5);>> area = trapz(x,g(x))Solucao: area = 102.4429AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 116/137IntegracaonumericaAinda,outraformaderesolver,usandoumaM-leAfuncaoaserintegradapodeestardenidanumaM-le,porexemplo,myfun.mfunction y = myfun(x)y = cos(3.*x+1).*x.2+x.1.5;Sequisessemoscalcularcomespa camento0.01:>> x = 1:0.01:9;>> area = trapz(x,myfun(x))Solucao: area = 102.5100Sabendoqueovalordointegral e 102.5106,oresultadodaintegracaonumericatorna-semaisexacto,quandosediminuioespa camento.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 117/137IntegracaonumericaExemplo2Acurvadecargatpicadeumadeterminadacidade(MW)estarepresentadanaguraoupelacorrespondentetabelatempo 1 3 5 7 8 10 12 14 16 18 20 21 22 24pot encia 30 29 33 40 39 33 39 38 30 31 45 50 44 30Estimeoconsumodeenergiadiariodestacidade.>> x = [1 3 5 7 8 10 12 14 16 18 20 21 22 24]>> y = [30 29 33 40 39 33 39 38 30 31 45 50 44 30]>> consumo = trapz(x,y)Solucao: consumo = 828AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 118/137IntegracaonumericaComandosquadequadlUmmodomaisecientedecalcularnumericamenteumintegral eatravesdoscomandosquadquadlOcomandoquadcalculanumericamenteumintegralatravesdaregrarecursivadeSimpson.OcomandoquadlcalculanumericamenteumintegralatravesdaquadraturaadaptativadeGauss/Lobatto.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 119/137IntegracaonumericaComandosquadequadlAssuassintaxesdeutilizacaosao:Q = QUAD(FUN,A,B)Q = QUAD(FUN,A,B,TOL)Q = QUADL(FUN,A,B)Q = QUADL(FUN,A,B,TOL)FUN eonomedafuncao(ouafuncao)aserintegradaA eolimiteinferiordeintegra caoB eolimitesuperiordeintegracaoTOLespecicaatolerancia(valorpredenidode106).Emgeral,ocomandoquadlproduzresultadosmaisexactosdoquequad.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 120/137IntegracaonumericaComandosquadequadl(continuacao)AfuncaoFUNpodeserespecicadadevariasformas:Directamentenocomandoquad>> Q = quad(1./(x.3-2*x-5),0,2);Atravesdocomandoinline>> F = inline(1./(x.3-2.*x-5));>> Q = quad(F,0,2);DenidanumaM-le,porexemplo,myfun.mfunction y = myfun(x)y = 1./(x.3-2.*x-5);einvocandoocalculonalinhadecomandos>> Q = quad(@myfun,0,2);Note-sequecomox eumvetorasoperacoesdevemserelementoaelemento. AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 121/137IntegracaonumericaExemplo3Calcular

10

x2+1x + 1

dxDirectamentenalinhadecomandos>>Q=quad(x.2+1./(1+x.2),0,1);ou>> Q=quadl(x.2+1./(1+x.2),0,1);Atravesdocomandoinline>> F = inline(x.2+1./(1+x.2));>> Q=quad(F,0,1);ou>> Q=quadl(F,0,1);Solucao: Q = 1.1187AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 122/137IntegracaonumericaExemplo3: (continua cao)DenidanumaM-le,porexemplo,func.mfunction y = func(x)y = x.2+1./(1+x.2);einvocandoocalculonalinhadecomandos>> Q=quad(@func,0,1);ou>> Q=quadl(@func,0,1);Solucao: Q = 1.1187AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 123/137IntegracaonumericaExemplo4Calcular

51.5

x34 cos(x 1)e(x+5)

dxconsiderandoTol = 103.>> Q=quad(x.3-(4.*cos(x-1))./exp(x+5),1.5,5,1e-3);ou>> Q=quadl(x.3-(4.*cos(x-1))./exp(x+5),1.5,5,1e-3);Solucao: Q = 227.4988AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 124/137EquacoesDiferenciaisEquac oesDiferenciaisOscomandosdoMATLABpararesolverumaequacaodiferencialdotipodydx= f(x, y)ouumsistemadeequacoesdiferenciaisordinariasdy1dx= f1(x, y1, y2, . . . , yn)dy2dx= f2(x, y1, y2, . . . , yn). . .dyndx= fn(x, y1, y2, . . . , yn)sao:ode23-MetododeRunge-Kutta2a/3aordem.ode45-MetododeRunge-Kutta4a/5aordem.AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 125/137EquacoesDiferenciaisComandosode23eode45Asintaxedeutilizacao e:[T,Y] = ODE23(ODEFUN,TSPAN,Y0,OPTIONS)[T,Y] = ODE45(ODEFUN,TSPAN,Y0,OPTIONS)T eumvetorcomosvaloresdavariavelindependenteY eumvetorcomosvaloresdasolu caoODEFUN eonomedafuncaoquecontemaequacaodiferencialdeveserdenidanumaM-leouatravesdocomandoinline.TSPAN eumvetorcomosvaloresdavariavelindependente,i.e.,TSPAN = [T0 TFINAL]ouTSPAN = [T0 T1 ... TFINAL]Y0 eovetordascondicoesiniciaisparaavariaveldependenteOPTIONSsaoopcoesderesolu cao(opcional)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 126/137EquacoesDiferenciaisComandosode23eode45(continuacao)AfuncaoODEFUNpodeserespecicadadevariasformas:AtravesdocomandoinlineSeexistirapenas1equacaodiferencialequecontenhaavariaveldependenteeavariavelindependenteAtravesdenumaM-leSeexistir1oumais(umsistema)equacoesdiferenciaisAnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 127/137EquacoesDiferenciaisOpc oesParaverasopcoesdisponveisfazer:>> odesetAlgunsdosparametrosdafuncaoodesetmaisutilizadossao:Options - denicaodeparametrosOutputFcn Permiteavisualiza caogracadosresultadosAbsTol Toleranciaabsoluta(pordefeito e1e-6)InitialStep PassoinicialMaxStep PassomaximoRelTol Toleranciarelativa(pordefeito e1e-3)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 128/137EquacoesDiferenciaisExemplo1Ataxadeescoamentodeumlquidoqueestadentrodeumcilindroverticalatravesdeumburaconabase edadapor:dydt= ktyondey(t) eaalturadaaguanotanqueaomdetminutos. Supondoquek = 0.1equeaalturainicialdaagua ede2metrosdetermineaalturadaaguanotanqueaomde2minutos.Useumpassode0.5eummetodode4a/5aordem.>> odefun=inline(-0.1.*t.*sqrt(y));>> [t,y]=ode45(odefun,[0 0.5 1 1.5 2],[2])AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 129/137EquacoesDiferenciaisExemplo2Consideremosaequa caodiferencialdesegundaordemdenominadaEquacaodeVanderPol:d2ydt2+ (y21)dydt+ y= 0Podemosrescreverestaequacaocomoumsistemadeequacoesdiferenciaisdeprimeiraordemdy1dt= y2dy2dt= y2

1 y21

y1AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 130/137EquacoesDiferenciaisExemplo2(continuacao)Oprimeiropassoparasimularosistema ecriarumcheiro.mcontendoasequacoesdiferenciais.functionydot=volpol(t,y)ydot(1)=y(2);ydot(2)=y(2).*(1-y(1).2)-y(1);ydot=ydot;AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 131/137EquacoesDiferenciaisExemplo2(continuacao)Pararesolverosistemadeequacoesdiferenciaisdenidoemvolpol.matravesdoMetododeRunge-Kutta2a/3aordem,nointervalo0 t 20(i.e,comescolhaadaptativadocomprimentodopasso)comasseguintescondicoesiniciaisy(0) = 0edy(0)dt= 0.25utilizam-seosseguintescomandos:>> tspan = [0 20];>> y0 = [0 0.25];>> [t,y] = ode23(volpol, tspan, y0)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 132/137EquacoesDiferenciaisExemplo2: solu caot y1y20 0 0.25000.0003 0.0001 0.25010.0019 0.0005 0.25050.0099 0.0025 0.25250.0499 0.0128 0.26250.2499 0.0703 0.31170.5207 0.1631 0.37200.7772 0.2645 0.41391.0230 0.3688 0.4299. . . . . . . . .18.6575 -1.6053 0.719218.8696 -1.4417 0.826319.1018 -1.2338 0.972519.3339 -0.9862 1.172319.5565 -0.6970 1.442919.7832 -0.3288 1.828219.9708 0.0505 2.223120.0000 0.1164 2.28600 2 4 6 8 10 12 14 16 18 20-3-2-10123 y1y2AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 133/137EquacoesDiferenciaisExemplo3Suponhaagoraquepretenderesolverosistemadeequa coesdiferenciaisdenidoemvolpol.matravesdoMetododeRunge-Kutta4a/5aordem,nointervalo0 t 20comcomprimentodopassoh = 2,comasseguintescondicoesiniciaisy(0) = 0edy(0)dt= 0.25utilizam-seosseguintescomandos:>> tspan = 0:2:20;>> y0 = [0 0.25];>> [t,y] = ode45(volpol, tspan, y0)AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 134/137EquacoesDiferenciaisExemplo3: solu caot y1y20 0 0.25002.0000 0.6876 0.11724.0000 -0.7872 -1.62176.0000 -0.9784 1.06248.0000 1.9535 -0.274410.0000 -0.0948 -2.262712.0000 -1.6047 0.719414.0000 1.6993 1.614316.0000 0.9948 -1.164818.0000 -1.9766 0.322320.0000 0.0813 2.2548AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 135/137EquacoesDiferenciaisExemplo3: op coesParaaresolucaocomosparemetrosanterioresevisualizacaograca,fazer>> op = odeset(OutputFcn,@odeplot);>> [t,y] = ode45(volpol, tspan, y0, op)cujoesbocoseapresentanaguraseguinte:AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 136/137EquacoesDiferenciaisExemplo3: op coesPararesolverosistemadeequacoescomumatoleranciarelativade1 104,devemosfazerosseguintescomandos:>> options=odeset(RelTol,1e-4)>> [t,y] = ode45(volpol, tspan, y0, options);Solucao:t y1y20 0 0.25002.0000 0.6876 0.11634.0000 -0.7899 -1.62236.0000 -0.9759 1.06638.0000 1.9531 -0.273410.0000 -0.0942 -2.261812.0000 -1.6041 0.719614.0000 1.7002 1.610216.0000 0.9936 -1.165718.0000 -1.9688 0.324220.0000 0.1075 2.2772AnaMariaA.C.Rocha (DPS/UM) ComandosdoMatLab 2012/13 137/137