You are on page 1of 10

L

m
it
e
s

Lalibrera
SymbolicMathToolboxdeMatLabper
mitecalcularlmitesdefunciones
directamentemedian
teelcomandolimit,quesigueelforma
to

limit(f,x,a)

Paracalcularellmitedelafuncin
fcuandolavariablextiendealpu
ntoa

limit(f,a)obienlimit(f)que
equivalealimit(f,0)

Paraelclculodelmiteslaterale
ssepuedeutilizarlaopcin
correspondiente:

limit(f,x,a,'left')
limit(f,x,a,'right')

Sepuedeutilizarlacapacidaddelc
omandolimitparaactuarsobre
vectoresalahoraecalcularellmi
tedevariasfuncionesenunmism
o punto.

Ejemplo:
Calcular el lmite
limx1(x2+2x1x2+1)=1
Lmites indeterminados de la forma 0/0 o /. Regla de L'Hpital
limxaf(x)g(x)=limxaf'(x)g'(x)limx0sin(ax)x=limx0acos(ax)1=a
Otras formas indeterminadas son 0 y - que se transforman en 0/0 o /.
Ejemplos:
limx0(1sin2x1x2)limx(1+ax)xlimx0(cos(2x))3/x2
>> sym x a;
>> y=(x^2+2*x-1)/(x^2+1);
>> limit(y,x,1)
ans =1
>> limit(sin(a*x)/x,x,0) % alternativamente, limit(sin(a*x)/x)
ans =a
>> limit((1+a/x)^x,x,inf) %alternativamente, limit((1+a/x)^x,inf)
ans =exp(a)
>> y=1/(sin(x)^2)-1/x^2;
>> limit(y,x,0)
ans =1/3
>> y=cos(2*x)^(3/x^2);
>> limit(y,x,0)
ans =1/exp(6)
inf representa en MATLAB el infinito, x representa la variable respecto de la cual se
calcula el lmite. La funcinlimit requiere tres parmetros pero asume valores por
defecto, como puede probarse en los comentarios al cdigo..
La derivada de una funcin f(x) es el lmite
f'(x)=limh0f(x+h)f(x)h
La derivada de y=sin(x) es y'=cos(x)
>> syms x h;
>> limit((sin(x+h)-sin(x))/h,h,0)
ans =cos(x)
De forma alternativa, podemos calcular las derivadas definiendo la funcin f(x) como
funcin annima y aplicando la definicin de derivada.
>> syms x h;
>> f=@(x) sin(x)
>> limit((f(x+h)-f(x))/h,h,0)
ans =cos(x)
Definimos la funcin annima f(x) con cualquier expresin y podemos calcular su
derivada.

Lmites por la izquierda y por la derecha


limx0x|x|=1limx0+x|x|=1
>>syms x;
>> limit(x/abs(x),x,0,'left')
ans =-1
>> limit(x/abs(x),x,0,'right')
ans =1
Derivada

Permitecalcularderivadas
deunaexpresin
algebraicaodeunafunci
ndeunaomsvariables.

D
e
riv
a
d
a
s

Comando dif

Obtendremoslaksimaderivad
adelafuncinoexpresin.

Nota.Tambinfuncionanlosf
ormatossiguientes:

dif(funcion,variable,k
)
dif('expresion',variab
le,k)

dif(funcion,k,variable)
dif('expresion',k,varia
ble)

Ejemplo:
Derivada de una funcin
La funcin diff calcula la derivada de una funcin respecto a una variable x. Por
defecto, calcula la derivada primera, pero tambin puede calcular la derivada segunda,
tercera, etc., indicndoselo en su segundo argumento.
>> syms x;

>> y=(sin(x))^2;
>> yp=diff(y)
yp =2*cos(x)*sin(x)
>> ypp=diff(yp)
ypp =2*cos(x)^2 - 2*sin(x)^2
>> diff(y,2)
ans =2*cos(x)^2 - 2*sin(x)^2
Derivadas parciales (respecto de una variable)
>> syms x y;
>> diff(x*sin(x*y),x)
ans =sin(x*y) + x*y*cos(x*y)
>> diff(x*sin(x*y),y)
ans =x^2*cos(x*y)
Ejemplo:
Comprobar que la funcin y=Ae2xcos(3x+b) es la solucin de la ecuacin
diferencial que describe las oscilaciones amortiguadas, donde A y b son constantes que
se determinan a partir de las condiciones iniciales (posicin inicial y velocidad inicial).
d2ydx2+4dydx+13y=0
>> syms x A b;
>> y=A*exp(-2*x)*cos(3*x+b);
>> diff(y,2)+4*diff(y)+13*y
ans =0

Integrales

Mtodo de Newton Raphson (Newton-Fourier) en Matlab


Cuando hablamos de mtodos numricos o anlisis numrico es imposible no nombrar
el mtodo de Newton-Raphson tambin conocido como mtodo de Newton-Fourier,
este mtodo es del tiempo abierto ya que su convergencia no est garantizada y
depende de una buena estimacin inicial de la raz y de la naturaleza propia de la

funcin f(x) sabiendo entonces que si la funcin presenta varios punto de inflexin o
pendientes muy grandes cerca de la raz a encontrar entonces la probabilidades de que el
mtodo finalmente diverja comienzan a aumentar.
(de una sola variable, aunque en estradas siguientes veremos generalizaciones para
varias variables)

El funcionamiento del mtodo es relativamente sencillo, obviamente el primer paso es


