Cálculo simbólico con Matlab Syms

download Cálculo simbólico con Matlab Syms

of 9

description

Guía para el cálculo simbólico de una variable con el paquete Syms de Matlab.

Transcript of Cálculo simbólico con Matlab Syms

Clculo simblico en MatLabBoyan Bonev Facultad de Ciencias Econmicas y Empresariales Universidad de Alicante 31 de octubre de 2011

Resumen de funcionalidadesA continuacin se describen varias funcionalidades del paquete de clculo simblico.

Paquete symsEn un principio Matlab se dise orientado al clculo numrico. As, si intentamos calcular el seno de una variable no numrica:

>> y=sin(x) ??? Undefined function or variable 'x'. Matlab no conoce el valor numrico de x. >> syms x

Recientemente se aadi un paquete adicional que permite a Matlab trabajar con variables simblicas, teniendo que declararlas antes de usarlas:

SimplicarAhora podemos usar expresiones que contengan a esta variable. Por ejemplo, si queremos simplicar o evaluar una expresin lo hacemos con el comando

simplify. >> y=sin(x); >> z=cos(x); >> simplify(y^2+z^2) ans = 1

Sustituir valores en la variablePara evaluar una expresin con determinado valor de la variable:

1

>> subs(x^2-x-1,-3) ans = 11

Resolver ecuacionesPara resolver la ecuacin

>> solve(x^2-x-1) ans = 5^(1/2)/2 + 1/2 1/2 - 5^(1/2)/2

x2 x 1 = 0:

obteniendo estas dos soluciones.

LmitesCon el paquete simblico tambin podemos calcular lmites, derivadas, integrales, etc. Para calcular el lmite para

>> limit(sin(x)/x,0) ans = 1

f (x)= sin(x) x f (n) =

cuando

x

tiende a cero:

>> syms n >> limit((n^3+3*n^2-2*n)/(3*n^3-1),inf) ans = 1/3

Y un lmite en el innito de

n3 +3n2 2n : 3n3 1

DerivadasPara calcular derivadas usamos el comando

>> syms x >> f=x^3-cos(x)+1; >> g=diff(f) g = 3*x^2+sin(x)

diff:

Evaluar funcionesNtese que en los comandos introducidos se ha denido la funcin como la funcin

f (x),

as por

g(x),

que almacena el resultado de la derivada. Estas funciones

se pueden evaluar en un valor concreto de ejemplo, evaluamos >> subs(f,1) ans = 1.4597

x

por medio del comando

subs,

f (1):

2

Integrales indenidasint. Si queremos calcular >> int(g) x^3 - cos(x)Por otro lado tambin es posible calcular primitivas utilizando el comando la primitiva del ltimo resultado,

g:

Integrales denidasPara calcular integrales denidas en un intervalo, podemos indicar los lmites de ste en la funcin introducimos:

int. Por ejemplo, para la integral denida

31

3x3 +sin(x) dx

>> int(3*x^2+sin(x),1,3) ans = cos(1) - cos(3) + 26Nota: para integrales impropias utilizaremos

-inf inf para indicar el lmite

inferior y/o superior.

Representacin grcaPodemos representar grcamente una funcin utilizando la funcin ezplot:

>> ezplot(f)x

o bien tecleando la expresin directamente (pero habiendo declarado previamente como simblica, con

syms x): >> ezplot(x^3 - cos(x) + 1)

El resultado se puede ver en la gura 1. Ms informacin en la documentacin del paquete syms:

http://www.mathworks.es/help/toolbox/symbolic/index.html

Suma de series1 2n ; su suma desde un trmino hasta otro, por ejemplo desde 1 hasta 3, se calcula con:Sea la serie

>> syms n >> symsum(1/2^n,1,3) ans = 7/8

La suma desde un trmino hasta el innito se calcula as:

>> symsum(1/2^n,1,inf) ans = 1

3

x3 cos(x) + 1 250 200 150 100 50 0 50 100 150 200 250 6 4 2 0 x 2 4 6

Figura 1: Resultado de la funcin

ezplot.

Ejemplo de anlisis de una funcinA continuacin se muestra un ejemplo de estudio de una funcin por MatLab, pero no objetivo de la asignatura no es aprender a programar. La funcin a estudiar ser

asistido automtico. Aunque podramos automatizarlo del todo, el f (x) = x 4 x2

La introducimos en MatLab, declarando previamente que la como variable simblica, y no numrica:

x

debe tratarse

>> syms x >> f=x*sqrt(4-x^2) f = x*(4 - x^2)^(1/2)

Nota: a lo largo de esta gua lo que el usuario introduce en matlab est marcado por >>; lo dems es la respuesta de MatLab.

Dominio, continuidad, asntotas verticalesEl dominio de la funcin son los ecuacin

xR

tales que

4 x2 0.

Resolvemos la

4 x = 0 y obtenemos >> solve(4-x^2,0) ans = 2

2

dos soluciones:

4

-2Para ver si y el 3:

4 x2

es positivo o negativo en el intervalo

[2, 2],

sustituimos

un valor que pertenezca al intervalo y otro que no pertenezca, por ejemplo el 1

>> subs(4-x^2,1) ans = 3 >> subs(4-x^2,3) ans = -5Por tanto la funcin es negativa fuera del intervalo y positiva dentro, as que:

D(f ) = [2, 2]La funcin es continua en su dominio y no tiene asntotas verticales. Los lmites del dominio son cerrados as que no hace falta estudiar los lmites (sobra con sustituir en la funcin), pero si hubiera que hacerlo se hara con el comando:

>> limit(f,-2) ans = 0 >> limit(f,2) ans = 0

Puntos de corte con el eje yPara x = 0, >> subs(f,0) ans = 0 obtenemos que

f (0) = 0,

