Introducción a Maxima 1



Documentos relacionados
MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

CAPÍTULO III. FUNCIONES

1. Dominio, simetría, puntos de corte y periodicidad

Ejercicios. 1. Definir en Maxima las siguientes funciones y evaluarlas en los puntos que se indican:

De aquí sale el proyecto MACsyma (MAC s SYmbolic MAnipulator)

PROBLEMA [1.5 puntos] Obtener la ecuación de la recta tangente en el punto ( 2, 1) a la curva dada implícitamente por y 3 +3y 2 = x 4 3x 2.

Ejemplo: Resolvemos Sin solución. O siempre es positiva o siempre es negativa. Damos un valor cualquiera Siempre + D(f) =

CURSO BÁSICO DE MATEMÁTICAS PARA ESTUDIANTES DE ECONÓMICAS Y EMPRESARIALES

Práctica 1ª: Introducción a Matlab. 1er curso de Ingeniería Industrial: Ingeniería de Control

Introducción al Cálculo Simbólico a través de Maple

f( x) = ( x) x + 5 = 0 = x = 0 = No hay solución y = = 11

Tema 4: Empezando a trabajar con ficheros.m

TEMA 10 FUNCIONES ELEMENTALES MATEMÁTICAS I 1º Bach. 1

LÍMITES Y CONTINUIDAD DE FUNCIONES

I. RELACIONES Y FUNCIONES 1.1. PRODUCTO CARTESIANO { }

Universidad de Costa Rica Escuela de Matemática CONARE-PROYECTO RAMA. Funciones

1. Ecuaciones no lineales

UNIDAD 4: PLANO CARTESIANO, RELACIONES Y FUNCIONES. OBJETIVO DE APRENDIZAJE: Representar gráficamente relaciones y funciones en el plano cartesiano.

Introducción a Matlab.

1. Definición 2. Operaciones con funciones

(A) Primer parcial. si 1 x 1; x 3 si x>1. (B) Segundo parcial

Tema 07. LÍMITES Y CONTINUIDAD DE FUNCIONES

TEMA 2 WINDOWS XP Lección 4 BLOC DE NOTAS

BASES Y DIMENSIÓN. Propiedades de las bases. Ejemplos de bases.

Colegio Las Tablas Tarea de verano Matemáticas 3º ESO

PROYECTOS, FORMULACIÓN Y CRITERIOS DE EVALUACIÓN

Centro de Capacitación en Informática

1.4.- D E S I G U A L D A D E S

DOMINIO Y RANGO DE UNA FUNCIÓN I N D I C E. martilloatomico@gmail.com. Página. Titulo:

DIRECTRICES Y ORIENTACIONES GENERALES PARA LAS PRUEBAS DE ACCESO A LA UNIVERSIDAD

4. Se considera la función f(x) =. Se pide:

Tema 4 Funciones elementales Matemáticas CCSSI 1º Bachillerato 1

Cálculo Simbólico también es posible con GeoGebra

Complemento Microsoft Mathematics

FUNCIONES CUADRÁTICAS Y RACIONALES

Manual de Introducción a SIMULINK

Introducción a la Programación en MATLAB

Función exponencial y Logaritmos

Acronis License Server. Guía del usuario

Cálculo científico y técnico con HP49g/49g+/48gII/50g Módulo 3: Aplicaciones Tema 3.6 Extremos relativos de funciones de 2 variables

INTRODUCCIÓN DÓNDE ENCONTRAR LA CALCULADORA WIRIS

PROGRAMACIÓN LINEAL Introducción Inecuaciones lineales con 2 variables

Comenzando con MATLAB

a < b y se lee "a es menor que b" (desigualdad estricta) a > b y se lee "a es mayor que b" (desigualdad estricta)

CÁLCULO CON wxmaxima

Capítulo 9. Archivos de sintaxis

Función Logaritmo, dominio y traslación. Guía del profesor.

IES Fco Ayala de Granada Junio de 2012 (Específico Modelo 1) Solución Germán-Jesús Rubio Luna

Descripción: dos. función. decreciente. Figura 1. Figura 2

M a t e m á t i c a s I I 1

Instructivo de Microsoft Excel 2003

6. Uso de sistemas operativos 7. Uso de un entorno integrado de desarrollo de programas

Subespacios vectoriales en R n

