You are on page 1of 20

DepartamentodeMatemticas.

UDC
Clculo con MatLab
Cuiso 2u1u2u11









Prctica 2: CLCULO DIFERENCIAL













2

1 LMITES

El concepto ue limite es la base uel Clculo Bifeiencial. La libieiia
Symbolic Nath Toolbox ue MatLab peimite calculai limites ue funciones
uiiectamente meuiante el comanuo limit, que sigue el foimato
limit(f,x,a)
paia calculai el limite ue la funcion f cuanuo la vaiiable x tienue al punto a.
Si f es una funcion ue una nica vaiiable, no es necesaiio especificaila en
el foimato, puuinuose usai
limit(f,a) o bien limit(f) que equivale a limit(f,0)
Paia el clculo ue limites lateiales se pueue utilizai la opcion
coiiesponuiente:
limit(f,x,a,'left')
limit(f,x,a,'right')
Se pueue utilizai la capaciuau uel comanuo limit paia actuai sobie
vectoies a la hoia ue calculai el limite ue vaiias funciones en un mismo
punto.
E j e m p l o s :
>> syms x
>> limit((1+1x)^x,x,inf)
ans =
exp(1)
>> syms t, limit((1+t)^(1t))
ans =

S

exp(1)
>> syms x,limit(|1x^2,sin(x)x,log(x)j,x,u,'iight')
ans =
| Inf, 1, Infj

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
(x) =
3 x
2
+x-1
x
2
+x-3

y representa grficamente la funcin f junto con sus asntotas.


2 DERIVACIN
2.1 Comando diff

El paquete Symbolic Nath Toolbox ue MatLab peimite iealizai las
opeiaciones ue ueiivacion e integiacion simbolicas. En paiticulai, el
comanuo diff ue MatLab peimite calculai ueiivauas ue una expiesion
algebiaica o ue una funcion ue una o ms vaiiables. Ejecutanuo una oiuen
que siga uno ue los siguientes foimatos,

4

diff(funcion,variable,k)
diff('expresion',variable,k)
obtenuiemos la ksima ueiivaua ue la funcion o expiesion que tecleemos
iespecto ue la vaiiable intiouuciua en segunuo lugai.
Si no se inuica en teicei lugai un nmeio enteio k, MatLab consiueia
k=1.
Si no hay posibiliuau ue confusion en cuanto a la vaiiable, pouemos
omitiila.
Nota. Tambin funcionan los foimatos siguientes:
diff(funcion,k,variable)
diff('expresion',k,variable)

