• No se han encontrado resultados

Introducción a Maxima 1

N/A
N/A
Protected

Academic year: 2021

Share "Introducción a Maxima 1"

Copied!
29
0
0

Texto completo

(1)

Introducci´on a Maxima

1 M. Victoria Redondo Neble J. Rafael Rodr´ıguez Galv´an

3 de junio de 2005

1Copyright c° 2005, M. Victoria Redondo Neble, J. Rafael Rodr´ıguez Galv´an, Universidad de C´adiz. Este documento es libre. Se otorga permiso para copiarlo, distribuirlo y/o modificarlo bajo los t´erminos de la Licencia de Documentaci´on Libre GNU, versi´on 1.2 o cualquier otra versi´on posterior publicada por la Fundaci´on de Software Libre, http://es.gnu.org/Licencias/fdles.html

(2)
(3)

´Indice general

1. Una panorm´amica de Maxima 3

1.1. Arrancando Maxima . . . 4

1.2. Usando Maxima como una calculadora . . . 5

1.3. ´Algebra . . . 8

1.4. C´alculo diferencial e integral . . . 11

1.5. Gr´aficas de funciones . . . 14

1.6. ´Algebra Matricial . . . 17

2. Ejemplo: estudio de una funci´on 20 2.1. Dominio, puntos de corte, as´ıntotas . . . 21

2.2. Continuidad, derivabilidad . . . 24

2.3. Crecimiento, extremos relativos . . . 25

(4)

Cap´ıtulo 1

Una panorm´

amica de

(5)

Maxima es un programa de ordenador orientado a la manipulaci´on de expresiones algebraicas, que pueden incluir constantes, variables y funcio-nes. Entre estas manipulaciones se encuentran simplificaci´on, factorizaci´on, derivaci´on, integraci´on, etc.

Derivado de la implementaci´on original del conocido programa Macsyma del MIT, une a sus caracter´ısticas t´ecnicas las ventajas que representa su licencia libre1, contando con una din´amica comunidad de desarrollo e

inte-ractuando en simbiosis con otros programas libres como gnuplot, texmacs, emacs, wims, etc. Maxima est´a disponible para distintas plataformas, tales como GNU/Linux, MS Windows, etc.

El objetivo del presente documento, dista mucho de ser confeccionar una guia met´odica o exhaustiva, sino ofrecer una primera panor´amica global so-bre el funcionamiento del programa, mostrando alguna de sus caracter´ısticas m´as usadas desde el punto de vista de la aplicaci´on pr´actica.

1.1.

Arrancando Maxima

Maxima en s´ı, por defecto, posee un aspecto bastante espartano, en modo terminal. No obstante, aquellas personas que prefieran una mayor integra-ci´on en un entorno de ventanas, podr´an elegir entre numerosos programas (todos ellos con licencia libre) que constituyen interfaces que facilitan su uso. Por lo tanto, antes de utilizarlo, puede ser conveniente el investigar cu´ales de estas interfaces est´an instaladas en nuestro ordenador (o cuales ellas pueden ser instaladas con facilidad). Algunas de estas interfaces disponibles2para

Maxima son:

Modo terminal. Se arranca tecleando “maxima” desde la l´ınea de comandos del sistema operativo. Ideal para personas que buscan un acceso r´apido al programa y sacarle todo su jugo. Este modo tiene ven-tajas como el completado de sintaxis pulsando la tecla TAB, hist´orico de comandos, etc.

Interfaces gr´aficas:

texmacs: es un procesador de textos gr´afico capaz de exportar ficheros en LATEX y ejecutar Maxima (adem´as de otros sistemas

computacionales, como Axiom, Octave, etc.) en una sesi´on que es insertada dentro el editor. El uso de texmacs ofrece ventajas,

1Maxima se distribuye bajo GNU Public License (GPL)

(6)

como la posibilidad de facilitar la entrada de expresiones ma-tem´aticas o de formatear autom´aticamente (usando LATEX) los