por tanto un punto de corte es el

(0, 0).

Puntos de corte con el eje xPara f (x) = 0 tenemos >> solve(f,0) ans = 0 2 -2 que resolver dicha ecuacin:

y obtenemos tres soluciones de

x para y = 0, as que los puntos de corte son:

(2, 0), (0, 0)

y

(2, 0).

5

Asntotas horizontalesNo es posible estudiar el comportamiento de la funcin en el innito porque est fuera de su dominio. De haberlo sido, lo habramos hecho as:

>> limit(f,inf) ans = i*Inf >> limit(f,-inf) ans = -i*Inf

En este caso obtenemos nmeros complejos (la i signica parte imaginaria), que no pertencen al dominio real (se debe a la raz cuadrada de nmeros negativos).

Primera y segunda derivadaComo vamos a utilizarlas repetidas veces, vamos a almacenarlas bajo los nombres f1 y f2 respectivamente. Adems vamos a aplicar el comando de simplicacin con el nico propsito de ver las mismas expresiones que hubiramos obtenido a mano:

>> f1 = simplify(diff(f)) f1 = -(2*(x^2 - 2))/(4 - x^2)^(1/2) >> f2 = simplify(diff(f1)) f2 = (2*x*(x^2 - 6))/(4 - x^2)^(3/2)Las expresiones obtenidas signican:

2(x2 2) f (x) = 4 x2 2x(x2 6) f (x) = (4 x2 )3

Crecimiento, decrecimiento y extremos localesPara obtener los puntos crticos tenemos que resolver la ecuacin >> solve(f1,0) ans = 2^(1/2) -2^(1/2) obteniendo dos soluciones: afecta slo al 2, no al signo). Para ver si son extremos locales y clasicarlos, los sustituimos en la segunda derivada: >> subs(f2, 2^(1/2)) ans =

f (x) = 0:

x=

2, x = 2.

(Ntese que la potencia (1/2)

6

-4.0000 >> subs(f2,-2^(1/2)) ans = 4.0000 obteniendo

0,en

por tanto

2) f ( < 0, por tanto x = 2 es un mximo local, y f ( 2) > x = 2 es un mnimo local.

Para ver qu valor alcanza la funcin en dichos extremos, sobra con sustituirlos

f (x): >> subs(f, 2^(1/2)) ans = 2 >> subs(f,-2^(1/2)) ans = -2Finalmente vamos a comprobar el crecimiento/decrecimiento de la funcin

dentro de todo su dominio, particionado por los dos extremos que hemos obtenido, es decir, en los intervalos

[2, 2), ( 2, 2)

y

( 2, 2].y

Para ello sobra con

que sustituyamos algn valor de cada uno de los intervalos en la pendiente es positiva o negativa, por ejempo,

f (x)

para ver si

>> subs(f1,-1.9) ans = -5.1561 >> subs(f1,0) ans = 2 >> subs(f1,1.9) ans = -5.1561 Por tanto: Si x [2, 2) f (x) < 0 f (x) es decreciente, si x ( 2, 2) f (x) > 0 f (x) es creciente, si x ( 2, 2] f (x) < 0 f (x) es decreciente.

1,9, 0

1,9:

Intervalos de concavidad/convexidad y puntos de inexinLa segunda derivada se anula en:

>> solve(f2,0) ans = 0 6^(1/2) -6^(1/2)

7

pero de los tres, slo el punto -1 y 1:

x = 0 pertenece al dominio de f (x). Estudiamos

el signo de la segunda derivada a ambos lados de dicho punto, sustituyendo en

>> subs(f2,-1) ans = 1.9245 >> subs(f2,1) ans = -1.9245 Si x (2, 0) f (x) > 0 f (x) es convexa, si x (0, 2) f (x) < 0 f (x) es cncava. La funcin cambia de convexa a cncava en x = 0,

por tanto el punto

(0, 0)

es un punto de inexin.

Representacin grcaRepresentamos grcamente una funcin utilizando la funcin ezplot:

>> ezplot(f, [-2.1, 2.1])

x (4 x2)1/2

2 1.5 1 0.5 0 0.5 1 1.5 2

2

1.5

1

0.5

0 x

0.5

1

1.5

2

En este caso hemos indicado entre qu intervalos debe dibujarse la funcin, para dejar un pequeo margen de 0.1 unidades a los lados del dominio de la funcin.

LimitacionesNtese que la grca no llega a representarse en los puntos

(2, 0)

y

(2, 0).

Segn la implementacin de las funciones de representacin puede haber distintas

8

limitaciones a la hora de representar. En este caso la gca est incompleta probablemente debido a que la pendiente de la funcin tiende a innito conforme se acerca al nal de su dominio. Sin embargo no signica que la funcin no est denida en estos puntos. Lo podemos comprobar dibujando la grca en un intervalo muy pequeo alrededor del punto -2. (Nota: el cambio de curvatura en la segunda grca con respecto a la primera se debe a diferentes cambios de escala en los ejes x e y).

>> ezplot(f,[-2.01,-1.99])x (4 x2)1/2 0 0.05 0.1 0.15 0.2 0.25 0.3 0.35 0.4 2.008 2.006 2.004 2.002 2 x 1.998 1.996 1.994 1.992 1.99

Ningn programa de representacin grca es perfecto. Es muy comn que importantes detalles de la funcin no aparezcan representados debido a la escala de representacin. Por tanto es arriesgado extraer conclusiones sobre una funcin solamente a partir de una grca generada por ordenador. Utilizaremos los programas matemticos para agilizar nuestro trabajo y para comprobar los resultados pero teniendo presentes los conocimientos tericos adquiridos en la asignatura.

ReferenciasMs informacin en la documentacin del paquete syms:

http://www.mathworks.es/help/toolbox/symbolic/index.html

9