• No results found

Semantic Skill Level Classifications

EPC/ Construction

Si se comienza a calcular de forma analítica el siguiente límite, se obtiene como resul- tado: 2 2 5 4 2 2 0 x x x lim x o    

Este resultado indica que primeramente deben calcularse sus límites laterales para ver si existe o no dicho límite - para ello ambos límites laterales deben coincidir-. Matlab lo indicará devolviendo como resultado NaN, es decir, está indicando que ese límite no existe:

>>syms x, limit((x^2-5*x+4)/(x-2),x,2) ans =

NaN

Para ver el por qué no existe, se calculan los límites laterales y se observa que dan resultados distintos. Por lo tanto, el límite no existirá, como bien ha indicado Matlab. El cálculo de los límites laterales se hace especificándolo como tercer argumento en el comando anterior:

>>limit(expression,x,punto,’Right’), o bien >>limit(expression,x,punto,’Left’).

Estos argumentos también pueden indicarse con minúsculas. >> limit((x^2-5*x+4)/(x-2),x,2,'right') ans = -Inf >> limit((x^2-5*x+4)/(x-2),x,2,'Left') ans = Inf 3.4.2 Asíntotas

El cálculo de las asíntotas de una función no es más que ir hallando los diversos límites en cada caso.

a) Asíntotas verticales: la función f(x) tiene una asíntota vertical en x=a, si

x a

lim f x

o f .

De hecho, posee A.V. (asíntota vertical) aunque el límite no exista y aunque sólo uno de los límites laterales dé infinito.

Ejemplo 3.6 Hallar las asíntotas verticales de f(x)=ξ࢞ା૛

࢞ା૚. Representar la función y la

asíntota en la misma gráfica.

Claramente, el punto a estudiar es x=-1, ya que anula el denominador. Se comenzará hallando la asíntota:

>> syms x, y=sqrt(x+2)/(x+1);limit(y,x,-1) ans =

Por lo tanto, se observa que no va a existir el límite. Si se hallan los límites laterales: >> limit(y,x,-1, 'Right') ans = Inf >>limit(y,x,-1, 'Left') ans = -Inf

Es decir, existe una A.V. en x=-1. Para dibujar la función y la asíntota en una misma ventana:

>> x=-2:0.001:5;y=sqrt(x+2)./(x+1);plot(x,y,'b',[-1 -1],[-10 10],'k--'),axis([-2 5 -10 10])



Figura 3.1 Gráfico de función con asíntota vertical

Nota: Si se dan valores a la variable x con el comando linspace, unirá con un só- lo trazo las dos ramas de las figuras. Para que en principio no salga la gráfica to- da unida, defínase la variable como un vector y después indíquese la asíntota de forma gráfica.

Si se desea en la gráfica cambiar colores, ejes, poner una leyenda, un título o demás propiedades, recordar que puede ser realizado desde la ventana de la gráfica, o bien en el menú Edit> Properties Figure; o bien clicando en el último icono de dicha ventana y luego con el botón derecho del ratón acceder a más propiedades.

b) Asíntotas horizontales: la función f(x) tiene una asíntota horizontal en y=b, si

x lim f x b of . -2 -1 0 1 2 3 4 5 -10 -8 -6 -4 -2 0 2 4 6 8 10

Ejemplo 3.7 Calcular las asíntotas de la función ݂ሺݔሻ ൌ ଵ

୪୬ሺ௫ሻ. Representar dicha fun-

ción e indicar todas sus asíntotas en la misma gráfica. >> syms x, y=1./log(x);limit(y,x,inf) ans = 0 >> limit(y,x,1) ans = NaN

Por lo tanto, este límite no existe. Se comprueba con los límites laterales: >> limit(y,x,1,'right') ans = Inf >> limit(y,x,1,'left') ans = -Inf

Así que existe una A.H. en y=0, y una A.V. en x=1. Para representarlas:

>> x=0.01:0.0001:6;y=1./log(x);plot(x,y,'b',[1 1], [-5 5],'r--'), axis([0 6 -5 5]),hold on,plot(x,0,'r--')