resultados para facilitar su lectura.

wxmaxima: una interfaz gr´afica que posee entradas de men´us y de di´alogo espec´ıficas para, utilizar Maxima a golpe de rat´on, sin tener que recordar la sintaxis de sus comandos, e introdu-cir c´omodamente todo tipo de expresiones, como matrices, series num´ericas, etc.

emacs: dentro de este editor de textos, tremendamente configu-rable, se puede ejecutar desde un entorno Maxima en modo texto (que se arranca tecleando “M-x run-maxima”) hasta un modo es-pecial para ayudar la creaci´on de ficheros en los que se utilice Maxima como lenguaje de programaci´on (“M-x maxima-mode”), pasando por el modo “emaxima”, que facilita la creaci´on de do-cumentos LATEX usando el cual se han escrito estas l´ıneas.

xmaxima: una de las interfaces para Maxima m´as veteranas, sigue constituyendo una opci´on adecuada para quien desee un acceso gr´afico a Maxima .

1.2.

Usando Maxima como una calculadora

Maxima se puede usar como una calculadora para operaciones b´asicas, potencias, ra´ıces, etc. El sistema presenta una etiqueta de la forma “( %in)”, con n∈ N, espera que el usuario teclee un comando y produce un resultado, con una etiqueta “( %on)”. Como fin de l´ınea se usa “;” o bien3 “$”.

Maxima opera con aritm´etica racional, aunque usando “,numer” se pue-den obtener expresiones num´ericas4.

( %i1) 27*31; ( %o1) 837 ( %i2) 2-5/3; ( %o2) 1 3

3y en este caso no se presenta el resultado, como se puede observar en en ejemplos

posteriores.

(7)

( %i3) 2-5/3,numer; ( %o3) 0,33333333333333326 ( %i4) 2^10; ( %o4) 1024 ( %i5) sqrt(8); ( %o5) 22 ( %i6) %,numer; ( %o6) 2,8284271247461903 ( %i7) quit();

Como se ve, Maxima es pragm´atico al tratar may´usculas/min´usculas: so-lamente se tienen en cuenta para las expresiones definidas por el usuario (por ejemplo, una variable “a” es distinta de otra “A”), no para las expresiones reservadas por el sistema, como “sqrt” ´o “ %pi”. Existen numerosas funcio-nes y variables num´ericas predefinidas: “sqrt”, “log”, “sin”, “cos”, “ %e”, “ %pi”, “ %i”,... Se puede pedir ayuda sobre estos u otros temas usando el operador “?”, por ejemplo, “? log;”

Una calculadora cient´ıfica

El operador “:” se utiliza para asignaciones de expresiones o variables (el signo “=” no se utiliza para asignaci´on, sino para ecuaciones). La funci´on “kill” se utiliza para eliminar una asignaci´on previa (o todas ellas, usando “kill(all)”).

La etiqueta “ %” referencia a la ´ultima salida. Se pueden usan la etiquetas “ %in” o “ %on” para referenciar a la entrada o a la salida n-´esima.

( %i60) a:3$ ( %i61) %e^a;

(8)

( %o61)

e3

( %i62) log(%); ( %o62)

3

( %i63) sin( a * %pi ); ( %o63) 0 ( %i64) % + %o2; ( %o64) 2 ( %i65) kill(a); ( %o65) DONE

Utilizando la funci´on “bfloat”, se puede convertir una expresi´on a un va-lor decimal de con precisi´on arbitraria, controlada por la variable “fpprec” (cuyo nombre proviene de floating point precission), que por defecto es igual a 16. ( %i50) x:%pi$ ( %i51) bfloat(x); 3.141592653589793B0 ( %i52) fpprec:50; ( %o52) 50 ( %i53) bfloat(x); 3.1415926535897932384626433832795028841971693993751B0

(9)

1.3.

Algebra

´