E j e mp l o
Supongamos que queiemos hallai las ueiivauas no nulas uel polinomio
f(x)=ax+bx`+cx+u.
Pouemos haceilo como sigue:
>> syms a b c u x
>> f=a*x^S+b*x^2+c*x+u
f =
a*x^S+b*x^2+c*x+u
>> f1=uiff(f) %sin especificai la vaiiable
f1 =
S*a*x^2+2*b*x+c

S

>> f1=uiff(f,x) %tambin calcula la ueiivaua piimeia
f1 =
S*a*x^2+2*b*x+c
>> f2=uiff(f,x,2) %ueiivaua segunua
f2 =
2*b+6*a*x
>> fS=uiff(f,x,S) %ueiivaua teiceia
fS =
6*a
>> uiff(f,S) %lo mismo sin inuicai la vaiiable, el piogiama consiueia que
es x
ans =
6*a
>> uiff(f,x,4) %a paitii ue sta, las sucesivas ueiivauas son nulas
ans =
u
>> fb=uiff(f,b) %ueiivamos iespecto uel segunuo coeficiente
fb =
x^2

Observacin. Paia ueiivai una constante, uebemos piimeio uefinii la
constante como una expiesion simbolica. Poi ejemplo,
>> k=sym('7');

6

>> uiff(k)
ans =
u
Si intentamos ueiivai uiiectamente el piogiama iesponue con un uoble
coichete:
>> uiff(7)
ans =
| j
La opeiacion ue ueiivacion, como otias, se pueue extenuei a vectoies (y
tambin a matiices). Si peuimos la ueiivaua ue un vectoi iespecto ue una
vaiiable, Natlab calcula otio vectoi cuyos elementos son las ueiivauas,
iespecto ue la vaiiable inuicaua, ue los elementos uel vectoi uauo. Poi
ejemplo:
>> syms x y
>> |2*x*y^2 7 xy xyj
ans =
| 2*x*y^2, 7, xy, xyj
>> uiff(ans,y)
ans =
| 4*x*y, u, xy^2, 1j
Recoiuemos que si la funcion que queiemos ueiivai es polinomica,
tambin pouemos usai el comanuo polyder, que acta sobie un polinomio
esciito en foima ue vectoi (tenienuo en cuenta que MatLab iuentifica un
polinomio con el vectoi ue sus coeficientes esciitos en oiuen uecieciente,
en cuanto a las potencias ue x).

7

E j e m p l o s
En los siguientes ejemplos se intiouuce uiiectamente la expiesion que se
uesea ueiivai:
>>syms x
>> g=uiff('cos(x)*sin(S*x)',x)
g =
S*cos(S*x)*cos(x) sin(S*x)*sin(x)
>> subs(g,x,piS) %evaluamos la ueiivaua en piS
ans =
1.Suuu
>> uiff('log(x)',x,S) %ueiivamos ties veces la funcion logaiitmo
ans =
2x^S
>> subs(ans,x,2) %evaluamos el iesultauo anteiioi paia x=2
ans =
u.2Suu
>> uiff('S*x^26*y^S=x*y',y)
ans =
(18)*y^2 = x


8

- 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

Paia obtenei el polinomio ue tayloi ue una funcion f ue una nica
vaiiable, pouemos utilizai el comanuo taylor ue MatLab y seguii alguno ue
los foimatos siguientes, uonue n es un enteio positivo:
taylor(f,n,x0) piopoiciona el polinomio ue tayloi ue giauo n1 ue la
funcion f ielativo a un punto xu.
Si no se especifica el punto en cuestion, el piogiama consiueia que es u, o
lo que es lo mismo:
taylor(f,n) piopoiciona el polinomio ue NcLauiin ue giauo n1 ue f.
Poi uefecto, el piogiama toma n=6. Es uecii, que
taylor(f,x0) uaiia el mismo iesultauo que taylor(f,6,x0)
taylor(f) equivale en la pictica a taylor(f,6,0)

E j e m p l o s :
>> syms x,tayloi(exp(x))
ans =
x^S12u + x^424 + x^S6 + x^22 + x + 1

9

>> syms a,tayloi(exp(x),4,a)
ans =
exp(a) + (exp(a)*(a x)^2)2 (exp(a)*(a x)^S)6 exp(a)*(a x)
Paia apieciai mejoi cul es el polinomio que MatLab nos uevuelve,
pouemos ejecutai la oiuen
>> pietty(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
(x) = 1 - x
3

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.


1u


2.3 Extremos de funciones

Paia calculai el punto ue un inteivalo (a,b) uonue una funcion y=f(x)
alcanza su valoi minimo, se pueue usai el comanuo fminbnd con foimato

>>fminbnd('imagendelafuncin',a,b)

Paia calculai el punto uel inteivalo (a,b) en el que la funcion y=f(x)
alcanza su valoi mximo, hay que utilizai el mismo comanuo y calculai el
minimo ue la funcion y=f(x) en |a,bj.
E j e m p l o
>>syms x,h=2*x^2+x1;ezplot(h,|2,2j)
>> fminbnu('2*x^2+x1',2,2)
ans =
u.2Suu
>> fminbnu('(2*x^2+x1)',2,2)
ans =
1.9999
El minimo ielativo se coiiesponue con el nico punto ciitico ue la
funcion en el inteivalo:
>> h1=uiff(h)
h1 =
4*x + 1

11

>> solve(h1)
ans =
14
>> h2=uiff(h1) %La ueiivaua segunua es siempie mayoi que ceio
h2 =
4

- Define f1 y f2 de forma que sean las funciones derivadas de
primer y segundo orden de la funcin
(x) =
1
5+4 cuxx

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].

3 INTERPOLACIN
MatLab peimite tiabajai con una cantiuau impoitante ue tcnicas ue
inteipolacion que peimiten iealizai ajustes ipiuos que ocupan poca
memoiia.
La inteipolacion se uefine como la foima ue estimai valoies ue una
funcion entie aquellos uauos poi un conjunto ue uatos, y es una
heiiamienta muy valiosa cuanuo no se pueue evaluai ipiuamente una
funcion en puntos inteimeuios. Poi ejemplo, esto ocuiie cuanuo los puntos
son el iesultauo ue algunas meuiuas expeiimentales o pioceuimientos
computacionales muy laboiiosos.

12

Cuanuo queiemos encontiai una funcion cuya gifica pase a tiavs ue un
conjunto finito ue puntos obteniuos meuiante expeiimentos, usamos la
tcnica ue inteipolacion. Quizs el ejemplo ms simple ue inteipolacion sea
las gificas ue MatLab. Poi uefecto, MatLab uibuja lineas iectas
conectanuo los puntos que constituyen la gifica. Esta inteipolacion lineal
estima qu valoies inteimeuios estn en la linea iecta que hay entie los
puntos intiouuciuos. Cuanuo el nmeio ue puntos aumenta y la uistancia
entie ellos uisminuye, la inteipolacion lineal se hace ms piecisa.
Pouemos obseivai un ejemplo al ejecutai las oiuenes siguientes:
>> x1=linspace(u,2*pi,6u);
>> x2=linspace(u,2*pi,6);
>> plot(x1,sin(x1),x2,sin(x2),'i.')
>> xlabel('x'),ylabel('sin(x)'),title('Inteipolacion lineal')
>> axis('tight')
Existen mltiples mtouos paia hacei la inteipolacion uepenuienuo ue
las hipotesis que se hagan.
En su entoino ue tiabajo, MatLab piopoiciona entie otios el comanuo
interp1 paia facilitai la inteipolacion. Poi ejemplo, supongamos que
tenemos uos vectoies, X e Y, ue cooiuenauas X(1),...,X(n) e Y(1),...,Y(n)
iespectivamente: pouemos utilizai este comanuo paia inteipolai un vectoi
ue valoies Xu. Es uecii, que uauos los paies ue puntos (X(i),Y(i)), interp1
encuentia Yu(j) en el Xu(j) ueseauo tal que Yu(j)=f(Xu(j)), sienuo f una
funcion continua que se encuentia poi inteipolacion. En este caso, se llama
inteipolacion uniuimensional poique la funcion f uepenue ue una nica
vaiiable.
La sintaxis ue llamaua es

1S

Y0=interp1(X,Y,X0)
obteninuose el vectoi Yu tal que (Xu(j),Yu(j)) son los puntos hallauos poi
inteipolacion uniuimensional sobie el conjunto ue puntos uauo.
Se pueue utilizai la vaiiante
Y0=interp1(Y,X0)
que supone que X=1:n sienuo n la longituu ue Y, asi como
Y0=interp1(X,Y,X0,'mtodo')
uonue mtouo es un aigumento opcional, que peimite especificai el
mtouo ue inteipolacion ueseauo. Las posibiliuaues ue eleccion paia
mtouo son: nearest (vecino ms ceicano), linear (lineal), cubic (cbica ue
Beimite), spline, pchip (inteipolacion cbica polinomial ue Beimite a
tiozos) y v5cubic (vaiiante ue la inteipolacion cbica ue MatLab5). La
eleccion uel mtouo ueteimina la "suaviuau" ue la cuiva ue inteipolacion.
El mtouo poi uefecto es linear.
Poi ejemplo, paia especificai inteipolacion cbica en vez ue lineal
usaiiamos la sintaxis
Yu=inteip1(X, Y, Xu, 'cubic')

E j e m p l o
Como paite ue un pioyecto ue ciencia, Lisa iegistia la tempeiatuia oficial
en Spiiengfielu caua hoia uuiante 12 hoias ue foima que se pueua usai esa
infoimacion paia facilitai uatos sobie el clima local.
Lisa analiza sus uatos, intiouucienuo un inuice paia las hoias en que se
tomaion los uatos
>> hoias=1:12;

14

y un vectoi paia las lectuias ue tempeiatuia coiiesponuientes, en giauos
Celsius
>> temps=|S 8 9 1S 2S 29 S1 Su 22 2S 27 24j;
Ejecutanuo las oiuenes siguientes, MatLab muestia una gifica en la que
uibuja lineas que inteipolan linealmente los puntos. Paia estimai la
tempeiatuia en cualquiei momento uauo, Lisa pouiia intentai inteipietai
la gifica visualmente. Alteinativamente, pouiia usai el comanuo interp1
como se inuica a continuacion:
>>plot(hoias,temps,+,hoias,temps,i)
>> t=inteip1(hoias,temps,9.2S) %temp. estimaua a las 9 y cuaito
t =
22.7Suu
>> t=inteip1(hoias,temps,4.7S) %temp. estimaua a las S menos cuaito
t =
22.Suuu
>> t=inteip1(hoias,temps,|S.2S,6.S,7.2S,11.7Sj)
t =
1u.Suuu Su.uuuu Su.7Suu 24.7Suu
En lugai ue suponei que es una linea iecta la que conecta los puntos,
pouemos pensai en alguna cuiva ms suave. La hipotesis ms comn es la
ue tomai un polinomio ue teicei oiuen, poi ejemplo, un polinomio cbico,
utilizauo paia mouelai caua segmento entie puntos consecutivos y tal que
la penuiente ue caua uno ue estos polinomios coinciue en los puntos. Este
tipo ue inteipolacion se llama splinescbicos o simplemente splines.
0sanuo este mtouo, Lisa encuentia la solucion siguiente:

1S

>> t=inteip1(hoias,temps,9.2S,'spline') %temp. estimaua a las 9 y cuaito
t =
21.776S
>> t=inteip1(hoias,temps,4.7S,'spline') %temp. estimaua a las S menos
cuaito
t =
22.8u8S
>> t=inteip1(hoias,temps,|S.2S,6.S,7.2S,11.7Sj,'spline')
t =
9.881S Su.u427 S1.S9S9 2S.1792
0bsivese que las iespuestas obteniuas poi Lisa con el mtouo spline son
uifeientes ue los iesultauos que le piopoiciono la inteipolacion lineal.
Como la inteipolacion es un pioceso ue estimai o "auivinai" valoies, tiene
sentiuo que usai uifeientes ieglas ue estimacion conuuzca a iesultauos
uistintos.
0no ue los usos ms comunes ue la inteipolacion con splines es
"suavizai" la cuiva que pasa poi los puntos. Esto es, uauo un conjunto ue
uatos, se utiliza la inteipolacion con spline paia evaluai los uatos con
puntos ms pioximos. Poi ejemplo:
>> h=1:u.2S:12; %estimai la tempeiatuia caua cuaito ue hoia
>> t=inteip1(hoias,temps,h,'spline');
>> plot(hoias,temps,'+',hoias,temps,'i.',h,t)
>> title('Tempeiatuia en Spiingfielu')
>> xlabel('Boias'),ylabel('uiauos Celsius')

16

En la gifica obteniua con las oiuenes anteiioies, la linea a tiazos es la
inteipolacion lineal, la linea soliua es la inteipolacion spline suavizaua y los
uatos oiiginales se maican con una ciuz. Al pieguntai poi una iesolucion
"ms fina" sobie el eje Boias y utilizanuo la inteipolacion poi splines,
tenemos una estimacion ue la tempeiatuia ms suave, peio no
necesaiiamente ms piecisa. En paiticulai, obsivese que la penuiente ue
la cuiva solucion no cambia ue foima abiupta en los puntos.
A la hoia ue utilizai interp1, uebemos tenei en cuenta que no se le pueue
pieguntai poi iesultauos fueia uel iango ue la vaiiable inuepenuiente; poi
ejemplo, la oiuen siguiente conuuce a un eiioi, ya que hoias vaiia entie 1 y
12.
>> inteip1(hoias,temps,12.S)
ans =
NaN

Paia inteipolacion uniuimensional usanuo splines cbicos, MatLab
tambin uispone uel comanuo spline. La sintaxis ue llamaua es en este caso
Y0=spline(X,Y,X0)
En MatLab tambin pouemos inteipolai uatos usanuo splines y otios
mtouos en un pisps. Touo lo que tenemos que hacei es uibujai los puntos
y en las opciones ue nuestia ventana "Figure" escojei uel men Tools la
opcion BasicFitting y seleccionai, poi ejemplo, a continuacion spline
interpolant. Pueues piobai a haceilo uesue la ventana gifica obteniua con
la oiuen
>>plot(hoias,temps,+)


17

- Usando el comando interp1 con el mtodo por defecto, hallar y
representar 40 puntos de interpolacin (x(i),y(i)) segn la funcin y=senx
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.

4 MTODO DE BISECCIN
Se utiliza paia apioximai una iaiz ue la ecuacion f(x)=u uonue f es una
funcion que veiifica las hipotesis uel teoiema ue Bolzano en un inteivalo
ceiiauo. Los pasos a efectuai son los siguientes:
1. Beteiminai un inteivalo |a,bj tal que f(a) tenga uistinto signo que f(b).
2. Ballai el punto meuio c uel inteivalo.

18

S. Elegii, ue entie |a,cj y |c,bj, un inteivalo uonue la funcion cambie ue
signo.
4. Repetii los pasos 2 y S hasta conseguii la piecision ueseaua.

Paitienuo uel inteivalo |a,bj , conseguimos una sucesion ue inteivalos ue
foima que en caua paso la longituu uel inteivalo escogiuo poi contenei a la
iaiz ue f(x)=u es la mitau ue la longituu uel inteivalo consiueiauo en el paso
anteiioi.
Paia vei un ejemplo ue las posibiliuaues que piesentan los ficheios .m a la
hoia ue uefinii funciones, pouemos elaboiai un sencillo piogiama que
facilite la puesta en pictica uel mtouo ue biseccion.
Euitaiemos un ficheio ue funcion eligienuo en el men piincipal la
opcion New ue File y seleccionanuo a continuacion MFile. Pouemos
llamailo bisecci.m y piopoicionaiemos entie los uatos ue entiaua los
extiemos ue un inteivalo en el que f cambie ue signo.
Comenzamos poi ueclaiailo como funcion y uefinii sus aigumentos ue
entiaua y saliua. La piimeia linea uel ficheio bisecci.m pueue queuai asi,
aunque cabe sofisticaila intiouucienuo otios paimetios ue entiaua y ue
saliua:
function|c,fc j=bisecci(f,a,b,uelta,Nmax)
A continuacion incluimos nuestios comentaiios; poi ejemplo,
%BISECCI apioxima ceios ue funciones en las hipotesis ue Bolzano
% Entiaua:
% f es una funcion continua,
% a y b son los extiemos uel inteivalo ue bsqueua,

19

% uelta es la toleiancia paia la solucion
% Nmax es el nmeio mximo ue iteiaciones peimitiuas
% Saliua:
% c es la solucion apioximaua,
% fc=f(c)
En caua paso uel mtouo ue biseccion, hallamos el punto meuio c uel
inteivalo |a,bj y elegimos el subinteivalo, |a,cj o |c,bj en el que se piouuce
el cambio ue signo. Becho esto, ienombiamos las vaiiables ue mouo que el
semiinteivalo seleccionauo se llame |a,bj en el paso siguiente.
0na vez giabauo el ficheio, en la ventana ue comanuos uefinimos la
funcion f que queiemos utilizai. Poi ejemplo,
>>syms x, f=cos(x)+1x;
A continuacion, solo tenemos que ejecutai la funcion bisecci
intiouucienuo auems ue f los valoies ueseauos paia a, b, uelta y Naxit.
En nuestio ejemplo, paia apioximai una solucion ue la ecuacion
cos x + 1 - x = u
en el inteivalo |u'8,1'6j con un eiioi menoi que u'uuu1, pouemos ejecutai
>>|c,fcj=bisecci(f,u.8,1.6,u.uuu1,2u)


2u

- Utilizar el algoritmo de dicotoma para aproximar una raz de
las siguientes ecuaciones con un error menor que 0'0001:
x
3
-5x +2 = con [a,b]=[1,5]
e
x
- 2 - x = con [a,b]=[-2'4,1'6]
lnx -5 +x = con [a,b]=[3'1,4'5]


5 REFERENCIAS
Natlab y Natemtica computacional
Lantaion Snchez, Sagiaiio Llanas }uiez, Beinaiuo
Bellisco Nauiiu 2u1u
The Nath Woiks Inc.
Natlab, euicion ue estuuiante. uuia ue usuaiio. veision 4
Pientice Ball
Nauiiu 199S
Natemticas en Ingenieiia con Natlab
Peiegiina Quintela Estvez
0niveisiuaue ue Santiago ue Compostela, 2uuu.
Natlab y sus Aplicaciones en las Ciencias y la Ingenieiia
Csai Piez Lopez
Pientice Ball
Nauiiu 2uu2