Figura 3.2 Gráfico de función con asíntota horizontal y vertical



c)Asíntotas oblicuas:Para hallar las asíntotas oblicuas, rectas de la forma y=mx+n,

deben verificarse dos propiedades: Ž‹ ௫՜ஶ݂ሺݔሻ ൌ λ 0 1 2 3 4 5 6 -5 -4 -3 -2 -1 0 1 2 3 4 5

݉ ൌ ݈݅݉ ௫՜ஶ

݂ሺݔሻ

ݔ א Թ ך ሼͲሽ

Cuando se verifiquen estas dos propiedades, entonces se calcula

x

n lim f x

mx

of

ª¬



º¼

.

Con lo que la ecuación de la asíntota oblicua (A.O.) será y=mx+n, con lo valores de m y n obtenidos.

Observar que, por propia definición, si hay asíntotas horizontales ya no hay oblicuas y viceversa.

Ejemplo 3.8 Calcular las asíntotas de la función ࢌሺ࢞ሻ ൌ࢞૛ି૚

࢞ି૛

Se estudia el punto x=2 por anular el denominador, candidato a ser una A.V. >> syms x, limit((x^2-1)/(x-2),x,2,'right') ans = Inf >>limit((x^2-1)/(x-2),x,2,'left') ans = -Inf

Efectivamente en x=2 existe una asíntota vertical. Si se representa la función y la asíntota:

>> ezplot((x^2-1)/(x-2),[-5 5]), axis([-5 5 -10 10]), hold on, y=-10:.001:10;plot(2,y,'r--')



En el dibujo ya se ha destacado la A.V. x=2, pero también se observa que existe una asíntota oblicua que va a ser calculada:

-5 -4 -3 -2 -1 0 1 2 3 4 5 -10 -8 -6 -4 -2 0 2 4 6 8 10 x (x2 - 1)/(x - 2)

>> limit((x^2-1)/(x-2),x,inf) ans =

Inf

Por lo tanto, se cumple la primera condición para que haya A.O. Hay que verificar ahora si mא Թ ך ሼͲሽǣ >> m=limit((x^2-1)/(x*(x-2)),x,inf) m = 1 >> n=limit(((x^2-1)/(x-2))-x,x,inf) n = 2

Concluyendo que existe A.O., en la recta y=x+2. Para representar todo en una sola gráfica:

>>syms x, ezplot((x^2-1)/(x-2),[-5 5]), axis([-5 5 -10 15]), hold on ; >>y=-10:.001:15;plot(2,y,'r--')

>> hold on,ezplot(x+2,[-5 5]), axis([-5 5 -10 15])



Figura 3.3 Gráfico de función con asíntota oblicua y vertical

3.4.3 Límites de funciones a trozos

Hasta el momento Matlab no calcula de forma directa límites de funciones a trozos, debe irse seleccionando, en cada caso, el trozo de función en el que se está trabajando según dónde se quiera calcular el límite.

Ejemplo 3.9 Dada la función

2 1 1 1 1 3 1 3 x ,x f x , x x ,x ­   ° d  ® °  ! ¯

, averigua si es continua o no.

Primero, observar que el Dom(f)=Թ. Además, como en cada uno de los trozos es con- tinua, por ser funciones polinómicas, basta estudiar qué ocurre en los puntos frontera x=1,3. -5 -4 -3 -2 -1 0 1 2 3 4 5 -10 -5 0 5 10 15 x

Se introduce la función en Matlab, vía inline o vía Anonymus: >> f=inline('(x.^2).*(x<1)+1.*((1<=x)&(x<=3))+(x+1).*(3<x)') Continuidad en x=1: x f(1)=3, comprobado mediante >> f(1) ans = 1 x Calcular

1 x lim f x

o . Como x=1 es un punto frontera, se calcularán los límites

laterales, pero al ser una función a trozos debe indicarse qué trozo es el ade- cuado Ž‹ ௫՜ଵష݂ሺݔሻ ൌ Ž‹௫՜ଵݔ ଶ Ž‹ ௫՜ଵశ݂ሺݔሻ ൌ Ž‹௫՜ଵశͳ >> syms x, l1=[limit(x^2,x,1),limit(1,x,1)] l1 = [ 1, 1] x Como 1

