Curso 2010/2011
Cálculo con MatLab
Práctica 2: CÁLCULO DIFERENCIAL
©Departamento de Matemáticas. UDC
1 LíMITES
limit(f,x,a)
El concepto de límite es la base del Cálculo Diferencial. La librería
Symbolic Math Toolbox de MatLab permite calcular límites de funciones
directamente mediante el comando limit, que sigue el formato
para calcular el límite de la función f cuando la variable x tiende al punto a.
Si f es una función de una única variable, no es necesario especificarla en
el formato, pudiéndose usar
limit(f,a) o bien limit(f) que equivale a limit(f,0)
Para el cálculo de límites laterales se puede utilizar la opción
correspondiente:
Se puede utilizar la capacidad del comando limit para actuar sobre
vectores a la hora de calcular el límite de varias funciones en un mismo
punto.
>> syms x
>> limit((1+1/x)^x,x,inf)
ans =
exp(1)
>> syms t, limit((1+t)^(1/t))
ans =
2
limit(f,x,a,'left')
limit(f,x,a,'right')
E j e m p l o s :
exp(1)
>> syms x,limit([1/x^2,sin(x)/x,log(x)],x,0,'right')
ans =
[ Inf, 1, ‐Inf]
Obtén la derivada de la función logaritmo neperiano
recurriendo a la definición de derivada y utilizando el comando limit.
- Utiliza el comando limit para calcular los límites laterales de la
función tangente en el punto π/2. ¿Qué responde MatLab si intentamos
calcular directamente el límite de la tangente en ese punto?
2 DERIVACIÓN
2.1 Comando diff
- Estudia la existencia de asíntotas horizontales y verticales de
y representa gráficamente la función f junto con sus asíntotas.
El paquete Symbolic Math Toolbox de MatLab permite realizar las
operaciones de derivación e integración simbólicas. En particular, el
comando diff de MatLab permite calcular derivadas de una expresión
algebraica o de una función de una o más variables. Ejecutando una orden
que siga uno de los siguientes formatos,
3
diff(funcion,variable,k)
diff('expresion',variable,k)
obtendremos la k‐ésima derivada de la función o expresión que tecleemos
respecto de la variable introducida en segundo lugar.
Si no se indica en tercer lugar un número entero k, MatLab considera
k=1.
Si no hay posibilidad de confusión en cuanto a la variable, podemos
omitirla.
Nota. También funcionan los formatos siguientes:
diff(funcion,k,variable)
diff('expresion',k,variable)
E j e m p l o
Supongamos que queremos hallar las derivadas no nulas del polinomio
f(x)=ax³+bx²+cx+d.
Podemos hacerlo como sigue:
>> syms a b c d x
>> f=a*x^3+b*x^2+c*x+d
f =
a*x^3+b*x^2+c*x+d
>> f1=diff(f) %sin especificar la variable
f1 =
3*a*x^2+2*b*x+c
4
>> f1=diff(f,x) %también calcula la derivada primera
f1 =
3*a*x^2+2*b*x+c
>> f2=diff(f,x,2) %derivada segunda
f2 =
2*b+6*a*x
>> f3=diff(f,x,3) %derivada tercera
f3 =
6*a
>> diff(f,3) %lo mismo sin indicar la variable, el programa considera que
es x
ans =
6*a
>> diff(f,x,4) %a partir de ésta, las sucesivas derivadas son nulas
ans =
0
>> fb=diff(f,b) %derivamos respecto del segundo coeficiente
fb =
x^2
Observación. Para derivar una constante, debemos primero definir la
constante como una expresión simbólica. Por ejemplo,
>> k=sym('7');
5
>> diff(k)
ans =
0
Si intentamos derivar directamente el programa responde con un doble
corchete:
>> diff(7)
ans =
[ ]
La operación de derivación, como otras, se puede extender a vectores (y
también a matrices). Si pedimos la derivada de un vector respecto de una
variable, Matlab calcula otro vector cuyos elementos son las derivadas,
respecto de la variable indicada, de los elementos del vector dado. Por
ejemplo:
>> syms x y
>> [2*x*y^2 7 x/y x‐y]
ans =
[ 2*x*y^2, 7, x/y, x‐y]
>> diff(ans,y)
ans =
[ 4*x*y, 0, ‐x/y^2, ‐1]
Recordemos que si la función que queremos derivar es polinómica,
también podemos usar el comando polyder, que actúa sobre un polinomio
escrito en forma de vector (teniendo en cuenta que MatLab identifica un
polinomio con el vector de sus coeficientes escritos en orden decreciente,
en cuanto a las potencias de x).
6
E j e m p l o s
En los siguientes ejemplos se introduce directamente la expresión que se
desea derivar:
>>syms x
>> 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) %evaluamos la derivada en pi/3
ans =
‐1.5000
>> diff('log(x)',x,3) %derivamos tres veces la función logaritmo
ans =
2/x^3
>> subs(ans,x,2) %evaluamos el resultado anterior para x=2
ans =
0.2500
>> diff('3*x^2‐6*y^3=x*y',’y’)
ans =
(‐18)*y^2 = x
7
- Utiliza el criterio de la derivada segunda para hallar los
2.2 Comando Taylor
extremos relativos de la función del ejercicio 3 y elabora una gráfica de
la función en la que figuren destacados los correspondientes puntos
del plano. Encuentra también un punto de inflexión de la función e
incorpóralo a la representación gráfica.
Para obtener el polinomio de taylor de una función f de una única
variable, podemos utilizar el comando taylor de MatLab y seguir alguno de
los formatos siguientes, donde n es un entero positivo:
taylor(f,n,x0) proporciona el polinomio de taylor de grado n‐1 de la
función f relativo a un punto x0.
Si no se especifica el punto en cuestión, el programa considera que es 0, o
lo que es lo mismo:
taylor(f,n) proporciona el polinomio de Mc‐Laurin de grado n‐1 de f.
Por defecto, el programa toma n=6. Es decir, que
taylor(f,x0) daría el mismo resultado que taylor(f,6,x0)
taylor(f) equivale en la práctica a taylor(f,6,0)
>> syms x,taylor(exp(x))
ans =
x^5/120 + x^4/24 + x^3/6 + x^2/2 + x + 1
E j e m p l o s :
8
>> syms a,taylor(exp(x),4,a)
ans =
exp(a) + (exp(a)*(a ‐ x)^2)/2 ‐ (exp(a)*(a ‐ x)^3)/6 ‐ exp(a)*(a ‐ x)
Para apreciar mejor cuál es el polinomio que MatLab nos devuelve,
podemos ejecutar la orden
>> pretty(ans)
- Halla el polinomio de Mc-Laurin de grado 7 para la función del
ejercicio anterior.
- Halla el polinomio de Taylor de segundo grado de la función
√
y utilízalo para obtener un valor aproximado de la raíz cúbica de 9/10. ¿Cuál
es el error cometido en la aproximación?.
- Calcula los polinomios de Taylor de grados 1, 2, 5 y 8 de la
función seno relativos al punto π/6. Represéntalos junto con la función seno
en cuatro ventanas gráficas que se puedan visualizar al mismo tiempo, en el
rectángulo [0,π]×[0,3]. Hazlo de forma que la función se distinga del
polinomio en el color y el trazo.
Comprueba además que el polinomio de Taylor de grado uno de la función
seno relativo al punto π/6 coincide con la tangente a la función seno en ese
mismo punto.
9
E j e m p l o
2.3 Extremos de funciones
Para calcular el punto de un intervalo (a,b) donde una función y=f(x)
alcanza su valor mínimo, se puede usar el comando fminbnd con formato
>>fminbnd('imagen de la función',a,b)
Para calcular el punto del intervalo (a,b) en el que la función y=f(x)
alcanza su valor máximo, hay que utilizar el mismo comando y calcular el
mínimo de la función y=‐f(x) en [a,b].
>>syms x,h=2*x^2+x‐1;ezplot(h,[‐2,2])
>> fminbnd('2*x^2+x‐1',‐2,2)
ans =
‐0.2500
>> fminbnd('‐(2*x^2+x‐1)',‐2,2)
ans =
1.9999
El mínimo relativo se corresponde con el único punto crítico de la
función en el intervalo:
>> h1=diff(h)
h1 =
4*x + 1
10
>> solve(h1)
ans =
‐1/4
>> h2=diff(h1) %La derivada segunda es siempre mayor que cero
h2 =
4
- Define f1 y f2 de forma que sean las funciones derivadas de
primer y segundo orden de la función
3
INTERPOLACIÓN
Representa f, f1, f2 y el eje de abscisas para valores de la variable
independiente comprendidos entre π/2 y 3π/2. A continuación, estudia los
extremos relativos de f en el intervalo I=[π/2,3π/2].
MatLab permite trabajar con una cantidad importante de técnicas de
interpolación que permiten realizar ajustes rápidos que ocupan poca
memoria.
La interpolación se define como la forma de estimar valores de una
función entre aquellos dados por un conjunto de datos, y es una
herramienta muy valiosa cuando no se puede evaluar rápidamente una
función en puntos intermedios. Por ejemplo, esto ocurre cuando los puntos
son el resultado de algunas medidas experimentales o procedimientos
computacionales muy laboriosos.
11
Cuando queremos encontrar una función cuya gráfica pase a través de un
conjunto finito de puntos obtenidos mediante experimentos, usamos la
técnica de interpolación. Quizás el ejemplo más simple de interpolación sea
las gráficas de MatLab. Por defecto, MatLab dibuja líneas rectas
conectando los puntos que constituyen la gráfica. Esta interpolación lineal
estima qué valores intermedios están en la línea recta que hay entre los
puntos introducidos. Cuando el número de puntos aumenta y la distancia
entre ellos disminuye, la interpolación lineal se hace más precisa.
Podemos observar un ejemplo al ejecutar las órdenes siguientes:
>> x1=linspace(0,2*pi,60);
>> x2=linspace(0,2*pi
Comentarios de: Cálculo con MatLab - Práctica 2: CÁLCULO DIFERENCIAL (0)
No hay comentarios