definir la funcin F(x) que se quiere analizar y luego una estimacin Xn de la raz que
esperamos encontrar, con lo anterior se define entonces la coordenada del
punto[Xn,F(Xn)] como se puede ver en la fingura 1, donde la pendiente (m) de la recta
en cuestin viene dada por la derivada de la funcin evaluada en dicho punto es
decirF'(Xn) entonces en este caso el mtodo se basa en que el corte entre la recta
tangente y el eje X ofrece una nueva y mejor aproximacin a la raz que se desea
encontrar, es decir que el cort con el eje X ser X(n+1) y el procedimiento descrito se
repetir en varias ocasiones hasta encontrar un buen aproximado de la raz.

Fig 1. Se traza una linea tangente a la curva en el punto [Xn,F(Xn)] con pendiente
m=F'(Xn) y el corte con el eje X ser la nueva aproximacin a la raz.
Entonces sea f una funcin derivable que se encuentra definida en el intervalo real [a ,
b] y n el conjunto de nmeros naturales (1,2,3,4,5,6) entonces partimos con un
estimado inicial Xo entonces, la ecuacin propuesta en el mtodo para las
aproximaciones sucesivas son:

Donde f representa la derivada de la funcin f , y, Xn+1 la aproximacin ms reciente a


la raz buscada.

ALGORITMO EN MATLAB.
Teniendo en cuenta todo lo anterior, y tomando como base la ultima ecuacin vamos a
implementar el cdigo en Matlab que finalmente nos permitir hallar las races que
queremos encontrar.

(Recuerden, como es usual el cdigo estar descargable al final del articulo).

Inicialmente lo primero que se debe hacer (cmo siempre) es solicitar al usuario la


entrada de la funcin a la cual se le quiere calcular la raz, recordando definir la variable
X como simblica:

A continuacin, aunque no es un paso necesario, siempre es bueno presentar una


visualizacin del comportamiento de la funcin, porque (cmo sabemos) la
convergencia de este mtodo de otros por el estilo se mejora cuando la estimacin es
ms aproximada a la raz real, en este caso hago un break en cuanto al mtodo y le
solicito al usuario un par de limites es los que desee ver el comportamiento:

Continuando con la implementacin del mtodo y despus de mostrar el


comportamiento de la curva, podemos solicitarle al usuario del programa que ingrese su

estimacin, a la que llamaremos Xn y enseguida obtendremos la derivada de la


funcin Y obviamente con respecto a x cmo lo vemos en el siguiente cdigo:

Recordemos que, cmo la mayora de mtodos que hemos visto hasta ahora se basan en
la iteracin y la estimacin del error, pues Newton-Raphson no es la excepcin y lo
que haremos a continuacin ser crear el bucle en el que se llevar a cabo todo el
proceso, incluyendo obviamente la estimacin del error ya que a su vez ser nuestra
condicin de parada del siclo. (entrada sobre calculo del error en mtodos numricos en
matlab).

y este es el final del mtodo numrico Newton-Raphson cmo podemos observar es


muy sencillo de implementar y bastante potente, siempre hay que tener en cuenta la
gran importancia de una buena estimacin inicial ya que de ella depende que el mtodo
presente una mayo convergencia.
cmo se puede observar antes de comenzar las iteraciones en el bucle while hay que
inicializarlas para evitar que Matlab nos presente errores de compilacin, en nuestro
caso el error lo inici en 1, aunque esto no tiene mucha importancia ya que solo
necesitamos que se cumpla la condicin de iteracin para que posteriormente se calcule
el verdadero errorOtro factor importante es la tolerancia que quiere decir que tanto
permitimos el error en este caso quiero que el error sea 0.0001 menor, en realidad a la
hora de visualizarlo en la command window no se notar mucho la precisin en los
decimales ya que por defecto muestra solo 4 decimales, pero a nivel de las variables si
se toman todos, as que siempre es bueno tomar una buena tolerancia para una mayor
precisin en los clculos.

Finalmente te mostrar el funcionamiento de todo lo que dijimos antes, para este caso
queremos encontrar la raz aproximada de la funcin f(x) = exp(x)-(1/x).

Entones despus de tener el cdigo y haberlo guardado con el mismo nombre de la


funcin (en este caso Newton_Raphson) procedemos a llamarla desde la command
window, al hacerlo ella nos indicar que ingresemos la funcin.

Al hacer esto, el programa (opcionalmente) nos pedir un par de limites para ver el
comportamiento de la funcin y tomar una buena decisin, en este caso tomaremos
como limite superior 2 y como inferior 0.5 y observaremos como se comporta en ese
sector:

Cmo podemos ver una de las diferentes races que presenta esta funcin est cerca a
0.5, a modo de experimento tomaremos la estimacin que nos pide el programa como 1
y esperamos el resultado con una tolerancia de 0.00001:

en mi caso tengo Matlab configurado en este momento para que me muestre esta
cantidad de decimales por precisin, finalmente como podemos ver el resultado que nos
arroja el mtodo con la precisin establecida es el nmero que aparece arriba y si
evaluamos este valor en la funcin obtendremos -2.4510^(-12) lo que quiere decir que
es una gran aproximacin a 0 (cero). Recuerden que la tolerancia influye en el tiempo
de ejecucin del programa, entre menor sea la tolerancia al error mas procesos se
llevarn a cabo para logar una buena aproximacin a la raz esperada.

You might also like