Juan Antonio González Mota Profesor de Matemáticas del Colegio Juan XIII Zaidín de Granada

Creación y administración de grupos de dominio

Tema 7: Programación con Matlab

Definiciones. Tema 21_Módulos Menú 1

FUNCIONES 1. DEFINICION DOMINIO Y RANGO

Apuntes de ACCESS. Apuntes de Access. Campos de Búsqueda:

Operación de Microsoft Excel

Tabla de contenido. 1. Objetivo Asignación de responsabilidades Alcance Procedimientos relacionados...4

Instrucciones para la elaboración de comunicaciones aceptadas en FORMATO PÓSTER

ESCUELA SUPERIOR DE INFORMATICA Prácticas de Estadística UNA SESIÓN EN SPSS

Fórmulas y funciones

Introducción a la Estadística con Excel

TEMA 5. INTRODUCCIÓN AL MANEJO DE ORIGIN 6.1

Herramientas digitales de auto-aprendizaje para Matemáticas

E 1 E 2 E 2 E 3 E 4 E 5 2E 4

Características de funciones que son inversas de otras

MANUAL DE LA APLICACIÓN DE ENVÍO DE SMS

Las funciones trigonométricas

MATEMÁTICAS para estudiantes de primer curso de facultades y escuelas técnicas

Cintas de opciones. Inicio Insertar Diseño Animaciones Presentación con diapositivas Revisar Vista. Diseño

Selectividad Septiembre 2008 SEPTIEMBRE 2008

Herramientas computacionales para la matemática MATLAB: Funciones definidas por el usuario (parte II)

Juan Antonio González Mota Profesor de Matemáticas del Colegio Juan XIII Zaidín de Granada

>> % suma de dos números reales, el resultado se asigna a ans

ACFGS - Matemáticas ESG - 05/2013 Pág. 1 de 17

PoliEstudio: Una herramienta computacional para la enseñanza de la Matemática, en secundaria

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

ELEMENTOS BÁSICOS DE MATHEMATICA

1.- MENU DE CONTROL O MENU VENTANA: permite cerrar la ventana cambiarla de tamaño y pasar a otra ventana

Diseño de formularios

WINDOWS. Iniciando Windows. El mouse

TIPOS DE RESTRICCIONES

BREVE MANUAL DE SOLVER

Apuntes de Matemática Discreta 9. Funciones

Ejemplos básicos de webmathematica para profesores

Sesión No. 4. Contextualización INFORMÁTICA 1. Nombre: Procesador de Texto

EJERCICIOS RESUELTOS DE REPRESENTACIÓN GRÁFICA DE FUNCIONES REALES

La pestaña Inicio contiene las operaciones más comunes sobre copiar, cortar y pegar, además de las operaciones de Fuente, Párrafo, Estilo y Edición.

Funciones de varias variables

Tecnologías de la Información. Apuntes de programación en Visual Basic 6.0

GENERACIÓN DE TRANSFERENCIAS

Calculadora ClassPad

CALCULADORA CIENTÍFICA

AXIOMAS DE CUERPO (CAMPO) DE LOS NÚMEROS REALES

Programa para el Mejoramiento de la Enseñanza de la Matemática en ANEP Proyecto: Análisis, Reflexión y Producción. Fracciones

Bases de datos en Excel

Transcripción:

Introducción a Maxima 1 M. Victoria Redondo Neble J. Rafael Rodríguez Galván 3 de junio de 005 1 Copyright c 005, M. Victoria Redondo Neble, J. Rafael Rodríguez Galván, Universidad de Cádiz. Este documento es libre. Se otorga permiso para copiarlo, distribuirlo y/o modificarlo bajo los términos de la Licencia de Documentación Libre GNU, versión 1. o cualquier otra versión posterior publicada por la Fundación de Software Libre, http://es.gnu.org/licencias/fdles.html

1

Índice general 1. Una panormámica de Maxima 3 1.1. Arrancando Maxima....................... 4 1.. Usando Maxima como una calculadora............. 5 1.3. Álgebra.............................. 8 1.4. Cálculo diferencial e integral................... 11 1.5. Gráficas de funciones....................... 14 1.6. Álgebra Matricial......................... 17. Ejemplo: estudio de una función 0.1. Dominio, puntos de corte, asíntotas............... 1.. Continuidad, derivabilidad.................... 4.3. Crecimiento, extremos relativos................. 5.4. Representación gráfica...................... 7