1

1 1

xlim f xo xlim f xo f .El límite existe, coincide con la

función en el punto y, por lo tanto, f es continua en x=1. Continuidad en x=3:

x f(3)=1, pues: >> f(3) ans = 1

x Para calcularlim f xx 3

o ,de nuevo se hallan los límites laterales:

3 3 1 xlim f xo xlim xo  

3 3 1 xlim f xo xlim xo   >> l3=[limit(1,x,3),limit(x+1,x,1)] l3 = [ 1, 2] x Por lo tanto ׍

3 x lim f x

o , ya que los límites laterales no coinciden. Además, al

Así, la función f es continua en Թ̳ሼ͵ሽ.

3.5

Números Complejos

Para trabajar con zࣅԧ, Matlab proporciona las siguientes posibilidades.

ƒ Primero el usuario puede construir un número complejo con el comando >>complex(a,b), siendo a,bԹ

>> format rat >> complex(2,-3) ans =

2 - 3i

Con esta orden, ans pasa a ser ya un número complejo, no real, como puede compro- barse con el siguiente comando lógico (la respuesta de este tipo de comandos es 1 si la comparación es cierta, y 0 si la comparación es falsa):

>> isreal(ans) ans =

 0

ƒ Para calcular sus partes reales e imaginarias, Matlab posee los comandos >>reale>>imag, respectivamente:

>> z=complex(2,-3) z = 2 - 3i >> real(z) ans = 2 >> imag(z) ans = -3

ƒ Para operar con números complejos puede hacerse con las operaciones habi- tuales. Ejemplo 3.10 Calcular 1 2 3 i i   . >> z1=complex(1,1) z1 = 1 + 1i

>> z1/z ans = -1/13 + 5/13i O incluso directamente: >> (1+i)/(2-3*i) ans = -1/13 + 5/13i

ƒ Para hallar el complejo conjugado, se tiene el comando>>conj: >> conj(z)

ans =

2 + 3i

ƒ Y para hallar su módulo y argumento, si se pretende expresarlo en forma po- lar, exponencial o trigonométrica, será>>abs,>>angle, respectivamente: >> format short,abs(z)

ans = 3.6056

Observar que este valor corresponde a: >> sqrt(13)

ans = 3.6056

Nota: angle nos devuelve el ángulo en radianes, ya en el cuadrante adecuado. Si el argumento de un número complejo, se calculase mediante ܽݐܽ݊ሺ௜௠௔௚ሺ௭ሻ

௥௘௔௟ሺ௭ሻሻ, este

comando devuelve el ángulo en radianes en el primer cuadrante, si la tangente es positiva; y el ángulo en el cuarto cuadrante –medido en sentido negativo-, si la tangente es negativa. Siendo el usuario el que deberá seleccionar el ángulo ade- cuado, según la representación del número complejo.

ƒ Para calcular raíces, de forma directa Matlab sólo averigua una de ellas. >> z^(1/4)

ans =

1.3366 - 0.3352i

Para obtenerlas todas, se puede pasar el número complejo de forma binómica a forma exponencial, y trabajar con la expresión de un número complejo en forma exponencial:

z=|z|eiArg(z). Ahora basta operar así el número complejo, acordándose de que en Matlab el número e debe ser definido mediante

>>e=exp(1)

Finalmente, la fórmula para calcular raíces n-ésimas de un número complejo, z=|z|eiArg(z), dado en forma exponencial, quedaría resuelta con:

>> w=nthroot(abs(z),n)*exp(i*(angle(z)+2*pi*k)/n) con n dato y k=0, …, n-1

Donde el comando >>nthroot(X,N), siendo X un número real y N el índice de la raíz, calcula las raíces N-ésimas del número real X.

Ejemplo 3.11 Cálculo de las 4 raíces cuartas de z=2-3i

