Metodo de Thomas

download Metodo de Thomas

of 31

Transcript of Metodo de Thomas

METODOSMATEMATICOSPARALAINGENIERIAMECANICAPRACTICASDami anGinestarPeir o6deseptiembrede2006ESCUELATECNICASUPERIORDEINGENIERIADELDISENODEPARTAMENTODEMATEMATICAAPLICADAUNIVERSIDADPOLITECNICADEVALENCIA1Indicegeneral1. Introducci onalprogramaMatLab 41.1. Preguntasm asfrecuentes. . . . . . . . . . . . . . . . . . . . . . . . . . . . 41.2. Operacioneselementales,variablesyconstantes . . . . . . . . . . . . . . . 61.3. Funciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.4. Matrices.Operacionesconmatrices . . . . . . . . . . . . . . . . . . . . . . 81.5. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112. Buclesyfunciones 132.1. Bucles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132.2. Ficheros.m. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173. GracasconMatlab 203.1. Gr acas2D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203.2. Gr acos3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293.3. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 324. Racesdeecuaciones,integralesyecuacionesdiferenciales 334.1. B usquedaderaces . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 334.2. Integraci onaproximada. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.3. Ecuacionesdiferenciales . . . . . . . . . . . . . . . . . . . . . . . . . . . . 364.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3725. Resoluci ondesistemasdeecuacioneslineales 415.1. Metodosdirectos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 415.2. Descomposici onLUyfactorizaci ondeCholesky . . . . . . . . . . . . . . . 425.3. Metodositerativos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 435.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 466. Interpolaci onyajustedelosdatosdeunatabla 496.1. PolinomiosenMatlab . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 496.2. Interpolaci on . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 516.3. Ajuste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 536.4. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547. Introducci onalasecuacionesenderivadasparciales 587.1. Ejercicios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 613Practica1Introducci onalprogramaMatLab1.1. PreguntasmasfrecuentesQueeselMatLabycu alessonsusaplicaciones?El MatLabesunsistemainteractivoorientadoal c alculomatricial. SunombreesunaabreviaturadeMatrixLaboratory.Debido a su versatibilidadpermite serutilizado en multitudde aplicacionesde tipocientco o tecnol ogico como, por ejemplo, en el campo del procesamiento de la se nalodelaimagen, enlasimulaciondesistemasdin amicosyteoradecontrol, enelestudioderedesneuronales,etc. Existe alg uncomandodel MatLabque permita trabajar concomandos ocherosexternosalMatLab?S, paratrabajarconfuncionesdenidasporel usuariosepuedeutilizarel comandopathquepermiteampliarel arbol dedirectoriosdondeMatLab buscaposiblesfuncionesconstruidasporelusuario.ParaejecutarcomandosocherosdelDOSseutilizaelsignodeadmiracion!seguidodelnombredelcomando.DistingueMatLabentremay usculasymin usculas?HayquetenerencuentaqueMatLabdistingueentremay usculasymin usculasenlos nombres delos comandos, funciones yvariables, por lotanto, hayque tenercuidadoenescribirlascorrectamente.4Sepuedeguardarlasesi ondetrabajoenunchero?El comandodiarypermiteguardarel textodelasesi on. Lapautaaseguireslapalabradiaryseguidadelaunidaddondesepretendealmacenarlainformaci onyel nombre del chero.txt. Para a nadir texto le indicaremos donde empieza el parrafoquequeremosguardarconelcomandodiary onydondeterminaconelcomandodiary off.El comandosaveguardalasvariables enuncherodenominadomatlab.matyestasvariablessecarganconelcomandoload.Comoseutilizalaayuda?El comando de ayuda del MatLab se denominahelp. Se ejecuta seguido del nombrede la funci on sobre la que se quiere obtenerayuda. Adem as, si se deseabuscartodalainformaci onsobrealg untemautilizaremos el comandolookfor seguidodelapalabradelaquesepretendeobtenerlainformaci on. Enversionessuperioresala5.2 aparecen otros comandos de ayudacomo pueden serelhelpwin.Tecleandoestapalabra se abre una ventana donde podemos encontrar toda la ayuda clasicada pormaterias, eligiendola que se desee y pulsandoENTER encontraremos la respuestabuscada.Con el comandohelpdesk, se abre una ventana de ayuda con el navegador web quesetengadenidopordefecto.ComosepuedesalirdelMatLab?ElcomandoquitpermiteabandonarelMatLab.Comose puede detener alg uncalculo, gr acooimpresi ondel MatLabsinsalir delpaquete?ConelcomandoCTRL-CoconCTRL-BREAK.Quesucedesiunainstrucci onnocabeenunalnea?Las instrucciones deMatLabseterminanpulsandoENTER. Si unainstrucci onnocabeenunalnea, seescriben3puntosomasysepuedecontinuarenlalneasiguiente.Comosehacenloscomentarios?Loscomentariossehacenconelcar acter %.ParaqueMatLabnomuestreelresul-tadodeunainstruccion estadebeterminarcon;.51.2. Operacioneselementales,variablesyconstantesConel MatLabsepuederealizarcualquieroperaci onquepodramoshacerconunacalculadora. Cadaunadeestasoperacionespordefectoseguardaenlavariableans. Sinosotrosnoqueremostrabajarconestavariable, antesderealizarcualquier operaci on,deberemoshacerunaasignacionalavariabledondepretendemosqueseguardeelresul-tado. El procesoconsisteenescribirel nombredelavariableseguidadel signo=ydelaoperaci onquepretendemosrealizar.CadavezqueescribamoslavariableyapretemosENTER, el programa devolver a su valor. El nombre de la variable se puede utilizar tantasvecescomodeseemos,perohayquerecordarqueguardar as oloel ultimovalor.Al igual queotrospaquetesmatem aticosel resultadoqueobtenemosenpantallasepuede visualizar en diferentes formatos. Si no se indica lo contrario, por defecto se obtienencuatrocifras decimales. Conel comandoformat longaparecenm as cifras decimales.Paravolverasuformatoest andarescribiremosformat short.Sisepretendeobtenerelresultadoconunformatoracionalescribiremosformat rat.Si sedeseaconocerlasvariablesqueest anactivashastaestemomentoutilizaremosel comandowho, si adem as queremos saber dequetiposonysutama noseutilizaelcomando whos. Si queremos borrar alguna variable teclearemos el comando clear seguidodel nombre de la variable que deseamos borrar. Utilizando s olo el comando clear se borrantodaslasvariables,quesetienenasignadasenlamemoria.El MatLab tiene una lista de las constantes que frecuentemente aparecen en problemasmatematicosotecnicos,porejemploel n umeropi, eln umero equelaescribiremoscomoexp(1),launidadimaginariaquelapodremosescribircomoioj,etc.Assi,porejemplo,escribimos(2+3*i)+(5-2*i)obtendremoscomoresultado7+1iSiescribimos(2+3*i)*(5-2*i)obien(2+3*i)/(5-2*i)6obtenemosrespectivamente16+11i0.1379+0.6552iComo vemos, MatLab simplicalas expresionescon n umeros complejos hasta obtenerlaformabin omicadeln umerocomplejoresultado.Porotraparte,elMatLabdisponedealgunasfuncionesespeccasparaoperarconcomplejoscomosonlassiguientes.abs( ) Calculaelmodulodeln umerocomplejo.angle( ) Calculalafase,enradianesdeln umerocomplejo.real( ) Calculalaparterealdeln umerocomplejo.imag( ) Calculalaparteimaginariadeln umerocomplejo.conj( ) Calculaelconjugadodeln umerocomplejo.Veamosalgunosejemplosabs(2+3*i) = 3.6056angle(2+3*i) = 0.9828real(2+3*i) = 2imag(2+3*i) = 3conj(2+3*i) = 2-3i1.3. FuncionesAl igual que otros paquetes matem aticos, MatLab dispone de un catalogo completo conlasfuncionesm asutilizadas. Siemprepodremosbuscarinformaci ondedichasfuncionesconlaayuda.Amododeejemplo,acontinuaci ondaremosunalistadealgunasdeestasfunciones:7sqrt( ) razcuadrada.round( ) redondeoenterom ascercano.sign( ) funci onsigno.exp( ) exponencial.log( ) logartmoneperiano.log10( ) logartmodecimal.sin( ) seno.cos( ) coseno.tan( ) tangente.asin( ) arcoseno.acos( ) arcocoseno.atan( ) arcotangente.Lasfuncioneshiperbolicassinh( ) senohiperb olico.cosh( ) cosenohiperb olico.tanh( ) tangentehiperbolica.asinh( ) arcosenohiperb olico.acosh( ) arcocosenohiperbolico.atanh( ) arcotangentehiperb olica.etc.1.4. Matrices.OperacionesconmatricesLa estructura matricial es la forma natural de trabajar en MatLab. Las matrices 11sonescalares,lasmatrices1 non 1sonvectoreslasocolumna,respectivamentePara introducir los elemetos de una matriz se comienza con un corchete. Los elementosdelaslasseintroducensepar andolosentrecomas, seindicaquenalizalalaconunpuntoycoma,nalizaremoselprocesocerrandoelcorchete.EnelsiguienteejemploasignamosalavariableAunamatriz3 3.A=[1,2,3;4,5,6;7,8,9]8Otra forma m as visual de introducir los datos de la matriz sin utilizar comas o puntosycomaesseparandoloselementosdelalaporespaciosyescribiendocadalaenunlneadiferente.As,porejemplo,podemosescribirB =[123]oC =[1 0 02 0 10 0 2]Unavezquehemos denidoestas matrices sepuedeobtener el elementoi, j delamatrizAescribiendoA(i,j).Sepuedenrealizarmultiplesoperacionesconmatricesyvectores. Lossignosqueseutilizan son: para sumar +, para restar -, para multiplicar *, la potenciaci on se indica conseguidoden umeroalquesepretendeelevarlamatriz.Todaslasoperacionessellevanacaboentredosmatrices.Siellonoesposible,MatLabdevuelveunmensajedeerror.A parte de las operacionesanteriores,MatLab incorpora ladivisi onporla izquierda(\)yladivisi onporladerecha(/).As,A\B esequivalenteaA1B.A/B esequivalenteaAB1.Apartedeestetipodeoperacionespodemosrepresentarlatraspuestadeunamatrizcon el signo . El producto escalar y el producto vectorial de dos vectores con los comandosdot( )ycross( ),respectivamente.Cuandosequierehaceroperacionessobreloselementosdelasmatriceshayanadirlesalasmatricesunpunto.As,siescribimosA=[1 2 3]ytratamos decalcular A2nos dar aunerror, yaqueel cuadradodeAnoest abiendenido.SisepretendeobtenerunanuevamatrizcuyoselementosseanloscuadradosdeloselementosdeA,podemosescribir9A.^2obteniendocomoresultado[1 4 9]EsteresultadosepuedeobtenertambienescribiendoA.*AA parte de acceder a un solo elemento de una matriz, es posible acceder a submatricesdeunamatrizdada.Porejemplo,dadaA =1 2 34 5 67 8 9,si queremosel elemento(1,1)delamatrizescribiremosA(1,1)si queremoslasdospri-meraslasdelaterceracolumna,escribiremosA(1:2,3)yelresultadoser a_36_,si queremos todos los elementos de laterceralaescribiremos A(3,:)yel resultadoobtenido[789],si queremos la submatriz formada por la primera yla tercera columna, escribiremosA(:,[1,3])elresultadosera1 34 67 9.Por ultimo,siescribimosA([1,3],[1,3]), elresultadoobtenidoser a_1 37 9_.Apartedeestasoperacionesexistenfuncionesquenospermitenconstruirmatrices,comoporejemplo:10eye(n) matrizidentidadn n.zeros(n,m) matriznulan m.diag(A) devuelveunvectorconladiagonaldeA.diag(x) devuelveunamatrizconxenladiagonal.triu(A) devuelvelapartetriangularsuperiordeA.tril(A) devuelvelapartetriangularinferiordeA.rand(n,m) devuelveunamatrizgeneradaaleatoriamente.Apartesepuedenconstruirmatricesporbloques,porejemplolaintrucci onB=[zeros(2,3),eye(2);zeros(3,2),eye(3)]devuelveunamatrizdelaformaB=0 0 0 1 00 0 0 0 10 0 1 0 00 0 0 1 00 0 0 0 1.1.5. Ejercicios1. a) Siz1= 3 + 5iyz2= 1 2i.Calcular|z1| , z1 + z2, z1 z2, z1/z2.Comprobarquearg(z1/z2) = arg (z1) arg (z2).b) Calcularpartereal,imaginaria,m oduloyargumentode_1 +_(3i)_1i.c) Calcular(8)15, e7+ ln (5) ,ln(9) + sen (/5)45 cos (23).2. DadasA =1 2 30 1 60 1 9yb =123,calcular11a) A + A,b) 2A,c) AA,d) A2,e) A\bycomprobarqueelresultadocoincideconA1b,f ) bT/AycomprobarqueelresultadocoincideconbTA1,g) Calcularelproductoescalarb byelproductovectorialb b.3. IntroducirlassiguientesmatricesD =1 3 42 5 70 1 1, E=2 4 64 5 63 1 2, c =120.a) CalcularD + E, DE, DTE.b) ApatirdelasmatricesDyEanterioressacarsusvectoresla, susvectorescolumna y una submatriz 22 formada por las las 1 y 2 y las columnas 2 y 3.c) ResolverelsistemaEx = cd) ConstruirunamatrizdiagonalquecontengaladiagonaldelamatrizE.e) Construirlasmatricesporbloques_D E_,_DE_.4. DadalamatrizE=2 4 64 0 63 1 2obtener su parte estrctamente triangular inferior (sin la diagonal) y su parte estrcta-mentetriangularsuperior.12Practica2Buclesyfunciones2.1. BuclesLa utilizaci on de bucles permite realizar m ultiples operaciones que se repiten, medianteinstruccionesmuysencillas. El buclemassencilloquesepuedeescribiresunbucletipoforytienelaformafor i =1:ninstruccionesendPorejemplo, si se deseacalcularla sumade las diezprimeras potencias del n umero 2,esdecir,sisepretendecalcular10