Manipulaci´on de expresiones algebraicas

Existe un gran n´umero de funciones relacionadas con la manipulaci´on de ecuaciones y expresiones algebraicas, algunas de las cuales se muestran en el siguiente ejemplo: “expand” (desarrolla expresiones en varios t´ermi-nos), “ratsimp” (agrupa en fracciones con denominador com´un), “factor” (factoriza expresiones).

En cualquier entrada de Maxima , se puede sustituir una expresi´on, “e1” por otra, “e2”, a˜nadiendo un argumento5 del tipo “e1=e2”, como se puede

ver la entrada “( %i3)” del siguiente ejemplo:

( %i1) (x+y)^3; ( %o1) (y + x)3 ( %i2) expand(%); ( %o2) y3+ 3xy2+ 3x2y + x3 ( %i3) %,x=1/y; ( %o3) y3+ 3y +3 y + 1 y3 ( %i4) ratsimp(%); ( %o4) y6+ 3y4+ 3y2+ 1 y3 ( %i5) factor(%); ( %o5) ¡ y2+ 1¢3 y3

(10)

Las expresiones trigonom´etricas tienen, adem´as, funciones propias: “trigexpand” (aplica las propiedades trigonom´etricas de suma de ´angulos para que los

ar-gumentos contenidos en las funciones sean lo m´as simple posibles) y “trigreduce” (aplica las propiedades en sentido contrario, de modo que no haya t´erminos que contengan productos funciones seno o coseno).

( %i6) cos(x)^2*sin(x+y); ( %o6) cos2x sin (y + x) ( %i7) expand(%); ( %o7) cos2x sin (y + x) ( %i8) trigexpand(%); ( %o8)

cos2x (cos x sin y + sin x cos y)

( %i9) trigreduce(%); ( %o9) sin (y + 3x) + sin (y − x) 4 + sin (y + x) 2

Ecuaciones y sistemas de ecuaciones

En Maxima , el signo “=” se utiliza para definir ecuaciones. Los siste-mas de ecuaciones se definen como listas de ecuaciones (entre corchetes). La funci´on “solve(e,i)” devuelve una lista formada por las soluciones de la ecuaci´on (o sistema de ecuaciones) “e” para la inc´ognita (o lista de inc´ogni-tas) “i”. ( %i1) x^2+x-3=0$ ( %i2) solve(%,x); ( %o2) " x = − 13 + 1 2 , x = 13 − 1 2 # ( %i3) x^3-x^2+x-1$

(11)

( %i4) solve(%,x); ( %o4)

[x = −i, x = i, x = 1]

( %i5) eq1: x-2*y-z = 1 $ ( %i6) eq2: x-y = 1 $ ( %i7) eq3: 2*x+y-3*z = 4 $

( %i8) /* Un sistema compatible determinado: */ solve([eq1,eq2,eq3],[x,y,z]); ( %o8) ·· x =4 3, y = 1 3, z = − 1 3 ¸¸

( %i9) /* Un sistema compatible indeterminado: */ eq4:eq1+eq2;

( %o9)

−z − 3y + 2x = 2

( %i10) solve([eq1,eq2,eq4],[x,y,z]); Dependent equations eliminated: (3) ( %o10)

[[x = 1 − %R1, y = − %R1, z = %R1]]

( %i11) /* Un sistema incompatible: */ solve([eq1,eq2,eq3,x+y+z = 1],[x,y,z]); Inconsistent equations: (3)

-- an error. Quitting. To debug this try DEBUGMODE(TRUE); ( %i12) /* Un sistema no lineal */

solve([%o1, x^3-x^2=1-x-y],[x,y]); ( %o12) "" x = − 13 + 1 2 , y = 3 13 + 10 # , " x = 13 − 1 2 , y = 10 − 3 13 ##

(12)