Capítulo 1 Una panormámica de Maxima 3

Maxima es un programa de ordenador orientado a la manipulación de expresiones algebraicas, que pueden incluir constantes, variables y funciones. Entre estas manipulaciones se encuentran simplificación, factorización, derivación, integración, etc. Derivado de la implementación original del conocido programa Macsyma del MIT, une a sus características técnicas las ventajas que representa su licencia libre 1, contando con una dinámica comunidad de desarrollo e interactuando en simbiosis con otros programas libres como gnuplot, texmacs, emacs, wims, etc. Maxima está disponible para distintas plataformas, tales como GNU/Linux, MS Windows, etc. El objetivo del presente documento, dista mucho de ser confeccionar una guia metódica o exhaustiva, sino ofrecer una primera panorámica global sobre el funcionamiento del programa, mostrando alguna de sus características más usadas desde el punto de vista de la aplicación práctica. 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 integración en un entorno de ventanas, podrán 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áles de estas interfaces están instaladas en nuestro ordenador (o cuales ellas pueden ser instaladas con facilidad). Algunas de estas interfaces disponibles para 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ápido al programa y sacarle todo su jugo. Este modo tiene ventajas como el completado de sintaxis pulsando la tecla TAB, histórico de comandos, etc. Interfaces gráficas: texmacs: es un procesador de textos gráfico capaz de exportar ficheros en L A TEX y ejecutar Maxima (además de otros sistemas computacionales, como Axiom, Octave, etc.) en una sesión que es insertada dentro el editor. El uso de texmacs ofrece ventajas, 1 Maxima se distribuye bajo GNU Public License (GPL) Muchas de estas interfaces se encuentran en pleno proceso de desarrollo 4

como la posibilidad de facilitar la entrada de expresiones matemáticas o de formatear automáticamente (usando L A TEX) los resultados para facilitar su lectura. wxmaxima: una interfaz gráfica que posee entradas de menús y de diálogo específicas para, utilizar Maxima a golpe de ratón, sin tener que recordar la sintaxis de sus comandos, e introducir cómodamente todo tipo de expresiones, como matrices, series numéricas, etc. emacs: dentro de este editor de textos, tremendamente configurable, se puede ejecutar desde un entorno Maxima en modo texto (que se arranca tecleando M-x run-maxima ) hasta un modo especial para ayudar la creación de ficheros en los que se utilice Maxima como lenguaje de programación ( M-x maxima-mode ), pasando por el modo emaxima, que facilita la creación de documentos L A TEX usando el cual se han escrito estas líneas. xmaxima: una de las interfaces para Maxima más veteranas, sigue constituyendo una opción adecuada para quien desee un acceso gráfico a Maxima. 1.. Usando Maxima como una calculadora Maxima se puede usar como una calculadora para operaciones básicas, 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 bien 3 $. Maxima opera con aritmética racional, aunque usando,numer se pueden obtener expresiones numéricas 4. ( %i1) 7*31; ( %o1) 837 ( %i) -5/3; ( %o) 1 3 3 y en este caso no se presenta el resultado, como se puede observar en en ejemplos posteriores. 4 por defecto, con 16 cifras decimales 5

( %i3) -5/3,numer; ( %o3) 0,3333333333333336 ( %i4) ^10; ( %o4) 104 ( %i5) sqrt(8); ( %o5) ( %i6) %,numer; ( %o6),8847147461903 ( %i7) quit(); Como se ve, Maxima es pragmático al tratar mayúsculas/minúsculas: solamente 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 ó %pi. Existen numerosas funciones y variables numéricas 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ón, sino para ecuaciones). La función kill se utiliza para eliminar una asignación previa (o todas ellas, usando kill(all) ). La etiqueta % referencia a la última salida. Se pueden usan la etiquetas %in o %on para referenciar a la entrada o a la salida n-ésima. ( %i60) a:3$ ( %i61) %e^a; 6

( %o61) e 3 ( %i6) log(%); ( %o6) 3 ( %i63) sin( a * %pi ); ( %o63) 0 ( %i64) % + %o; ( %o64) ( %i65) kill(a); ( %o65) DONE Utilizando la función bfloat, se puede convertir una expresión a un valor decimal de con precisión 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.14159653589793B0 ( %i5) fpprec:50; ( %o5) 50 ( %i53) bfloat(x); 3.14159653589793384664338379508841971693993751B0 7