>> z_0=(abs(z)^(1/4))*exp(i*angle(z)/4) >> z_1=(abs(z)^(1/4))*exp(i*(angle(z)+2*pi)/4) >> z_2=z_1*exp(i*2*pi/4)

>> z_3=z_2*exp(i*2*pi/4)

Estos resultados pueden obtenerse directamente con la fórmula:

>> z=2-3*i;N=4;k=0:N-1;w=nthroot(abs(z),N)*exp(i*(angle(z)+2*pi*k)/N) w =

1.3366 - 0.3352i 0.3352 + 1.3366i -1.3366 + 0.3352i -0.3352 - 1.3366i

ƒ Para pasar un número complejo a su forma polar (o viceversa). Dadas las coordenadas cartesianas también puede efectuarse (además de calculando su módulo y argumento por separado), con el comando

>>[t,m]=cart2pol(a,b)

Cabe tener en cuenta que el ángulo lo devuelve en radianes y que devolverá el Argu- mento principal. Por lo que, según el afijo del número complejo, debe elegirse el ángu- lo adecuado correspondiente al cuadrante en el que se encuentre.

Para pasar de polares a cartesianas, se realiza con el comando: >>[a,b]=pol2cart(m,t)

ƒ Para representar el número complejo como un vector en el plano se tiene el comando

>>compass(z) % siendo z=a+bi o también como >>compass(real(z),imag(z))

Si lo que se quiere es representar sólo el afijo del número complejo z: >>plot(z,’o’)

Ejemplo 3.12 Representa los siguientes números complejos z1=2+2i y z2=3-2i.

Para representarlos en una misma ventana, usando la sintaxis indicada anteriormente, introducir

>> z1=2+2i; compass(z1); hold on; compass(3,-2) De donde se obtiene

Figura 3.4 Representación usando >>compass

Aunque este comando permite ir más allá, ya que directamente representa todas las raíces obtenidas de un número complejo. Retomando el Ejemplo3.11, si se quiere re- presentar las raíces cuartas de z=2-3i, cuyo resultado estaba en la variable w, se escri- be: >> compass(w) 1 2 3 30 210 60 240 90 270 120 300 150 330 180 0 0.5 1 1.5 30 210 60 240 90 270 120 300 150 330 180 0

Ejemplo 3.13 Se pide

(a) Dados los números complejos z1=2+3i, z2=-3+i, representar en color azul los afijos

de z1 y z2; en color rojo el afijo de z1+ z2; y en verde el afijo de i z1.

(b) Dado z 9, representar el triángulo cuyos vértices son los afijos de las raíces cúbicas de z. Comprobar que el triángulo es equilátero.

(c) Representar, en una misma figura, el triángulo del apartado (b) y el triángulo gira- do un ángulo cualquiera.

a) >>z_1=2+3*i; >>z_2=-3+i;

>>suma=z_1+z_2;giro=i*z_1; >>plot(z_1, 'ob')

>>text(real(z_1)+0.2,imag(z_1), 'z1') %indicamos las coordenadas donde ponemos el texto >>hold on >>plot(z_2, 'ob') >>text(real(z_2)+0.2,imag(z_2),'z2') >>plot(suma, 'or') >>text(real(suma)+0.2,imag(suma),'z1+z2') >>plot(giro, 'og') >>xlabel('real') >>ylabel('imaginario') >>puntos=[0 z_1 suma z_2 0]; >>plot(real(puntos), imag(puntos), 'b') >>vector1=[0 suma]; >>plot(real(vector1),imag(vector1),'r') >>vector2=[0 giro]; >>plot(real(vector2), imag(vector2), 'g') >>axis equal -3 -2.5 -2 -1.5 -1 -0.5 0 0.5 1 1.5 2  

b) >> z=-9; % Cálculo de las 3 raíces cúbicas por nuestra cuenta >>z_0=(abs(z)^(1/3))*exp(i*angle(z)/3);

>>z_1=(abs(z)^(1/3))*exp(i*(angle(z)+2*pi)/3); >>z_2=z_1*exp(i*2*pi/3);