En las l´ıneas anteriores se muestra c´omo se pueden introducir comenta-rios, de la forma “/* (...) */”. Adem´as, los par´ametros que aparecen en la soluci´on de sistemas indeterminados se denotan de la forma “ %Rn”, con n ∈ N.

1.4.

alculo diferencial e integral

Como se muestra en esta secci´on, Maxima puede calcular l´ımites, deri-vadas, integrales, desarrollar en series de Taylor...

Sucesiones, funciones y l´ımite

El t´ermino general de una sucesi´on se define de la forma “a[n]:=(...)”. Para el c´alculo de l´ımites se utiliza la funci´on “limit”, junto con los s´ımbolos especiales “inf” (+∞) y “minf” (−∞), como veremos:

( %i1) a[n]:=(-1)^n/n; ( %o1) an:=(−1) n n ( %i2) b[n]:=2*n-1; ( %o2) bn:= 2n − 1 ( %i3) limit(a[n],n,inf); ( %o3) 0 ( %i4) limit(b[n]/log(n),n,inf); ( %o4) ( %i5) limit(a[n]*b[n],n,inf); ( %o5) IND

(13)

Para definir las funciones se utiliza tambi´en el operador “:=”, pero en este caso las variables independientes se incluyen entre par´entesis6.

( %i6) f(x):=x/(1-%e^(x^2)); ( %o6) f (x) := x 1 − ex2 ( %i7) limit(f(x),x,minf); ( %o7) 0 ( %i8) limit(f(x),x,0); ( %o8) UND ( %i9) limit(f(x),x,0,plus); ( %o9) −∞ ( %i10) limit(f(x),x,0,minus); ( %o10) ( %i11) g(x,y):=x^2+y^2; ( %o11) g (x, y) := x2+ y2 ( %i12) solve(g(x,y)=1,[x,y]); ( %o12) ·· x = %R1, y = q 1 − %R12 ¸ , · x = %R2, y = − q 1 − %R22 ¸¸

6Para definir funciones complejas, se pueden utilizar construcciones de tipo “subrutina”

o bloque de c´odigo de la forma “BLOCK ([v1,...,vk], statement1, ... ,statementj)”, siendo las vi declaraciones de variables locales al bloque

(14)

Derivadas e integrales

Para calcular derivadas se utiliza la funci´on “diff”, que toma como argu-mentos la funci´on a derivar, la variable con respecto a la cual hacerlo y, opcio-nalmente, el orden de derivaci´on. Para calcular integrales, se usa la funci´on “integrate” (cuyos argumentos son similares) y para desarrollos de Taylor, “taylor”, que toma como argumentos la funci´on, la variable, el centro y el orden.

( %i628) kill(f,g); ( %o628)

DONE

( %i629) f(x):=x^a * %e^(c*x) * cos(c*x); ( %o629)

f (x) := xaecxcos (cx)

( %i630) diff(f(x),x); ( %o630)

−cxaecxsin (cx) + cxaecxcos (cx) + axa−1ecxcos (cx)

( %i631) diff(f(x),x,2), a=0,b=1 /* Segunda derivada */ ; ( %o631) −2c2ecxsin (cx) ( %i632) g(x,y):=a*x*y/(x^2+y^2+1); ( %o632) g (x, y) := axy x2+ y2+ 1 ( %i633) diff(g(x,y),x); ( %o633) ay y2+ x2+ 1 2ax2y (y2+ x2+ 1)2 ( %i634) integrate(g(x,y),x); ( %o634) ay log¡y2+ x2+ 1¢ 2

(15)

( %i635) h:(%e^x-1)/x; ( %o635) ex− 1 x ( %i636) taylor(h,x,0,4); ( %o636) 1 +x 2 + x2 6 + x3 24 + x4 120+ · · ·

1.5.

Gr´

aficas de funciones

Para dibujar gr´aficas de funciones de una variable se utiliza el comando “plot2D”. Maxima emplear´a, por defecto7, el programa “gnuplot” para abrir una nueva ventana mostrando el resultado8.