1.3. Álgebra Manipulación de expresiones algebraicas Existe un gran número de funciones relacionadas con la manipulación de ecuaciones y expresiones algebraicas, algunas de las cuales se muestran en el siguiente ejemplo: expand (desarrolla expresiones en varios términos), ratsimp (agrupa en fracciones con denominador común), factor (factoriza expresiones). En cualquier entrada de Maxima, se puede sustituir una expresión, e1 por otra, e, añadiendo un argumento 5 del tipo e1=e, como se puede ver la entrada ( %i3) del siguiente ejemplo: ( %i1) (x+y)^3; ( %o1) (y + x) 3 ( %i) expand(%); ( %o) y 3 + 3xy + 3x y + x 3 ( %i3) %,x=1/y; ( %o3) y 3 + 3y + 3 y + 1 y 3 ( %i4) ratsimp(%); ( %o4) y 6 + 3y 4 + 3y + 1 y 3 ( %i5) factor(%); ( %o5) ( y + 1 ) 3 y 3 5 También se puede utilizar la función subst, de la forma subst(e,e1, %). 8

Las expresiones trigonométricas tienen, además, funciones propias: trigexpand (aplica las propiedades trigonométricas de suma de ángulos para que los argumentos contenidos en las funciones sean lo más simple posibles) y trigreduce (aplica las propiedades en sentido contrario, de modo que no haya términos que contengan productos funciones seno o coseno). ( %i6) cos(x)^*sin(x+y); ( %o6) cos x sin (y + x) ( %i7) expand(%); ( %o7) cos x sin (y + x) ( %i8) trigexpand(%); ( %o8) cos x (cos x sin y + sin x cos y) ( %i9) trigreduce(%); ( %o9) sin (y + 3x) + sin (y x) sin (y + x) + 4 Ecuaciones y sistemas de ecuaciones En Maxima, el signo = se utiliza para definir ecuaciones. Los sistemas de ecuaciones se definen como listas de ecuaciones (entre corchetes). La función solve(e,i) devuelve una lista formada por las soluciones de la ecuación (o sistema de ecuaciones) e para la incógnita (o lista de incógnitas) i. ( %i1) x^+x-3=0$ ( %i) solve(%,x); ( %o) [ 13 + 1 x =, x = ] 13 1 ( %i3) x^3-x^+x-1$ 9

( %i4) solve(%,x); ( %o4) [x = i, x = i, x = 1] ( %i5) eq1: x-*y-z = 1 $ ( %i6) eq: x-y = 1 $ ( %i7) eq3: *x+y-3*z = 4 $ ( %i8) /* Un sistema compatible determinado: */ solve([eq1,eq,eq3],[x,y,z]); ( %o8) [[ x = 4 3, y = 1 ]] 3, z = 1 3 ( %i9) /* Un sistema compatible indeterminado: */ eq4:eq1+eq; ( %o9) z 3y + x = ( %i10) solve([eq1,eq,eq4],[x,y,z]); Dependent equations eliminated: (3) ( %o10) [[x = 1 %R1, y = %R1, z = %R1]] ( %i11) /* Un sistema incompatible: */ solve([eq1,eq,eq3,x+y+z = 1],[x,y,z]); Inconsistent equations: (3) -- an error. Quitting. To debug this try DEBUGMODE(TRUE); ( %i1) /* Un sistema no lineal */ solve([%o1, x^3-x^=1-x-y],[x,y]); ( %o1) [[ 13 + 1 x =, y = 3 ] [ 13 + 10, x = 13 1, y = 10 3 ]] 13 10

En las líneas anteriores se muestra cómo se pueden introducir comentarios, de la forma /* (...) */. Además, los parámetros que aparecen en la solución de sistemas indeterminados se denotan de la forma %Rn, con n N. 1.4. Cálculo diferencial e integral Como se muestra en esta sección, Maxima puede calcular límites, derivadas, integrales, desarrollar en series de Taylor... Sucesiones, funciones y límite El término general de una sucesión se define de la forma a[n]:=(...). Para el cálculo de límites se utiliza la función limit, junto con los símbolos especiales inf (+ ) y minf ( ), como veremos: ( %i1) a[n]:=(-1)^n/n; ( %o1) ( %i) b[n]:=*n-1; ( %o) a n := ( 1)n n b n := n 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 11

