Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Practica 2 - Calculo Diferencial
Practica 2 - Calculo Diferencial
Curso2010/2011
DepartamentodeMatemticas.UDC
LMITES
ElconceptodelmiteeslabasedelClculoDiferencial.Lalibrera
SymbolicMathToolboxdeMatLabpermitecalcularlmitesdefunciones
directamentemedianteelcomandolimit,quesigueelformato
limit(f,x,a)
paracalcularellmitedelafuncinfcuandolavariablextiendealpuntoa.
Sifesunafuncindeunanicavariable,noesnecesarioespecificarlaen
elformato,pudindoseusar
limit(f,a)obienlimit(f)queequivalealimit(f,0)
Paraelclculodelmiteslateralessepuedeutilizarlaopcin
correspondiente:
limit(f,x,a,'left')
limit(f,x,a,'right')
Sepuedeutilizarlacapacidaddelcomandolimitparaactuarsobre
vectoresalahoradecalcularellmitedevariasfuncionesenunmismo
punto.
Ejemplos:
>>symsx
>>limit((1+1/x)^x,x,inf)
ans=
exp(1)
>>symst,limit((1+t)^(1/t))
ans=
2
exp(1)
>>symsx,limit([1/x^2,sin(x)/x,log(x)],x,0,'right')
ans=
[Inf,1,Inf]
DERIVACIN
ElpaqueteSymbolicMathToolboxdeMatLabpermiterealizarlas
operacionesdederivacineintegracinsimblicas.Enparticular,el
comandodiffdeMatLabpermitecalcularderivadasdeunaexpresin
algebraicaodeunafuncindeunaomsvariables.Ejecutandounaorden
quesigaunodelossiguientesformatos,
diff(funcion,variable,k)
diff('expresion',variable,k)
obtendremoslaksimaderivadadelafuncinoexpresinquetecleemos
respectodelavariableintroducidaensegundolugar.
Sinoseindicaentercerlugarunnmeroenterok,MatLabconsidera
k=1.
Sinohayposibilidaddeconfusinencuantoalavariable,podemos
omitirla.
Nota.Tambinfuncionanlosformatossiguientes:
diff(funcion,k,variable)
diff('expresion',k,variable)
Ejemplo
Supongamosquequeremoshallarlasderivadasnonulasdelpolinomio
f(x)=ax+bx+cx+d.
Podemoshacerlocomosigue:
>>symsabcdx
>>f=a*x^3+b*x^2+c*x+d
f=
a*x^3+b*x^2+c*x+d
>>f1=diff(f)%sinespecificarlavariable
f1=
3*a*x^2+2*b*x+c
>>f1=diff(f,x)%tambincalculaladerivadaprimera
f1=
3*a*x^2+2*b*x+c
>>f2=diff(f,x,2)%derivadasegunda
f2=
2*b+6*a*x
>>f3=diff(f,x,3)%derivadatercera
f3=
6*a
>>diff(f,3)%lomismosinindicarlavariable,elprogramaconsideraque
esx
ans=
6*a
>>diff(f,x,4)%apartirdesta,lassucesivasderivadassonnulas
ans=
0
>>fb=diff(f,b)%derivamosrespectodelsegundocoeficiente
fb=
x^2
Observacin.Paraderivarunaconstante,debemosprimerodefinirla
constantecomounaexpresinsimblica.Porejemplo,
>>k=sym('7');
5
>>diff(k)
ans=
0
Siintentamosderivardirectamenteelprogramarespondeconundoble
corchete:
>>diff(7)
ans=
[]
Laoperacindederivacin,comootras,sepuedeextenderavectores(y
tambinamatrices).Sipedimosladerivadadeunvectorrespectodeuna
variable,Matlabcalculaotrovectorcuyoselementossonlasderivadas,
respectodelavariableindicada,deloselementosdelvectordado.Por
ejemplo:
>>symsxy
>>[2*x*y^27x/yxy]
ans=
[2*x*y^2,7,x/y,xy]
>>diff(ans,y)
ans=
[4*x*y,0,x/y^2,1]
Recordemosquesilafuncinquequeremosderivarespolinmica,
tambinpodemosusarelcomandopolyder,queactasobreunpolinomio
escritoenformadevector(teniendoencuentaqueMatLabidentificaun
polinomioconelvectordesuscoeficientesescritosenordendecreciente,
encuantoalaspotenciasdex).
6
Ejemplos
Enlossiguientesejemplosseintroducedirectamentelaexpresinquese
deseaderivar:
>>symsx
>>g=diff('cos(x)*sin(3*x)',x)
g=
3*cos(3*x)*cos(x)sin(3*x)*sin(x)
>>subs(g,x,pi/3)%evaluamosladerivadaenpi/3
ans=
1.5000
>>diff('log(x)',x,3)%derivamostresveceslafuncinlogaritmo
ans=
2/x^3
>>subs(ans,x,2)%evaluamoselresultadoanteriorparax=2
ans=
0.2500
>>diff('3*x^26*y^3=x*y',y)
ans=
(18)*y^2=x
Paraobtenerelpolinomiodetaylordeunafuncinfdeunanica
variable,podemosutilizarelcomandotaylordeMatLabyseguiralgunode
losformatossiguientes,dondenesunenteropositivo:
taylor(f,n,x0)proporcionaelpolinomiodetaylordegradon1dela
funcinfrelativoaunpuntox0.
Sinoseespecificaelpuntoencuestin,elprogramaconsideraquees0,o
loqueeslomismo:
taylor(f,n)proporcionaelpolinomiodeMcLaurindegradon1def.
Pordefecto,elprogramatoman=6.Esdecir,que
taylor(f,x0)daraelmismoresultadoquetaylor(f,6,x0)
taylor(f)equivaleenlaprcticaataylor(f,6,0)
Ejemplos:
>>symsx,taylor(exp(x))
ans=
x^5/120+x^4/24+x^3/6+x^2/2+x+1
8
>>symsa,taylor(exp(x),4,a)
ans=
exp(a)+(exp(a)*(ax)^2)/2(exp(a)*(ax)^3)/6exp(a)*(ax)
ParaapreciarmejorculeselpolinomioqueMatLabnosdevuelve,
podemosejecutarlaorden
>>pretty(ans)
2.3
Extremos de funciones
Paracalcularelpuntodeunintervalo(a,b)dondeunafunciny=f(x)
alcanzasuvalormnimo,sepuedeusarelcomandofminbndconformato
>>fminbnd('imagendelafuncin',a,b)
Paracalcularelpuntodelintervalo(a,b)enelquelafunciny=f(x)
alcanzasuvalormximo,hayqueutilizarelmismocomandoycalcularel
mnimodelafunciny=f(x)en[a,b].
Ejemplo
>>symsx,h=2*x^2+x1;ezplot(h,[2,2])
>>fminbnd('2*x^2+x1',2,2)
ans=
0.2500
>>fminbnd('(2*x^2+x1)',2,2)
ans=
1.9999
Elmnimorelativosecorrespondeconelnicopuntocrticodela
funcinenelintervalo:
>>h1=diff(h)
h1=
4*x+1
10
>>solve(h1)
ans=
1/4
>>h2=diff(h1)%Laderivadasegundaessiempremayorquecero
h2=
4
INTERPOLACIN
MatLabpermitetrabajarconunacantidadimportantedetcnicasde
interpolacinquepermitenrealizarajustesrpidosqueocupanpoca
memoria.
Lainterpolacinsedefinecomolaformadeestimarvaloresdeuna
funcinentreaquellosdadosporunconjuntodedatos,yesuna
herramientamuyvaliosacuandonosepuedeevaluarrpidamenteuna
funcinenpuntosintermedios.Porejemplo,estoocurrecuandolospuntos
sonelresultadodealgunasmedidasexperimentalesoprocedimientos
computacionalesmuylaboriosos.
11
Cuandoqueremosencontrarunafuncincuyagrficapaseatravsdeun
conjuntofinitodepuntosobtenidosmedianteexperimentos,usamosla
tcnicadeinterpolacin.Quizselejemplomssimpledeinterpolacinsea
lasgrficasdeMatLab.Pordefecto,MatLabdibujalneasrectas
conectandolospuntosqueconstituyenlagrfica.Estainterpolacinlineal
estimaquvaloresintermediosestnenlalnearectaquehayentrelos
puntosintroducidos.Cuandoelnmerodepuntosaumentayladistancia
entreellosdisminuye,lainterpolacinlinealsehacemsprecisa.
Podemosobservarunejemploalejecutarlasrdenessiguientes:
>>x1=linspace(0,2*pi,60);
>>x2=linspace(0,2*pi,6);
>>plot(x1,sin(x1),x2,sin(x2),'r.')
>>xlabel('x'),ylabel('sin(x)'),title('Interpolacinlineal')
>>axis('tight')
Existenmltiplesmtodosparahacerlainterpolacindependiendode
lashiptesisquesehagan.
Ensuentornodetrabajo,MatLabproporcionaentreotroselcomando
interp1parafacilitarlainterpolacin.Porejemplo,supongamosque
tenemosdosvectores,XeY,decoordenadasX(1),...,X(n)eY(1),...,Y(n)
respectivamente:podemosutilizarestecomandoparainterpolarunvector
devaloresX0.Esdecir,quedadoslosparesdepuntos(X(i),Y(i)),interp1
encuentraY0(j)enelX0(j)deseadotalqueY0(j)=f(X0(j)),siendofuna
funcincontinuaqueseencuentraporinterpolacin.Enestecaso,sellama
interpolacinunidimensionalporquelafuncinfdependedeunanica
variable.
Lasintaxisdellamadaes
12
Y0=interp1(X,Y,X0)
obtenindoseelvectorY0talque(X0(j),Y0(j))sonlospuntoshalladospor
interpolacinunidimensionalsobreelconjuntodepuntosdado.
Sepuedeutilizarlavariante
Y0=interp1(Y,X0)
quesuponequeX=1:nsiendonlalongituddeY,ascomo
Y0=interp1(X,Y,X0,'mtodo')
dondemtodoesunargumentoopcional,quepermiteespecificarel
mtododeinterpolacindeseado.Lasposibilidadesdeeleccinpara
mtodoson:nearest(vecinomscercano),linear(lineal),cubic(cbicade
Hermite),spline,pchip(interpolacincbicapolinomialdeHermitea
trozos)yv5cubic(variantedelainterpolacincbicadeMatLab5).La
eleccindelmtododeterminala"suavidad"delacurvadeinterpolacin.
Elmtodopordefectoeslinear.
Porejemplo,paraespecificarinterpolacincbicaenvezdelineal
usaramoslasintaxis
Y0=interp1(X,Y,X0,'cubic')
Ejemplo
Comopartedeunproyectodeciencia,Lisaregistralatemperaturaoficial
enSpriengfieldcadahoradurante12horasdeformaquesepuedausaresa
informacinparafacilitardatossobreelclimalocal.
Lisaanalizasusdatos,introduciendounndiceparalashorasenquese
tomaronlosdatos
>>horas=1:12;
13
yunvectorparalaslecturasdetemperaturacorrespondientes,engrados
Celsius
>>temps=[589152529313022252724];
Ejecutandolasrdenessiguientes,MatLabmuestraunagrficaenlaque
dibujalneasqueinterpolanlinealmentelospuntos.Paraestimarla
temperaturaencualquiermomentodado,Lisapodraintentarinterpretar
lagrficavisualmente.Alternativamente,podrausarelcomandointerp1
comoseindicaacontinuacin:
>>plot(horas,temps,+,horas,temps,r)
>>t=interp1(horas,temps,9.25)%temp.estimadaalas9ycuarto
t=
22.7500
>>t=interp1(horas,temps,4.75)%temp.estimadaalas5menoscuarto
t=
22.5000
>>t=interp1(horas,temps,[3.25,6.5,7.25,11.75])
t=
10.500030.000030.750024.7500
Enlugardesuponerqueesunalnearectalaqueconectalospuntos,
podemospensarenalgunacurvamssuave.Lahiptesismscomnesla
detomarunpolinomiodetercerorden,porejemplo,unpolinomiocbico,
utilizadoparamodelarcadasegmentoentrepuntosconsecutivosytalque
lapendientedecadaunodeestospolinomioscoincideenlospuntos.Este
tipodeinterpolacinsellamasplinescbicososimplementesplines.
Usandoestemtodo,Lisaencuentralasolucinsiguiente:
14
>>t=interp1(horas,temps,9.25,'spline')%temp.estimadaalas9ycuarto
t=
21.7763
>>t=interp1(horas,temps,4.75,'spline')%temp.estimadaalas5menos
cuarto
t=
22.8085
>>t=interp1(horas,temps,[3.25,6.5,7.25,11.75],'spline')
t=
9.881530.042731.395925.1792
ObsrvesequelasrespuestasobtenidasporLisaconelmtodosplineson
diferentesdelosresultadosqueleproporcionlainterpolacinlineal.
Comolainterpolacinesunprocesodeestimaro"adivinar"valores,tiene
sentidoqueusardiferentesreglasdeestimacinconduzcaaresultados
distintos.
Unodelosusosmscomunesdelainterpolacinconsplineses
"suavizar"lacurvaquepasaporlospuntos.Estoes,dadounconjuntode
datos,seutilizalainterpolacinconsplineparaevaluarlosdatoscon
puntosmsprximos.Porejemplo:
>>h=1:0.25:12;%estimarlatemperaturacadacuartodehora
>>t=interp1(horas,temps,h,'spline');
>>plot(horas,temps,'+',horas,temps,'r.',h,t)
>>title('TemperaturaenSpringfield')
>>xlabel('Horas'),ylabel('GradosCelsius')
15
Enlagrficaobtenidaconlasrdenesanteriores,lalneaatrazosesla
interpolacinlineal,lalneaslidaeslainterpolacinsplinesuavizadaylos
datosoriginalessemarcanconunacruz.Alpreguntarporunaresolucin
"msfina"sobreelejeHorasyutilizandolainterpolacinporsplines,
tenemosunaestimacindelatemperaturamssuave,perono
necesariamentemsprecisa.Enparticular,obsrvesequelapendientede
lacurvasolucinnocambiadeformaabruptaenlospuntos.
Alahoradeutilizarinterp1,debemostenerencuentaquenoselepuede
preguntarporresultadosfueradelrangodelavariableindependiente;por
ejemplo,laordensiguienteconduceaunerror,yaquehorasvaraentre1y
12.
>>interp1(horas,temps,12.5)
ans=
NaN
Parainterpolacinunidimensionalusandosplinescbicos,MatLab
tambindisponedelcomandospline.Lasintaxisdellamadaesenestecaso
Y0=spline(X,Y,X0)
EnMatLabtambinpodemosinterpolardatosusandosplinesyotros
mtodosenunpisps.Todoloquetenemosquehaceresdibujarlospuntos
yenlasopcionesdenuestraventana"Figure"escojerdelmenToolsla
opcinBasicFittingyseleccionar,porejemplo,acontinuacinspline
interpolant.Puedesprobarahacerlodesdelaventanagrficaobtenidacon
laorden
>>plot(horas,temps,+)
16
MTODO DE BISECCIN
Seutilizaparaaproximarunarazdelaecuacinf(x)=0dondefesuna
funcinqueverificalashiptesisdelteoremadeBolzanoenunintervalo
cerrado.Lospasosaefectuarsonlossiguientes:
1.Determinarunintervalo[a,b]talquef(a)tengadistintosignoquef(b).
2.Hallarelpuntomediocdelintervalo.
17
3.Elegir,deentre[a,c]y[c,b],unintervalodondelafuncincambiede
signo.
4.Repetirlospasos2y3hastaconseguirlaprecisindeseada.
Partiendodelintervalo[a,b],conseguimosunasucesindeintervalosde
formaqueencadapasolalongituddelintervaloescogidoporcontenerala
razdef(x)=0eslamitaddelalongituddelintervaloconsideradoenelpaso
anterior.
Paraverunejemplodelasposibilidadesquepresentanlosficheros.mala
horadedefinirfunciones,podemoselaborarunsencilloprogramaque
facilitelapuestaenprcticadelmtododebiseccin.
Editaremosunficherodefuncineligiendoenelmenprincipalla
opcinNewdeFileyseleccionandoacontinuacinMFile.Podemos
llamarlobisecci.myproporcionaremosentrelosdatosdeentradalos
extremosdeunintervaloenelquefcambiedesigno.
Comenzamospordeclararlocomofuncinydefinirsusargumentosde
entradaysalida.Laprimeralneadelficherobisecci.mpuedequedaras,
aunquecabesofisticarlaintroduciendootrosparmetrosdeentradayde
salida:
function[c,fc]=bisecci(f,a,b,delta,Nmax)
Acontinuacininclumosnuestroscomentarios;porejemplo,
%BISECCIaproximacerosdefuncionesenlashiptesisdeBolzano
%Entrada:
%fesunafuncincontinua,
%aybsonlosextremosdelintervalodebsqueda,
18
%deltaeslatoleranciaparalasolucin
%Nmaxeselnmeromximodeiteracionespermitidas
%Salida:
%ceslasolucinaproximada,
%fc=f(c)
Encadapasodelmtododebiseccin,hallamoselpuntomediocdel
intervalo[a,b]yelegimoselsubintervalo,[a,c]o[c,b]enelqueseproduce
elcambiodesigno.Hechoesto,renombramoslasvariablesdemodoqueel
semiintervaloseleccionadosellame[a,b]enelpasosiguiente.
Unavezgrabadoelfichero,enlaventanadecomandosdefinimosla
funcinfquequeremosutilizar.Porejemplo,
>>symsx,f=cos(x)+1x;
Acontinuacin,solotenemosqueejecutarlafuncinbisecci
introduciendoademsdeflosvaloresdeseadosparaa,b,deltayMaxit.
Ennuestroejemplo,paraaproximarunasolucindelaecuacin
cos
enelintervalo[0'8,1'6]conunerrormenorque0'0001,podemosejecutar
>>[c,fc]=bisecci(f,0.8,1.6,0.0001,20)
19
REFERENCIAS
MatlabyMatemticacomputacional
LantarnSnchez,Sagrario/LlanasJurez,Bernardo
BelliscoMadrid2010
TheMathWorksInc.
Matlab,edicindeestudiante.Guadeusuario.Versin4
PrenticeHall
Madrid1995
MatemticasenIngenieraconMatlab
PeregrinaQuintelaEstvez
UniversidadedeSantiagodeCompostela,2000.
MatlabysusAplicacionesenlasCienciasylaIngeniera
CsarPrezLpez
PrenticeHall
Madrid2002
20