( %i24) plot2D( cos(x^2), [x,-2*%pi,2*%pi]) $

-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -8 -6 -4 -2 0 2 4 6 8 COS(x2 )

7Maxima puede tambi´en utilizar, mediante la opci´on “plot format”, otros programas

para representar gr´aficos, como “mgnuplot” (una interfaz gr´afica a gnuplot), “geomview” (un interesante programa para visualizar superficies 3d), “ps” (salida a un fichero posts-cript), etc

8Existe tambi´en la posibilidad de enviar la gr´afica a un fichero de tipo postscript

encapsulado, mediante los comandos:

“set plot option([GNUPLOT TERM, PS]);”

“set plot option([GNUPLOT OUT FILE, "nombrefichero.eps"]);”

Precisamente, ´esta es la t´ecnica que se ha utilizado para crear los gr´aficos que aparecen en la presente secci´on.

(16)

Se puede usar la opci´on “gnuplot preamble” para pasar a gnuplot una serie de comandos que ser´an ejecutados por este programa antes de repre-sentar la gr´afica (lo que transfiere a Maxima toda la potencia de gnuplot).

( %i35) set_plot_option([gnuplot_preamble, "set zeroaxis"])$ ( %i36) plot2D( x^2/(1-x^2), [x,-7,7], [y,-10,10])$

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

Es posible representar varias funciones en la misma gr´afica, introdu-ci´endolas en una lista, como se puede observar en el siguiente ejemplo, en el que se representa una funci´on y desarrollos de taylor de distinto orden:

( %i39) f(x):=1/(1+x^2); ( %o39) f (x) := 1 1 + x2 ( %i40) plot2D([f(x),taylor(f(x),x,0,2),taylor(f(x),x,0,4),taylor(f(x),x,0,6)], [x,-1.2,1.2])$ -1.5 -1 -0.5 0 0.5 1 1.5 2 -1.5 -1 -0.5 0 0.5 1 1.5 1/(x2 +1) 1-x2 1-x2 +x4 1-x2 +x4 -x6

(17)

Tambi´en es posible representar gr´aficas de curvas param´etricas, polares o de funciones de dos variables:

( %i36) plot2d([parametric, t*cos(t), t*sin(t), [t,0,2*%pi]], [x,-7,7], [nticks, 150])$ -5 -4 -3 -2 -1 0 1 2 -4 -3 -2 -1 0 1 2 3 4 5 6 7 Fun1

( %i42) plot2d([2+cos(5*phi)], [phi, 0, 2*%pi], [nticks,10], [gnuplot_preamble, "set polar"])$ 3 2 1 0 1 2 3 3 2 1 0 1 2 3 COS(5*ph)+2

( %i43) plot3d(sin(x^2+y^2), [x,-1,1], [y,-1,1], [gnuplot_pm3d, true], [gnuplot_preamble, "unset surface; set contour"]) $

(18)

0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 -1 -0.8-0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 -1-0.8 -0.6-0.4 -0.2 0 0.2 0.4 0.6 0.8 1 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1 0.8 0.6 0.4 0.2

En la gr´afica 3d anterior se ha empleado el modo “pm3d” de gnuplot, que colorea la superficie en funci´on de la coordenada z. Adem´as, como ejemplo, se ha utilizado “gnuplot preamble” para mostrar otras opciones de gnuplot que pueden mejorar el aspecto gr´afico tridimensional.

1.6.

Algebra Matricial

´

( %i553) A:matrix([1,0,-2], [2,3,2], [-2,0,1]); ( %o553)  12 0 −23 2 −2 0 1   ( %i554) determinant(A); ( %o554) −9 ( %i555) B:invert(A); ( %o555) 1 3 0 −23 2 3 13 23 2 3 0 −13   ( %i556) I:A.B; ( %o556) 1 0 00 1 0 0 0 1  

(19)