>>% Representación del triángulo >>vertices=[z_0 z_1 z_2 z_0];

>>plot(real(vertices),imag(vertices), 'g')

Es interesante comprobar que se ha obtenido un triángulo equilátero, calculan- do la medida de cada uno de los lados, ejecutar para ello

>>lado1=abs(vertices(1)-vertices(2)),lado2=abs(vertices(2)-vertices(3)) >>lado3=abs(vertices(3)-vertices(1))

c) Representación en la misma figura del triángulo girado >>hold on

>>anguloGiro=pi/4;

>>verticesGirados=vertices*exp(i*anguloGiro); >>plot(real(verticesGirados),imag(verticesGirados), 'r')

Figura 3.6 Representación de las raíces cúbicas y del giro efectuado

3.6

Derivadas

Para derivar en Matlab se utiliza el comando >>diff

el cual trabaja en simbólico. Si no fuera así, Matlab lo que hace es calcular derivación numérica mediante diferencias finitas, que no es objeto de estudio de este libro. Por

eso, para hallar derivadas de funciones, se definirá previamente como simbólica aque- lla variable con respecto a la cual se quiere derivar la función.

Si se acude a la ayuda del comando que proporciona Matlab para derivación simbólica, se encuentra:

diff(S,'v') or diff(S,sym('v')) differentiates S with respect to v. diff(S,n), for a positive integer n, differentiates S n times. diff(S,'v',n) and diff(S,n,'v') are also acceptable.

diff(S,'v1','v2',...) or diff(S,sym('v1'),sym('v2'),...) differentiates S with respect to v1, v2, ...

Así, se ve cómo ir obteniendo las derivadas sucesivas, sin más que indicar el orden de derivación en el segundo o tercer argumento.

3.6.1

Funciones de 1 variable

Cuando sólo se trabaja con una variable, no hace falta indicarla para obtener la deriva- da.

Ejemplo 3.14 Obtener la primera y segunda derivada de f x

x2 1

 Para obtener la primera derivada:

>> syms x, diff(sqrt(x^2+1)) ans =

x/(x^2 + 1)^(1/2)

>> pretty(ans) ……….. (aquí no queda tan bien por el formato en papel) x

--- 2 1/2 (x + 1)

Para obtener la derivada de orden 2: >> diff(sqrt(x^2+1),2)

ans =

>> pretty(ans) 2 1 x --- - --- 2 1/2 2 3/2 (x + 1) (x + 1)

Finalmente, para poner esta operación más simplificada, se pide a Matlab que realice la suma de fracciones algebraicas:

>> factor(ans) ans =

1/(x^2 + 1)^(3/2)

3.6.2

Funciones de varias variables

En el caso de varias variables sí que debe especificarse con respecto a qué variable se deriva, obteniendo con ello las derivadas parciales. Es decir, las derivadas con respecto a las variables de los ejes. Aunque se desarrollará con más profundidad en el capítulo de funciones de varias variables, se ilustra aquí un ejemplo.

Ejemplo 3.15 Hallar las derivadas parciales de la función f (x,y)=3x2-y2+6.

Hallar డ௙

డ௫

>>syms x y, f=3*x^2-y^2-6; diff(f,x) ans = 6*x Hállese ahora డ௙ డ௬ >> f=3*x^2-y^2-6; diff(f,y) ans = - 2*y

3.7

Integración

Al igual que para la parte de derivación, en integración se procede a centrarse en el caso simbólico. El comando existente es:

>>int

int(S,v) is the indefinite integral of S with respect to v. v is a scalar SYM.

int(S,a,b) is the definite integral of S with respect to its symbolic variable from a to b. a and b are each double or symbolic scalars.

The integration interval can also be specified using a row or a column vector with two elements, i.e., valid calls are also int(S,[a,b]) or int(S,[a b]) and int(S,[a;b]).

int(S,v,a,b) is the definite integral of S with respect to v from a to b.

The integration interval can also be specified using a row or a column vector with two elements, i.e., valid calls are also int(S,v,[a,b]) or int(S,v,[a b]) and int(S,v,[a;b]).