i=12i,sepuedenutilizarlassiguientesinstrucciones:suma=0;for i=1:10suma=suma+2^i;endsuma13Siloquesepretendeescalcular10

j=1jj + 1,lasinstruccionesautilizarseranproduc=1;for j=1:10produc=produc*j/(j+1);endproducEn algunas ocasiones se necesita que el contador no vare de uno en uno. Para ello, solotendremos que indicar el tama no de paso en la instruccion for. Por ejemplo, las siguientesinstruccionesx=[ ];for i=10:-1:1x=[x,i^2];endxconstruyenunvectorcuyascomponentessonlos cuadradosdelos primerosdiezn umerosnaturalesenordeninverso.Hay que teneren cuentaque MatLab disponede operaciones matricialesy vectorialesoptimizadas y hay que evitar el uso de bucles en lo posible, ya que hacen que los programasfuncionenmaslentamente.Otrotipodebucles utilizanel comandowhile. Laestructuradeestos bucles eslasiguientewhile relacioninstruccionesendPor ejemplo, si sequierecalcular el mayor n umeroenterontal que2nimaxdisp(no converge)breakendendxr=x1;Estafunci onusadosfuncionesauxiliares, f.myjac.mdondesedenenlafuncionquedene el sistema de ecuaciones y la matriz derivada de esta funci on, respectivamente. Paraelproblema(4.1)estasfuncionessondelaformafunction y=f(x)% funcion para utilizar con newtonsi.my(1)=x(1)^2-10*x(1)+x(2)^2+8;y(2)=x(1)*x(2)^2+x(1)-10*x(2)+8;yfunction df=jac(x)% matriz jacabiana para usar con newtonsi.mdf(1,1)=2*x(1)-10;df(1,2)=2*x(2);df(2,1)=x(2)^2+1;df(2,2)=2*x(1)*x(2)-10;35Una vez se escriben estas funciones en sus correspondientes cheros, podemos ejecutarlainstrucci on[xr,k]=newtonsi([0 0],1.e-5,100), obteniendocomoresultadolarazxr= [1,00, 1,00]enk= 10iteraciones.4.2. Integraci onaproximadaParaelc alculoaproximadodeintegralesdenidaselMatlabtieneimplementadaslasfuncionestrapz,quadyquad8.Siqueremoscalcular_ 20sen(x) dx,podemosescribirx=0:pi/10:pi/2;y=sin(x);integral=trapz(x,y)La funci ontrapz( ) utiliza el metodo de los trapecios basado en la divisi onutilizadaparadenirelvectorx.Otrasposibilidadessonintegral=quad(sin,0,pi/2)obien,integral=quad8(sin,0,pi/2)4.3. EcuacionesdiferencialesEl Matlab tiene implementadas, entre otras, las funciones ode23 u ode45, que permitenresolverproblemasdevaloresinicialesasociadosaecuacionesdiferencialesordinarias.Supongamos que se quiere resolver unproblemade valores iniciales asociadoaunosciladordeVanderPold2xdt2 (1 x2)dxdt+ x = 0.36Primerosehadeexpresarlaecuaci ondiferencialenformanormal,estoes,seintroducenlasvariablesy1= xyy2=dxdt,conloquesetieneelsistemadeecuacionesdy1dt= y2,dy2dt= (1 y21)y2y1.Luegoenuncherosecontruyeunafunci onconlasiguienteestructurafunction yprime=vdpol(t,y)% devuelve las derivadas del oscilador de Van der Pol% se escoge mu = 2mu=2;% se suele elegir 0 < mu < 10yprime = [ y(2);mu*(1-y(1)^2)*y(2) - y(1) ] ;LuegosepuedecalcularelproblemadevaloresinicialesasociadoalosciladordeVander Pol conlas condiciones iniciales y1(0) =1, y2(0) =0parat [0, 30] delaformasiguiente[t,y]=ode23(vdpol,[0,30],[1;0]);yparadibujarlassolucioneshacemoslosiguiente:y1=y(:,1);y2=y(:,2);plot(y1,y2) % diagrama de fasesElfuncionamientodelafuncionode45estotalmentesimilar.4.4. Ejercicios1. Los problemas relacionados conlacantidadde dinerorequeridaparapagar unahipotecaenunperiodojodetiempoinvolucranunaf ormuladelaforma,A =Pi_1 (1 + i)n,37conocidacomoecuaciondeanualidadordinaria. En estaecuaci on,A esla cantidaddelahipoteca,Peslacantidaddecadapago,eieslatasadeinteresporperiodoparalosnperiodosdepago.Suponed que se necesita una hipoteca de 120.000 euros de una casa sobre un periodode30a nos, yquelapersonaquepideel prestamonopuedehacerpagosdemasde1500eurosal mes. Cu al eslatasam aximadeinteresqueestapersonapuedepagar?.2. Obtenlasracesdelaecuacionx = x2sen(x),comprendidasenelintervalo[0, 10].3. Encontrarlarazpositivam aspeque nadelaecuaci oncos(3x) = cos(7x),enelintervalo[0,5, 1,5]conunaprecisi ondeseiscifrasdecimales.4. la torsi on, T, y el esfuerzocortante m aximo, max, para un tubo de radio internoRiyradioexternoRe,estanrelacionadosporlaecuaci onTRe=2max_R4e R4i_.SiRi= 0,2,encontrarReparamax= 36yT= 0,9.5. UnobjetodemasaMsedejacaerverticalmentedesdeunaalturaS. SesabequealcabodetsegundoslaalturadelobjetoesS(t) = S0 +Mgkt M2gk2_1 ektM_,dondeg = 9,8m/s2ykrepresentael coecientederozamientoconel aire. SiM= 0,1kg,S0= 9,2myk= 0,15kgs/m.Calcularconunaprecisi onde102senquemomentoelobjetoestaraa2.3mdetierra.6. El volumenV deungasenfunciondelapresi onPejercidaporunpist onvienedadaenlatablasiguienteP 60 80 100 120 140 160 180V 80.0 69.2 60.0 52.0 45.0 38.6 32.538CalculaeltrabajonecesarioparadisminuirV de80a32.5,W=_8032,5P dV .7. Se tiene que construir una hoja de techo corrugado usando una m aquina que compri-me una hoja plana de aluminio convirtiendola en una cuyasecci on transversal tienelaformadeunaondasenoidal.Supongamosquesenecesitaunahojacorrugadade50cmdelongitudyquecadaondulaciontieneunaalturadeuncmrespectodelalneahorizontalyunperiodode2cm.ElproblemadeencontrarlalongituddelahojainicialvienedadoporlaintegralL =_500_1 + cos2(x) dx.Estimadestalongitud.8. Calcularaproximadamenteelvalorde_0cos(2x)cosh(x),ycompararloconelvalorexacto,2 sech().9. Sea z(t) (t en minutos) la temperatura de un objeto que est a en una habitaci on quesemantieneaunatemperaturade25C.Seg unlaleydeenfriamientodeNewton,zvericalasiguienteecuaci ondiferencialz