( %i557) M:A-x*I; ( %o557) 1 − x2 3 − x0 −22 −2 0 1 − x   ( %i558) solve(determinant(M)=0); ( %o558) [x = 3, x = −1] ( %i559) M,x=3; ( %o559) −2 0 −22 0 2 −2 0 −2   ( %i560) rank(%); ( %o560) 1

( %i561) eigenvalues(A) /* [autovalores], [multiplicidades] */; ( %o561)

[[3, −1] , [2, 1]]

( %i562) eigenvectors(A) /* [autovalores], [v1], [v2], [v3] */; ( %o562)

[[[3, −1] , [2, 1]] , [1, 0, −1] , [0, 1, 0] , [1, −1, 1]]

( %i563) col(B,1) /* Primera columna de B */;

( %o563) 1 3 2 3 23   ( %i564) addcol(A,%); ( %o564)  1 0 −2 − 1 3 2 3 2 23 −2 0 1 2  

(20)

( %i565) triangularize(%); ( %o565) 30 270 −654 −112 0 0 −243 −108   ( %i566) %.transpose(matrix([x,y,z,1])); ( %o566) 54z + 27y + 12−6z + 3x − 1 −243z − 108  

(21)

Cap´ıtulo 2

Ejemplo: estudio de una

(22)

Problema: Dada la funci´on f (x) =      2 1 + x2 si x ≤ 1 1 + ln x si x > 1 1. Estudiar su dominio, puntos de corte y as´ıntotas.

2. Analizar su continuidad y su derivabilidad, calcular su funci´on deriva-da primera.

3. Determinar sus intervalos de crecimiento y decrecimiento, as´ı como sus m´aximos y m´ınimos relativos.

4. Representar su gr´afica.

Soluci´on:

2.1.

Dominio, puntos de corte, as´ıntotas

Definimos: ( %i12) g(x):=1/(1+x^2); ( %o12) g (x) := 1 1 + x2 ( %i13) h(x):=1+log(x); ( %o13) h (x) := 1 + log x

El dominio de g es todo R pues, evidentemente, 1 + x2 6= 0 ∀x ∈ R. Pero si hubiera alguna duda, se podr´ıa utilizar Maxima , para comprobar que 1 + x2 no tiene ninguna ra´ız real (todas sus soluciones son n´umeros

imaginarios puros):

( %i7) solve(1+x^2=0); ( %o7)

(23)

Maxima es, incluso, suficientemente astuto para asegurarnos que 1 + x2

es siempre estrictamente positivo, utilizando el comando “is”, que intenta comprobar si una expresi´on es cierta:

( %i10) is(1+x^2=0); ( %o10) false ( %i11) is(1+x^2>0); ( %o11) true

Por otra parte, la funci´on h(x) solamente est´a bien definida para aquellos valores de x para los que tiene sentido log(x), es decir, el dominio de h es {x ∈ R / x > 0}. Luego

El dominio de la funci´on f (x) es todo R, pues cuando x ≤ 1 es igual a g, que est´a perfectamente definida, y cuando x > 1 coincide con h(x), que no tiene ning´un problema para estos valores de x.

Para estudiar los puntos de corte con el eje de las abscisas, plantea-mos ( %i12) solve(g(x)=0,x); ( %o12) [] ( %i13) solve(h(x)=0,x); ( %o13) £ x = e−1¤

El ´unico punto de corte es x = 1

e. En cuanto a posibles puntos de corte

con el eje vertical, cuando x = 0 nuestra funci´on toma el valor f (0) = g(0) = 1:

(24)

( %o14)

1

En definitiva:

Los puntos de corte de f (x) son (0, 1) y (1e, 0).

