Está en la página 1de 20

Clculo con MatLab

Curso2010/2011

Prctica 2: CLCULO DIFERENCIAL

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]

Obtn la derivada de la funcin logaritmo neperiano


recurriendo a la definicin de derivada y utilizando el comando limit.
- Utiliza el comando limit para calcular los lmites laterales de la
funcin tangente en el punto /2. Qu responde MatLab si intentamos
calcular directamente el lmite de la tangente en ese punto?
- Estudia la existencia de asntotas horizontales y verticales de

y representa grficamente la funcin f junto con sus asntotas.

DERIVACIN

2.1 Comando diff

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

- Utiliza el criterio de la derivada segunda para hallar los


extremos relativos de la funcin del ejercicio 3 y elabora una grfica de
la funcin en la que figuren destacados los correspondientes puntos
del plano. Encuentra tambin un punto de inflexin de la funcin e
incorpralo a la representacin grfica.

2.2 Comando Taylor

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)

- Halla el polinomio de Mc-Laurin de grado 7 para la funcin del


ejercicio anterior.
- Halla el polinomio de Taylor de segundo grado de la funcin

y utilzalo para obtener un valor aproximado de la raz cbica de 9/10. Cul


es el error cometido en la aproximacin?.
- Calcula los polinomios de Taylor de grados 1, 2, 5 y 8 de la
funcin seno relativos al punto /6. Represntalos junto con la funcin seno
en cuatro ventanas grficas que se puedan visualizar al mismo tiempo, en el
rectngulo [0,][0,3]. Hazlo de forma que la funcin se distinga del
polinomio en el color y el trazo.
Comprueba adems que el polinomio de Taylor de grado uno de la funcin
seno relativo al punto /6 coincide con la tangente a la funcin seno en ese
mismo punto.

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

- Define f1 y f2 de forma que sean las funciones derivadas de


primer y segundo orden de la funcin

Representa f, f1, f2 y el eje de abscisas para valores de la variable


independiente comprendidos entre /2 y 3/2. A continuacin, estudia los
extremos relativos de f en el intervalo I=[/2,3/2].

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

- Usando el comando interp1 con el mtodo por defecto, hallar y


representar 40 puntos de interpolacin (x(i),y(i)) segn la funcin y=
para valores de x igualmente espaciados entre 0 y 10. Resolver despus el
mismo problema usando el comando spline y comparar las grficas en dos
subventanas contiguas para observar que el tipo de interpolacin as
obtenido es ms fino.
- Consideramos el vector t que representa los aos entre 1900 y
1990 (de 10 en 10) y el vector p con las poblaciones de Estados Unidos en
esos aos, en millones de habitantes.
p=[75'995 91'9720 105'7110 123'2030 131'6690 150'6970 179'3230 203'2120
226'5050 249'6330]
Inferir la poblacin de Estados Unidos para 1975 mediante una funcin
de interpolacin.
Representar el polinomio interpolador spline entre los aos 1900 y 2000
de ao en ao para los valores de p dados.
Representa los datos (t(i),p(i)) para i tomando valores entre 1 y 10. Utiliza
el men de la ventana grfica correspondiente para dibujar despus el
polinomio interpolador spline.

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

- Utilizar el algoritmo de dicotoma para aproximar una raz de


las siguientes ecuaciones con un error menor que 0'0001:
con [a,b]=[1,5]
con [a,b]=[-2'4,1'6]
con [a,b]=[3'1,4'5]

REFERENCIAS

MatlabyMatemticacomputacional
LantarnSnchez,Sagrario/LlanasJurez,Bernardo
BelliscoMadrid2010
TheMathWorksInc.
Matlab,edicindeestudiante.Guadeusuario.Versin4
PrenticeHall
Madrid1995
MatemticasenIngenieraconMatlab
PeregrinaQuintelaEstvez
UniversidadedeSantiagodeCompostela,2000.
MatlabysusAplicacionesenlasCienciasylaIngeniera
CsarPrezLpez
PrenticeHall
Madrid2002

20

También podría gustarte