Para definir las funciones se utiliza también el operador :=, pero en este caso las variables independientes se incluyen entre paréntesis 6. ( %i6) f(x):=x/(1-%e^(x^)); ( %o6) f (x) := x 1 e x ( %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^+y^; ( %o11) g (x, y) := x + y ( %i1) solve(g(x,y)=1,[x,y]); ( %o1) [[ ] [ ]] x = %R1, y = 1 %R1, x = %R, y = 1 %R 6 Para definir funciones complejas, se pueden utilizar construcciones de tipo subrutina o bloque de código de la forma BLOCK ([v1,...,vk], statement1,...,statementj), siendo las vi declaraciones de variables locales al bloque 1

Derivadas e integrales Para calcular derivadas se utiliza la función diff, que toma como argumentos la función a derivar, la variable con respecto a la cual hacerlo y, opcionalmente, el orden de derivación. Para calcular integrales, se usa la función integrate (cuyos argumentos son similares) y para desarrollos de Taylor, taylor, que toma como argumentos la función, la variable, el centro y el orden. ( %i68) kill(f,g); ( %o68) DONE ( %i69) f(x):=x^a * %e^(c*x) * cos(c*x); ( %o69) f (x) := x a e cx cos (cx) ( %i630) diff(f(x),x); ( %o630) cx a e cx sin (cx) + cx a e cx cos (cx) + ax a 1 e cx cos (cx) ( %i631) diff(f(x),x,), a=0,b=1 /* Segunda derivada */ ; ( %o631) c e cx sin (cx) ( %i63) g(x,y):=a*x*y/(x^+y^+1); ( %o63) axy g (x, y) := x + y + 1 ( %i633) diff(g(x,y),x); ( %o633) ay y + x + 1 ax y (y + x + 1) ( %i634) integrate(g(x,y),x); ( %o634) ay log ( y + x + 1 ) 13

( %i635) h:(%e^x-1)/x; ( %o635) e x 1 x ( %i636) taylor(h,x,0,4); ( %o636) 1 + x + x 6 + x3 4 + x4 10 + 1.5. Gráficas de funciones Para dibujar gráficas de funciones de una variable se utiliza el comando plotd. Maxima empleará, por defecto 7, el programa gnuplot para abrir una nueva ventana mostrando el resultado 8. ( %i4) plotd( cos(x^), [x,-*%pi,*%pi]) $ 1 COS(x ) 0.8 0.6 0.4 0. 0-0. -0.4-0.6-0.8-1 -8-6 -4-0 4 6 8 7 Maxima puede también utilizar, mediante la opción plot format, otros programas para representar gráficos, como mgnuplot (una interfaz gráfica a gnuplot), geomview (un interesante programa para visualizar superficies 3d), ps (salida a un fichero postscript), etc 8 Existe también la posibilidad de enviar la gráfica 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, ésta es la técnica que se ha utilizado para crear los gráficos que aparecen en la presente sección. 14

Se puede usar la opción gnuplot preamble para pasar a gnuplot una serie de comandos que serán ejecutados por este programa antes de representar la gráfica (lo que transfiere a Maxima toda la potencia de gnuplot). ( %i35) set_plot_option([gnuplot_preamble, "set zeroaxis"])$ ( %i36) plotd( x^/(1-x^), [x,-7,7], [y,-10,10])$ 10 x /(1-x ) 8 6 4 0 - -4-6 -8-10 -8-6 -4-0 4 6 8 Es posible representar varias funciones en la misma gráfica, introduciéndolas en una lista, como se puede observar en el siguiente ejemplo, en el que se representa una función y desarrollos de taylor de distinto orden: ( %i39) f(x):=1/(1+x^); ( %o39) f (x) := 1 1 + x ( %i40) plotd([f(x),taylor(f(x),x,0,),taylor(f(x),x,0,4),taylor(f(x),x,0,6)], [x,-1.,1.])$ 1.5 1/(x +1) 1-x 1-x +x 4 1-x +x 4 -x 6 1 0.5 0-0.5-1 -1.5-1.5-1 -0.5 0 0.5 1 1.5 15

También es posible representar gráficas de curvas paramétricas, polares o de funciones de dos variables: ( %i36) plotd([parametric, t*cos(t), t*sin(t), [t,0,*%pi]], [x,-7,7], [nticks, 150])$ Fun1 1 0-1 - -3-4 -5-4 -3 - -1 0 1 3 4 5 6 7 ( %i4) plotd([+cos(5*phi)], [phi, 0, *%pi], [nticks,10], [gnuplot_preamble, "set polar"])$ 3 COS(5*ph)+ 1 0 1 3 3 1 0 1 3 ( %i43) plot3d(sin(x^+y^), [x,-1,1], [y,-1,1], [gnuplot_pm3d, true], [gnuplot_preamble, "unset surface; set contour"]) $ 16

0.9 1 0.8 0.7 0.6 0.5 0.4 0.3 0. 0.1 0-1 -0.8-0.6-0.4-0. 0 0. 0.4 0.6 0.8 1-1 -0.8-0.6-0.4 0.8 0.6 0.4 0. -0. 0 0. 0.4 0.60.8 1 1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0. 0.1 0 En la gráfica 3d anterior se ha empleado el modo pm3d de gnuplot, que colorea la superficie en función de la coordenada z. Además, como ejemplo, se ha utilizado gnuplot preamble para mostrar otras opciones de gnuplot que pueden mejorar el aspecto gráfico tridimensional. 1.6. Álgebra Matricial ( %i553) A:matrix([1,0,-], [,3,], [-,0,1]); ( %o553) 1 0 3 0 1 ( %i554) determinant(a); ( %o554) 9 ( %i555) B:invert(A); ( %o555) 1 3 0 3 1 3 3 3 3 0 1 3 ( %i556) I:A.B; ( %o556) 1 0 0 0 1 0 0 0 1 17

( %i557) M:A-x*I; ( %o557) 1 x 0 3 x 0 1 x ( %i558) solve(determinant(m)=0); ( %o558) [x = 3, x = 1] ( %i559) M,x=3; ( %o559) 0 0 0 ( %i560) rank(%); ( %o560) 1 ( %i561) eigenvalues(a) /* [autovalores], [multiplicidades] */; ( %o561) [[3, 1], [, 1]] ( %i56) eigenvectors(a) /* [autovalores], [v1], [v], [v3] */; ( %o56) [[[3, 1], [, 1]], [1, 0, 1], [0, 1, 0], [1, 1, 1]] ( %i563) col(b,1) /* Primera columna de B */; ( %o563) 1 3 3 3 ( %i564) addcol(a,%); ( %o564) 1 0 1 3 3 3 0 1 3 18

( %i565) triangularize(%); ( %o565) 3 0 6 1 0 7 54 1 0 0 43 108 ( %i566) %.transpose(matrix([x,y,z,1])); ( %o566) 6z + 3x 1 54z + 7y + 1 43z 108 19

Capítulo Ejemplo: estudio de una función 0

Problema: Dada la función f(x) = 1 + x si x 1 1 + ln x si x > 1 1. Estudiar su dominio, puntos de corte y asíntotas.. Analizar su continuidad y su derivabilidad, calcular su función derivada primera. 3. Determinar sus intervalos de crecimiento y decrecimiento, así como sus máximos y mínimos relativos. 4. Representar su gráfica. Solución:.1. Dominio, puntos de corte, asíntotas Definimos: ( %i1) g(x):=1/(1+x^); ( %o1) g (x) := 1 1 + x ( %i13) h(x):=1+log(x); ( %o13) h (x) := 1 + log x El dominio de g es todo R pues, evidentemente, 1 + x 0 x R. Pero si hubiera alguna duda, se podría utilizar Maxima, para comprobar que 1 + x no tiene ninguna raíz real (todas sus soluciones son números imaginarios puros): ( %i7) solve(1+x^=0); ( %o7) [x = i, x = i] 1

Maxima es, incluso, suficientemente astuto para asegurarnos que 1 + x es siempre estrictamente positivo, utilizando el comando is, que intenta comprobar si una expresión es cierta: ( %i10) is(1+x^=0); ( %o10) false ( %i11) is(1+x^>0); ( %o11) true Por otra parte, la función h(x) solamente está 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ón f(x) es todo R, pues cuando x 1 es igual a g, que está perfectamente definida, y cuando x > 1 coincide con h(x), que no tiene ningún problema para estos valores de x. Para estudiar los puntos de corte con el eje de las abscisas, planteamos ( %i1) solve(g(x)=0,x); ( %o1) [] ( %i13) solve(h(x)=0,x); ( %o13) [ x = e 1 ] El único punto de corte es x = 1 e. En cuanto a posibles puntos de corte con el eje vertical, cuando x = 0 nuestra función toma el valor f(0) = g(0) = 1: ( %i14) g(0);

( %o14) 1 En definitiva: Los puntos de corte de f(x) son (0, 1) y ( 1 e, 0). Para estudiar las asíntotas verticales, tendríamos que analizar si existe algún punto a R en el que el límite de f(x) por la derecha o por la izquierda sea + ó, 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ón g(x) no tiene ninguna asíntota vertical, porque su denominador es siempre distinto de cero. La función 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. 3

.. Continuidad, derivabilidad Las funciones g(x) y h(x) son continuas dentro de sus respectivos dominios, 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) ( %i6) limit(h(x),x,1,plus); ( %o6) 1 1 en consecuencia, f no es continua en x = 1 (tendrá una discontinuidad de salto). Además, 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én dentro de sus respectivos dominios). Puesto que ( %i7) diff(g(x),x); ( %o7) ( %i8) diff(h(x),x); ( %o8) x (x + 1) 1 x la función derivada de f es: x f (x) = (x + 1) si x < 1 1 si x > 1 x 4