Para estudiar las as´ıntotas verticales, tendr´ıamos que analizar si existe alg´un punto a ∈ R en el que el l´ımite de f (x) por la derecha o por la izquierda sea +∞ ´o −∞, lo que ocurre t´ıpicamente en funciones racionales en las que se anula el denominador, en funciones logar´ıtmicas, etc. En nuestro caso, la funci´on g(x) no tiene ninguna as´ıntota vertical, porque su denominador es siempre distinto de cero. La funci´on h(x) tendr´ıa una as´ıntota vertical en x = 0, debido al logaritmo:

( %i16) limit(h(x),x,0,plus); ( %o16)

−∞

Pero esto no afecta a f (x), ya que en los alrededores de x = 0 no toma los valores de h, sino de g, con lo que f no tiene ninguna as´ıntota vertical.

Con respecto a as´ıntotas horizontales, tendremos que estudiar l´ımites de f (x) cuando x → −∞ (en cuyo caso f = g) y cuando x → +∞ (en cuyo caso f = h), ( %i17) limit(g(x),x,minf); ( %o17) 0 ( %i18) limit(h(x),x,inf); ( %o18)

Por lo tanto, podemos concluir que:

f (x) tiene no tiene ninguna as´ıntota vertical y tiene una as´ıntota horizontal (la recta y = 0) cuando x → −∞.

(25)

2.2.

Continuidad, derivabilidad

Las funciones g(x) y h(x) son continuas dentro de sus respectivos domi-nios, por lo tanto f es continua salvo, eventualmente, en x = 1, el punto que divide las regiones donde f toma los valores de g y de h. Pero los l´ımites laterales de f en este punto son distintos, pues

( %i5) limit(g(x),x,1,minus); ( %o5) 1 2 ( %i6) limit(h(x),x,1,plus); ( %o6) 1

en consecuencia, f no es continua en x = 1 (tendr´a una discontinuidad de salto).

Adem´as, f no es derivable en x = 1 (por no ser continua) pero s´ı en el resto de R (pues tanto g como h lo son para valores de x que est´en dentro de sus respectivos dominios). Puesto que

( %i7) diff(g(x),x); ( %o7) 2x (x2+ 1)2 ( %i8) diff(h(x),x); ( %o8) 1 x

la funci´on derivada de f es:

f0(x) =      2x (x2+ 1)2 si x < 1 1 x si x > 1

(26)

2.3.

Crecimiento, extremos relativos

El crecimiento de f depende del signo de la funci´on derivada, f0(x),

Cuando x > 1, obviamente, 1

x > 0 y por lo tanto, f0(x) > 0. Aunque es un

caso tan sencillo que no merece la pena recurrir al ordenador, puede servir co-mo ilustraci´on la forma en que se podr´ıa comprobar lo anterior, utilizando los comandos “assume” e “is”:

( %i119) assume(x>1); ( %o119) [x > 1] ( %i120) is(1/x>0); ( %o120) true

cuando x < 1, el asunto es diferente, pues el signo de f0(x) depender´a de

la expresi´on

2x

(x2+ 1)2, (2.1)

que depende del signo de −2x (puesto que el denominador es siempre es-trictamente positivo), siendo, negativo cuando x > 0 y positivo en caso contrario.

Por lo tanto

f es creciente en (−∞, 0) ∪ (1, +∞) y decreciente en (0, 1).

Aunque en casos tan sencillos como este no merezca la pena, el signo de la expresi´on (2.1) se podr´ıa haber estudiado utilizando el ordenador. Aunque ante una pregunta inicial1, Maxima se muestra incapaz de ofrecer

una respuesta:

( %i126) forget(x>1)$ ( %i127) assume(x<1)$

( %i128) expresion:diff(g(x),x);

1Como se ve, es necesaro utilizar el comando “forget”, que elimina la restricci´on que

fue impuesta anteriormente por “assume”. Se puede usar tambi´en la funci´on “facts()” para obtener un listado de las proposiciones que est´an siendo asumidas.

(27)

( %o128)

2x

(x2+ 1)2 ( %i129) is(expresion>0);

MACSYMA was unable to evaluate the predicate: \mathrm{ERREXP1}