(t) = 0,02(z(t) 25).Sialprincipioelobjetotenaunatemperaturade55C,sepide:a) Quetemperaturatendr aelobjetotranscurridos50minutos?.b) C uandoalcanzaelobjetolatemperaturade46C?.10. La intensidadde un circuito RCL con una fuerza electromotriz E(t) viene dada porlaecuaci ondiferencialLdIdt+ RI +1CQ = E(t).Supongamos que se tiene unaresistencia de 2, uncondensador de 1Fyunaautoinducci on de 0.5 H. Si la fuerza electromotriz del circuito es de la forma E(t) =5 sen(t).Sabiendoquesecumplelarelaci ondQdt= I,39que el condensador enel tiempo t =0est a descargado, yque inicialmente nopasacorrienteporel circuito, obtener laevoluciondelaintensidadenunaramadel circuitoenfunci ondel tiempodesdet =0at =1segundos, ylacargadelcondensadoralos0.5segundos.11. Laecuaci ondeunpendulofsicoesdelaformad2dt2+ sen () = 0yunaaproximaci ondeestaecuaci oneslaecuaci ondelpendulosimpled2dt2+ = 0.Comparalaevoluci ontemporal del angulo, desdet =0hastat =10, conlascondicionesiniciales:a)(0) =6,ddt(0) = 0.b)(0) =3,ddt(0) = 0.40Practica5Resoluci ondesistemasdeecuacioneslinealesComosehavistoenlateora, haydostiposdemetodosparaobtenerunasoluci onnumericade unsistemadeecuaciones,losmetodosdirectosylosmetodositerativos.Losmetodos directos son, generalmente, variantes del metodode Gauss yparautilizarloses necesarioconocer explcitamente loselementos delamatriz. Losmetodos iterativosobtienenunaaproximaci onnumericatrasunn umeronitodeiteraciones. Parautilizarestosmetodossesucienteconocerunmetodopararealizarel productodelamatrizdecoecientesporunvector.5.1. MetodosdirectosLos metodos directos para la resoluci on de ecuaciones est an implementados en el n ucleodeMatlab,deformaqueresultenlom asecientesposiblesparaclasesgeneralesdema-trices.La maneram as usualde resolverun sistemade ecuacionesen Matlab es haciendousodeloperador .As,porejemplopararesolverelsistemax1 + x2 + 3x4= 02x1 + x2 x3 + x4= 13x1 x2 x3 + 2x4= 3x1 + 2x2 + 3x3 x4= 4seintroducenlasinstrucciones41A = [ 1, 1, 0, 3 ;2, 2, -1, 1;3, -1, -1, 2;-1, 2, 3,-1];b=[0;1;-3;4];x=A\bobteniendocomoresultadox = (1, 2, 0, 1)T.Eloperador tieneimplementadosdistintosalgoritmosdeformaqueSi A es una matriz triangular usa una sustitucion regresiva o progresiva para resolverelsistema.SiAessimetricatratadecalcularunadescomposici ondeCholeskydeA.SiAnoessimetricaoladescomposiciondeCholeski falla,seusaunalgoritmodeGaussconpivotaci onparcial.De una forma similar, podemos usar el operador para resolver simult aneamente variossistemasdeecuacionesconlamismamatrizdecoecientes. As, porejemplo, podemosescribirA=pascal(3);B=magic(3);x=A\Bobtenemos,x=19 -3 -1-17 4 136 0 -6queeselresultadox = A1B,queseobtienesinnecesidaddecalcularA1.5.2. Descomposici onLUyfactorizaci ondeCholeskyEl Matlab permite obtener la descomposici on LU de una matriz A mediante la funci onlu( ).Aspodemosescribir42A=magic(3);[L,U]=lu(A)obteniendocomoresultadosL=1.0000 0 00.3750 0.5441 1.00000.5000 1.0000 0U=8.0000 1.0000 6.00000 8.5000 -1.00000 0 5.2941Porotraparte, yahemosvistoqueunamatrizsimetricaydenidapositivaadmiteunafactorizaciondeCholesky,osea,unafactorizaci onA = LLT= RTR.Matlabdisponedeunafunciondenominadachol( )querealizaestadescomposici onsiesposible.As,siescribimosA=pascal(6);R=chol(A)obtenemoselresultadoR=1 1 1 1 1 10 1 2 3 4 50 0 1 3 6 100 0 0 1 4 100 0 0 0 1 50 0 0 0 0 15.3. MetodositerativosUna posible implementacionparaMatlabdel metodo de Jacobi viene dada enlasiguientefunci on43function [x]=jacob(A,b)% esta rutina implementa el metodo Jacobi% basico.%tol=1.e-4;itmax=1000;[n,n]=size(matriz);xo=zeros(n,1);it=0;error=1000.0;while ittolit=it+1;D=diag(A);D1=inv(D);x=D1*(D-A)*xo+D1*b;verr=x-xo;error=norm(verr)/norm(x);xo=x;endx=xo;disp(el numero de iteraciones es)disp(it)disp(el error es)disp(error)Porotrolado,elmetododeGauss-Seidelsepuedeimplementarcomoenlasiguientefuncionfunction [x]=gaussseidel(matriz,vector)% esta rutina implementa el metodo de Gauss-Seidel% basico.%tol=1.e-4;itmax=1000;[n,n]=size(matriz);44xo=zeros(n,1);it=0;error=1000.0;% calculo de las matricesD=diag(diag(matriz))E=-(tril(matriz)-D)F=-(triu(matriz)-D)while ittolit=it+1x=(D-E)\(F*x0+vector);error=norm(x-x0)/ norm(x)x0=x;enddisp(el numero de iteraciones es)disp(it)disp(el error es)disp(error)Por ultimo una funcion que implementa el metodo SOR para un dado es la siguientefunction [x]=sor1(matriz,vector,w);[n,n]=size(matriz);tol=1.e-4;itmax=300;x0=zeros(n,1);it=0;error=1000.0;% calculo de las matricesD=diag(diag(matriz))E=-(tril(matriz)-D)F=-(triu(matriz)-D)while ittolit=it+1x=(D-w*E)\(w*F*x0+(1-w)*D*x0+w*vector);error=norm(x-x0)/ norm(x)45x0=x;enddisp(el numero de iteraciones es)disp(it)disp(el error es)disp(error)El Matlab dispone de funciones implementadas para la resoluci on de sistemas de ecua-cioneslinealesmediantemetodositerativoscomobicg( ), bicgstab , cgs( ), gmres() ,lsqr( ) ,pcg( ) , etc., pero se basan en metodos mas complejos que los que hemosestudiadoenlateoraysobrepasanlaspretensionesdelcurso.5.4. Ejercicios1. Unavigahorizontal exibleempotradaenunextremoAylibreenel extremoBseconsideraquetienecuatrogradosdelibertadtraslacional u1, . . ., u4, dondeuiselocalizaai/5deladistanciadeAaB.Siseaplicaunacargaunitariaenu3,elvectoru = (u1, u2, u3, u4)T,satisfaceelsistemaKu = r,dondelamatrizderigidezKyelvectordecargasr,vienendadaspor5 4 1 04 6 4 11 4 6 40 1 4 5, r =00EI0.la constante EI depende del material de la viga y de su geometra. Calcular u cuandoEI= 1.2. Ladistribuci onde temperaturaenel estadoestacionariode unaplacaplanasepuede aproximar en 9 puntos internos aplicando la ecuaci on de Laplace discretizadaencadapunto. Si semantienenloslados deunaplacacuadradaatemperaturas46constantesde0Cy100C, lastemperaturasenlos9puntossepuedenobtenercomolasoluci ondelsiguientesistema4T1 + T2 + T4= 100T1 4T2 + T3 + T5= 100T2 4T3 + T6= 200T1 4T4 + T5 + T7= 0T2 + T4 4T5 + T6 + T8= 0T3 + T5 4T6 + T9= 100T4 4T7 + T8= 0T5 + T7 4T8 + T9= 0T6 + T8 4T9= 100Obtenerlatemperaturaenlosdistintospuntosdelaplaca.3. Dadoelsistemax1 + x2= 42x1 + 2x3= 43x2 + 3x3= 4a)ResuelveelsistemamedianteelmetododeGausssinpivotaci on.b)ResuelveelsistemamedianteelmetododeGaussconpivotaci onparcial.4. Escribidunafunci ondeMatlabqueimplementeelalgoritmodeThomasparaunamatriztridiagonalsimetrica.Utilzalaparaobtenerlasoluci ondelsistema4 1 0 0 01 4 1 0 00 1 4 1 00 0 1 4 10 0 0 1 4x1x2x3x4x5=10000.5. Recuerda que una matriz simetricay denida positiva admite factorizaci on de Cho-lesky. Modica la funci on trisuper( ) para construir una nueva funci on que permi-ta resolverun sistemade ecuacionesasociado a una matriz triangular inferior. Usarestanuevafunci on, lafunci ontrisuper( )ylafunci onchol( ),pararesolverel47siguientesistema4 1 11 4,25 2,751 2,75 3,5x1x2x3 =315,75176. Construyeelsistemadeecuacionesquehandecumplirloscoecientesdeunpoli-nomiodetercergradoy= c3x3+ c2x2+ c1x + c0,para que pase por los puntos (12, 8), (3, 27), (6, 64), (5, 125). Utiliza la funci on cond() paraobtenerel n umerodecondici onde lamatrizdel sistema.Obten lasoluciondelsistemaydibujalospuntosyelpolinomioobtenido.7. Construye una funci on de Matlab que implemente el metodo SSOR. Dado el sistema4x1 + 3x2= 243x1 + 4x2 x3= 30x2 + 4x3= 24compara tres iteraciones del metodo SOR y 3 iteraciones del metodo SSOR tomandox0=(1, 1, 1)Ty=1,25. Comparaestos resultados reriendolos alasoluci onobtenidaconeloperador .48Practica6Interpolaci onyajustedelosdatosdeunatablaEl paqueteMatLabdisponededistintasfuncionesparalainterpolaci onyajustedelos datosdeunatabladesimpleentrada. Revisaremos estas funciones yestudiaremosalgunosejemplosdesufuncionamiento.6.1. PolinomiosenMatlabPara representarun polinomio Matlab utiliza un vectorcon los coecientes del mismoordenadosenpotenciasdexdecrecientes. As,elvector1 -4 -3 -4 10representaelpolinomioP(x) = x44x33x24x + 10.Si pes unvector quecontieneloscoecientes deunpolinomioenpotencias decre-cientes, podremos evaluarloparaunvalor concreto de lavariable s0conel comandopolyval(p,s0). Estafunci onnospermiteobterunagr acadel polinomioenunciertointervalo.Porejemplo,siintroducimosenMatlablasinstruccionesp=[1 -4 -3 -4 10];x=2:0.01:4;49y=polyval(p,x);plot(x,y)obtenemoslagr acadelpolinomioP(x)enelintervalo[2, 4],queesdelaforma,2 2.2 2.4 2.6 2.8 3 3.2 3.4 3.6 3.8 4656055504540353025Lasracesdeunpolinomioseobtienenmediantelafuncionroots( ).Aslainstruc-cionraices=roots(p)dacomoresultadolasraces4.7200-0.8600+1.1743i-0.8600-1.1743i1.0000Sepuedereconstruirelpolinomioapartirdesusraceshaciendop=poly(raices)Supongamosquesetienenlospolinomiosa(x) = x2+ 3x + 2,b(x) = x2+ 5x + 1,escribiremoslosvectoresdecoecientescomenzandoporel coecientequeacompa naalmayorexponenteeiremoscolocandoloscoecientesqueacompa nen alaspotenciasdexdeformadecreciente,esdecir,50a = [1 3 2]b = [1 5 1]elproductodepolinomiosseobtieneconlafunci onconv( ),as,conv(a,b)dacomoresultado1 8 18 13 2quecorrespondealpolinomiox4+ 8x3+ 18x2+ 13x + 2.6.2. Interpolaci onDadaunatabladedatosdesimpleentradax0x1 xny0y1 ynla funci onde Matlabinterp1( ) permitecalcularinterpolacionesparavalores compren-didosentrelosvaloresextremosrecogidosenlatabla.Lasintaxisdelafunci onesyi=interp1(x,y,xi,metodo)dondexesel vectordelasxsdelatablacuyosvaloresdebenestarordenadosdeformacreciente o decreciente.y es el vector de las ys recogidas en la tabla. xi es el valor o valoresparalosquesequierenobtenerlasinterpolaciones.metodoeslatecnicautilizadaparalainterpolaci on.Esteargumentoesopcionalypuedetomarlossiguientesvalores:linearSerealizaunainterpolaci onlineal.spline Se realiza una interpolaci on construyendoun splin c ubico asociado a los datosdelatabla.51cubicSe realizaunainterpolaci onc ubicaentre los datos de latabla. Parapoderutilizarestaopci on,losdatosdelvectorxdebenestarigualmenteespaciados.Veamosunejemplo.Enlasiguintetablasemuestralapoblaci ondeEstadosUnidos,enmillonesdepersonasdesde1900hasta1990.a no 1900 1910 1920 1930 1940Pobl. 75.995 91.972 105.711 123.203 131.669a no 1950 1960 1970 1980 1990Pobl. 150.697 179.323 203.212 226.505 249.633Podemosescribirlasinstruccionestiem=1900:10:1990;pob=[75.995 91.972 105.711 123.203 131.669 ...150.697 179.323 203.212 226.505 249.633];conloquetenemosdosvectoresconlosdatosdelatabla.Hemosderesaltarquelostrespuntos se usan en la denicion de pob para poder cabiar de lnea sin que Matlab interpretequehanalizadolainstrucci on.Podemosestimarlapoblaci onde1975escribiendointerp1(tiem,pob,1975)obteniendocomoresultado214.8585millones.Por otra parte, podemos dibujar la evoluci on de la poblaci on mediante las instruccionessiguintes:xi=1900:2000;yi=interp1(tiem,pob,xi,spline)plot(tiem,pob,o,xi,yi)obteniendolagr aca521900 1910 1920 1930 1940 1950 1960 1970 1980 1990 2000501001502002503006.3. AjusteLafunci onpolyfit( )nos proporcionaunajustepolin omicodelos datos deunatabla.Lasintaxisdelafunci oneslasiguiente:p=polyfit(x,y,n)dondexeysonvectoresquecontienenlosdatosdelatabla,neselgradodelpolinomioque se quiere ajustar, y p es el vector de coecientes del polinomio obtenido para el ajuste.Veamosunejemplodondesepuedeutilizarestafunci on.Sesabequelosdatosdelasiguientetablax 1 2 3 4 5y 4.52 4.09 3.70 3.35 3.03x 6 7 8 9 10y 2.74 2.48 2.25 2.03 1.84correspondenaundecaimientoexponencialdelaformay= a exp(bx).Para estimar los valores de a y b a partir de los datos de la tabla procedemos del siguientemodo.53x=1:10;y=[ 4.52,4.09,3.70,3.35,...3.03,2.74,2.48,2.25,2.03,1.84];y1=log(y);p=polyfit(x,y1,1)yobtenemos-0.0999 1.6082quesonlospar ametrosdelarectaln(y) = bx + ln(a),conloquetenemosb = 0,0999ya = 4,9938.6.4. Ejercicios1. Calcular:a) Lasracesquintasde-1.b) Calcula(x4+ 3x3+ 2x + 0,5)(x6+ 3x + 0,3)c) Lasracesrealesdex63x5x4+ 7x314x2+ 10x 12.2. Dadalatablaendondesemuestralaevoluci ondelnitr ogenodemineralizacionTiempo Nmin(das) (mg/kg)7 9.46614 8.21127 15.59041 17.61555 20.21583 21.734Obtener el tiemponecesarioparaqueel nitr ogenodemineralizacionseade18.5mg/Kg.Utilizadparaellouninterpolantelineal yunspline, ycompararlosresul-tados.543. Se conoce que la relaci on existente entre el peso vivo de las larvas de la mariposa noc-turna, W(g), y el oxgenoconsumidopor la larva, R en ml/h, es aproximadamentedelaformaR = bWa.ObtenedlosvaloresdeaybapartirdelosdatosdelasiguientetablaW R0.017 0.1540.087 0.2960.174 0.3631.11 0.5311.74 2.234.09 3.585.45 3.525.96 2.404. Bajociertascondicionesseconocequelaevoluci ondeunapoblaci onconeltiemposepuedemodelizarmedianteunaecuaci onlogsticadelaformaP(t) =10001 + CeAt.ObtenedCyAparalasiguientetabladedatos:P(t) 200 400 650 850 950t 0 1 2 3 45. Delcalibradodeunmotorsehanobtenidolossiguintesdatos55Tiempo(milliseconds) Distancia(cm)0.00 0.01.40 1.02.37 2.03.30 3.03.37 4.04.11 5.05.42 6.05.71 7.06.39 8.07.26 9.07.82 10.08.67 11.09.12 12.09.66 13.010.70 14.011.23 15.011.25 16.012.47 17.012.79 18.013.20 19.014.12 20.014.83 21.015.83 22.016.04 23.0Ajustadunpolinomiodegrado4quemodeliceladistanciaenfunciondel tiempo.Hacedunagr acaconlosdatosdelatablayelpolinomioajustado.6. Ladensidaddepartculasqueemergendeunal aminanaformandoun anguloconlaperpendicularalaplaca,satisfacelasiguienterelaciondensidad =ksen_2_n,56dondenes unenteropositivo, ykunaconstante. Deducir el valor deestas dosconstantesapartirdelossiguientesdatos3612629518512712densidad 81052104800 500 107 26 87. Interpoladlafunci onf(x) =11 + x2,dedosmodos, primerounconjuntodepuntosxn= 5 + n, yn=f(xn)conn=0, 1, 2, . . . , 10,yluegoutilizandootroconjuntodepuntos,xn= 5 cos(n/10),yn=f(xn) con n = 0, 1, 2, . . . , 10. Utilizad un polinomio de grado 9 para la interpolaci ondelafuncon. Realizadunagr acaconlasdosinterpolaciones ylosvaloresdelafunci on.57Practica7Introducci onalasecuacionesenderivadasparcialesEl MatLab dispone de un toolbox completo para el estudio de las ecuaciones en deri-vadas parciales. Nosotros aqu solo veremosalgunos metodos sencillospara la integraci ondeestasecuaciones.Supongamosquesequiereestudiarelproblemadecontornosiguiente,2ux2= 2, x (0, 1), (7.1)conx(0) = 0yx(10) = 1.Utilizamosunaaproximaci onendiferenciasnitas2ux2(xi) ui12ui + ui+1h2,si utilizamos11nodosparaladiscretizaci onx0, x1, . . . , x10, setienequeh=1ylaecuaci on(7.1)sepuedeaproximarcomoui12ui + ui+1= 2.58Haciendovariari = 1, . . ., 9,seobtieneelsistemadeecuaciones2 1 0 0 0 0 0 0 01 2 1 0 0 0 0 0 00 1 2 1 0 0 0 0 00 0 1 2 1 0 0 00 0 0 1 2 1 0 0 00 0 0 0 1 2 1 0 00 0 0 0 0 1 2 1 00 0 0 0 0 1 2 10 0 0 0 0 0 0 1 2x1x2x3x4x5x6x7x8x9=222222223.Pararesolverestesistemautilizamoslasinstruccionesv1=ones(1,8);v2=-2*ones(1,9);A=diag(v2)+diag(v1,-1)+diag(v1,1);b=-2*ones(9,1);b(9)=-3;solu=A\b;solu=[0;solu;1]plot(solu,-o);obteniendoelresultado1 2 3 4 5 6 7 8 9 10 11051015202530Figura7.1.-Soluci ondelproblemadecontorno.59Ahora consideraremos un problema dependientedel tiempo. Supongamos que se tieneunabarradelongitud0.5mqueinicialmentesehallaaunatemperaturade25gradoscentgrados. El extremoderechoseponeaunatemperaturade100gradoscentgrados,mientras que el otro extremo se mantiene a 25 grados. Pretendemos saber como evolucionalatemperaturaenlosdistintospuntosdelabarra.Paraello,seusalaleydeFourierut= 2ux2; = 102m2/s.Utilizamoselmetodoexplcitovistoenteora,un+1i= uni+tx2_uni12uni+ uni+1_,yelegimosx = 0,1,y6nodosespaciales.Paraquesecumplalacondici ondeCourant0