.3. Crecimiento, extremos relativos El crecimiento de f depende del signo de la función derivada, f (x), Cuando x > 1, obviamente, 1 x > 0 y por lo tanto, f (x) > 0. Aunque es un caso tan sencillo que no merece la pena recurrir al ordenador, puede servir como ilustración la forma en que se podría comprobar lo anterior, utilizando los comandos assume e is : ( %i119) assume(x>1); ( %o119) [x > 1] ( %i10) is(1/x>0); ( %o10) true cuando x < 1, el asunto es diferente, pues el signo de f (x) dependerá de la expresión x (x + 1), (.1) que depende del signo de x (puesto que el denominador es siempre estrictamente 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ón (.1) se podría haber estudiado utilizando el ordenador. Aunque ante una pregunta inicial 1, Maxima se muestra incapaz de ofrecer una respuesta: ( %i16) forget(x>1)$ ( %i17) assume(x<1)$ ( %i18) expresion:diff(g(x),x); 1 Como se ve, es necesaro utilizar el comando forget, que elimina la restricción que fue impuesta anteriormente por assume. Se puede usar también la función facts() para obtener un listado de las proposiciones que están siendo asumidas. 5

( %o18) x (x + 1) ( %i19) 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á ocurriendo es que el signo de la expresión anterior depende de x, es decir, de si x > 0 ó x < 0. Lo podemos comprobar: ( %i50) assume(0<x,x<1)$ ( %i51) is(expresion<0); ( %o51) true ( %i5) forget(0<x,x<1)$ ( %i53) assume(x<0)$ ( %i54) is(expresion>0); ( %o54) true Para hallar máximos y mínimos relativos, calculemos los puntos críticos de f: ( %i59) solve( diff(g(x),x)=0, x ); ( %o59) [x = 0] ( %i60) solve( diff(h(x),x)=0, x ); ( %o60) [] 6

Esto es, h no tiene puntos críticos y g tiene un punto crítico, x = 0. Cuando x = 0 la función f es igual a g, luego éste es un punto crítico de f. Para saber si se trata de un máximo o un mínimo, podemos estudiar el signo de la derivada segunda: ( %i68) diff(g(x),x,); ( %o68) 8x (x + 1) 3 (x + 1) ( %i69) %,x=0; ( %o69) Por lo tanto, f (0) = g (0) = < 0, es decir, f tiene un máximo relativo en x = 0..4. Representación gráfica Para representar la gráfica 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á preparado para representar directamente este tipo de funciones, siendo necesario encapsular f(x) en una expresión de la forma (f(x)). ( %i30) plotd(f(x),[x,-5,5],[y,-1,5]); output file "grafica_prob1.eps". ( %o30) ( %i31) plotd( (f(x)),[x,-5,5], [gnuplot_preamble, "set zeroaxis"]); output file "grafica_prob1.eps". 7

( %o31) 3 f(x).5 1.5 1 0.5 0-6 -4-0 4 6 La fórmula empleada para la representación gráfica de f tiene un problema: erróneamente, se representa una línea vertical en x = 1 que oculta la existencia de una discontinuidad de salto en este punto. 8