-- an error. Quitting. To debug this try DEBUGMODE(TRUE);

Evidentemente, lo que est´a ocurriendo es que el signo de la expresi´on anterior depende de −2x, es decir, de si x > 0 ´o x < 0. Lo podemos com-probar: ( %i250) assume(0<x,x<1)$ ( %i251) is(expresion<0); ( %o251) true ( %i252) forget(0<x,x<1)$ ( %i253) assume(x<0)$ ( %i254) is(expresion>0); ( %o254) true

Para hallar m´aximos y m´ınimos relativos, calculemos los puntos cr´ıticos de f :

( %i259) solve( diff(g(x),x)=0, x ); ( %o259)

[x = 0]

( %i260) solve( diff(h(x),x)=0, x ); ( %o260)

(28)

Esto es, h no tiene puntos cr´ıticos y g tiene un punto cr´ıtico, x = 0. Cuando x = 0 la funci´on f es igual a g, luego ´este es un punto cr´ıtico de f . Para saber si se trata de un m´aximo o un m´ınimo, podemos estudiar el signo de la derivada segunda:

( %i268) diff(g(x),x,2); ( %o268) 8x2 (x2+ 1)3 2 (x2+ 1)2 ( %i269) %,x=0; ( %o269) −2

Por lo tanto, f00(0) = g00(0) = −2 < 0, es decir, f tiene un m´aximo

relativo en x = 0.

2.4.

Representaci´

on gr´

afica

Para representar la gr´afica de f , podemos definir:

( %i311) f(x):= if(x<1) then g(x) else h(x); ( %o311)

f (x) := if x < 1 then g (x) else h (x)

El problema es que Maxima no est´a preparado para representar directa-mente este tipo de funciones, siendo necesario encapsular f (x) en una expre-si´on de la forma “’(f(x))”.

( %i320) plot2d(f(x),[x,-5,5],[y,-1,5]); output file "grafica_prob1.eps".

( %o320)

( %i321) plot2d(’(f(x)),[x,-5,5], [gnuplot_preamble, "set zeroaxis"]); output file "grafica_prob1.eps".

(29)

( %o321) 0 0.5 1 1.5 2 2.5 3 -6 -4 -2 0 2 4 6 f(x)

La f´ormula empleada para la representaci´on gr´afica de f tiene un pro-blema: err´oneamente, se representa una l´ınea vertical en x = 1 que oculta la existencia de una discontinuidad de salto en este punto.

Referencias

Documento similar

Se estima una distancia de más de 11 millones de años luz hablando de una cantidad de sistemas solares que no tendrían espacio en nuestra mente y esto solo hablando del grupo

Como hemos visto anteriormente en 2.3.1.1, para realizar una regulación de la tensión de salida de un convertidor “boost” con control de corriente en modo de deslizamiento es

Conocido es el caso de Mortimer Ternaux, autor de una Historia de la Revolución, publicada en el siglo XIX, o el todavía más significativo de Edgar Quinet, quien hace «la crítica de

Eso sí, en este caso Maxima presupone que x es distino de −1 en lo que resta de sesión. Esto puede dar lugar a errores si volvemos a utilizar la variable x en un ambiente distinto

Primero tenemos que tratar de dise~ nar una version para cada grupo, jando un precio igual a la disposicion maxima a pagar de cada grupo: vender la version inmediata por 100 euros y

Debido a la calidad y el legado de nuestra compañía, los cuales se reflejan en nuestros pianos, elegir un instrumento hecho por Steinway &amp; Sons tiende a ser una decisión

Autorizo(amos) a los usuarios interesados, consultar y reproducir (parcial o totalmente) el contenido del trabajo de grado titulado DETERMINACION DE LA FUERZA MAXIMA

Por ejemplo, hemos visto cómo el polinomio de Taylor nos sirve para aproximar una función, pero, en lugar de representar la función y dicho polinomio, podríamos representar