/* [wxMaxima batch file version 1] [ DO NOT EDIT BY HAND! ]*/ /* [ Created with wxMaxima version 12.04.0 ] */ /* [wxMaxima: title start ] PRACTICA 1. INSTRUCCIONES DE MANEJO. PRIMEROS EJEMPLOS. [wxMaxima: title end ] */ /* [wxMaxima: section start ] PREGUNTAS BÁSICAS. [wxMaxima: section end ] */ /* [wxMaxima: subsect start ] ¿DONDE SE OBTIENE EL PROGRAMA? [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Maxima es un potente programa de software libre para la manipulación de expresiones numéricas y simbólicas (es muy semejante, en cuanto a su entorno y en cuanto a su uso, de otros programas de cálculo simbólico -como por ejemplo Mathematica). Es decir, Maxima se puede usar como calculadora, pero además nos permite trabajar con expresiones en las que aparecen matrices, variables o parámetros (como x+y o cos(x+3)). En particular podremos emplear el programa para resolver las operaciones más habituales de la asignatura, como operar con vectores o matrices, resolver sistemas de ecuaciones lineales, calcular límites, derivadas, integrales, desarrollos en serie; resolver ecuaciones diferenciales; o representar las gráficas de funciones de 1 y 2 variables. El programa se puede descargar desde la página web http://maxima.sourceforge.net/es/ Su instalación no presenta ningún problema (basta con ejecutar el fichero .exe). La versión con la que se han elaborado este manual es la versión de wxMaxima 12.04.0 [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] ¿CÓMO FUNCIONA? [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] El entorno de ejecución de Maxima puede resultar duro ya que consiste en la clásica línea para ejecutar comandos. Afortunadamente existen entornos más amigables de ejecución y nosotros vamos a trabajar con wxMaxima ya que incluye menús desplegables con la mayoría de los comandos y cuadros de diálogo para introducir los datos necesarios en cada caso, que hace que sea más sencillo trabajar con Maxima. Una vez instalado y lanzado el programa wxMaxima, para empezar a trabajar con él hay que pulsar la tecla ENTER y aparece el símbolo: [--> Ya podemos escribir a continuación la operación que queramos: Por ejemplo, si queremos calcular 3+5 escribiremos dicha operación a continuacion de lo anterior, le damos a MAYUSCULA+ENTER (o también a la tecla INTRO del teclado numérico) y obtendremos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 3+5; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Aunque por defecto el programa nos pondrá ";" al final del cada operación, es aconsejable que lo pongamos nosotros (se justifica más adelante). El programa también nos pone por defecto (%i1) y (%o1) para indicarnos que es la primera entrada (input 1) que hemos introducido y la primera salida (output 1) que hemos obtenido. También es posible acudir a cualquiera de los resultados anteriores que hayamos obtenido y escribir encima del mismo (por ejemplo, si nos hemos equivocado a la hora de plantear una operación); o copiar el resultado con el cursor y trasladarlo más abajo (es decir, las mismas operaciones que solemos hacer bajo windows, por ejemplo con word, o programas similares). Si en lugar de ejecutar la operación que queramos hacer con MAYUSCULA+ENTER (o con la tecla INTRO del teclado numérico) ponemos ";" y le damos directamente a ENTER, veremos que obtenemos una nueva línea debajo de la anterior, en la que podremos incluir otras operaciones. Cuando le demos entonces a INTRO, veremos que nos calcula todas las operaciones que hayamos incluido en dicha entrada: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 3+6; 4-2; 4*(-8); /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] ¿CÓMO OBTENEMOS AYUDAS? [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] El programa Maxima dispone de una ayuda en castellano (si se ha instalado la versión en este idioma) a la que se accede a través del menú superior o pulsando la tecla F1. En la pantalla que aparece se pueden consultar la información de tres formas distintas: 1. Contenido: Nos permite navegar por el manual. la información aparece agrupada por materias y en cada materia, casi siempre después de una breve introducción, aparecen los comandos relacionados con esa materia en orden alfabético. 2. Índice: Es un listado de todos los comandos disponibles. Seleccionando uno nos aparece su descripción a la derecha. 3. Buscar: Debe introducir una palabra relacionada con lo que desea buscar y obtendrá las materias en las que la palabra proporcionada aparece. También se accede a la ayuda escribiendo "??" (para búsqueda aproximada), seguido del término a buscar (y sin ";" al final, pero pulsando SHIFT+ENTER). Por ejemplo, si queremos saber lo que hay relacionado con log, haremos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ??log /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] En el mismo menú superior tenemos algunos comandos que nos pueden ser útiles, como: - describe(expr), que nos da ayuda sobre expr - Ejemplo(expr), que nos da un ejemplo de expr - A propósito("expr"), que nos da comandos relacionados con expr [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] OTROS MANUALES [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] A través de la web se pueden encontrar gran variedad de manuales (aunque los mismos, y a diferencia de lo que ocurre con el programa, que es libre, son de diferentes autores, que tendremos que reseñar si se van a utilizar por nuestra parte). Yo os puedo recomendar los siguientes: http://maxima.sourceforge.net/docs/manual/es/maxima.html http://www.ugr.es/~dpto_am/docencia/Apuntes/Practicas_con_Maxima.pdf http://www.unp.edu.pe/pers/ripanaque/download/manual.pdf http://calculoparaingenieros.files.wordpress.com/2012/09/manualmaxima2.pdf [wxMaxima: comment end ] */ /* [wxMaxima: section start ] MANEJO DE WXMAXIMA. [wxMaxima: section end ] */ /* [wxMaxima: subsect start ] INTRODUCCIÓN DE DATOS [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Tenemos la posibilidad de escribir varios comandos dentro de una celda. Por ejemplo, podemos escribir (acabar cada línea con ";" y darle a ENTER): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 3!; %/3; %O1*10; 100/3; 100.0/3.0; cos(%pi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Ahora DAR a INTRO del teclado numérico y observar los resultados. Como vemos para cada entrada aparece una salida en una línea distinta y numerada. El símbolo "%" tiene varios usos en la ordenes anteriores que vamos a aclarar: En la segunda línea "%" se utiliza para hacer referencia a la última salida generada por Maxima. En "%o1" se utiliza para hacer referencia a la salida número 1 output 1. Por último el " %pi" en la ´ultima línea se utiliza para hacer referencia a la constante pi. Otras constantes que Maxima reconoce son el número e (%e) y la unidad imaginaria i (%i). Cada entrada que le damos al programa debe terminar con ";" o con "$". Si termina con ";", Maxima devuelve el resultado, pero si no se desea que aparezca ningún resultado, se debe terminar la línea con $. Este símbolo es útil cuando se quieren hacer varias operaciones intermedias y no se desea que aparezcan los resultados. Obsérvese que los resultados de 100/3 y en 100.0/3.0 son distintos, aunque aparentemente la operación es la misma. Esto es porque Maxima intenta mantener la precisión y no evalúa expresiones como 100/3 o sqrt(2) (la raíz cuadrada es sqrt) a no ser que se indique. En la entrada %i5 se utiliza coma flotante y, por eso, Maxima evalúa el resultado. Sin embargo, observar lo que ocurre al hacer [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sqrt(2*%e); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para obtener la aproximación numérica de una operación utilizamos el comando float, de manera que [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ float(sqrt(2*%e)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Podemos escribir comentarios dentro de una determinada sentencia (por ejemplo, para indicar lo que estamos haciendo) para lo que escribiremos dicho comentario entre "/*" y "*/", a continuación le damos a ENTER y debajo escribimos la operación a efectuar: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ /*vamos a calcular el valor aproximado de la raiz de 2e*/ float(sqrt(2*%e)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Maxima puede trabajar con números enteros con cualquier número de dígitos. Sin embargo, cuando la representación es demasiado larga por defecto elimina la mayor parte de los dígitos intermedios. Por ejemplo, si evaluamos 123^123, tendremos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 123^123; /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] OPERACIONES ARITMÉTICAS ELEMENTALES [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Los operadores aritméticos son: suma "+", resta "-", producto "*", cociente "/" y elevado "^" o "**". Como siempre, para combinar estos operadores han de tenerse en cuenta los criterios de prioridad en matemáticas: En un primer nivel de prioridad está la potencia; en un segundo nivel están el producto y el cociente; finalmente aparecen la suma y la resta. Si dos operadores tienen la misma prioridad se evalúa primero el que figura a la izquierda y después el de la derecha. Para cambiar el orden de ejecución de las operaciones pueden utilizarse paréntesis. Veamos algunos ejemplos: Teclear lo que viene a continuación y observar los resultados (después de cada línea dar a INTRO): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ pez*pez+4*pez+pez; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ 2.3; /*el punto está reservado para los decimales*/ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ 3y; /*si tecleamos 3y el programa no lo entiende*/ /*lo correcto es poner 3*y*/ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] EJERCICIO 1: Ejecutar las siguientes operaciones y observar el orden en que se realizan las operaciones: 1) 2*4+3 5) 6/(3-2) 9) 2*(3^2) 13) (b/c + a)^d - e 2) 2*(4+3) 6) (6/3)-2 10) (2*3)^2 14) b/(c+ a^d-e) 3) (2*4)+3 7) 6/3 - 2 11) 2*3^2 15) (b/c + a)^(d-e) 4) 6/3-2 8) (2*3)^2 12) b/(c+a)^(d-e) 16) (3-8)*10 [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] VALORES NUMÉRICOS [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] Maxima devuelve los resultados de operaciones con números reales (o complejos) de forma exacta y sin aproximaciones decimales. Veamos ejemplos: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 2/3+2; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ %*5; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ 2/3+4/5-3/7*8; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Pero si trabajamos con valores decimales el resultado que obtenemos será del mismo tipo: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sqrt(5.0); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ exp(6); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ exp(6.0); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para obtener el valor decimal de un número real podemos usar: - el comando float (ya lo hemos visto con anterioridad). - añadir una coma "," seguida de numer. - desde el menú de wxMaxima, seleccionar Numérico->A real (float). [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ %pi*2, numer; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Maxima redondea, por defecto, a los primeros 16 dígitos. Se puede cambiar la precisión desde Numérico->Establecer precisión. Para representar un número real en este formato se usa el comando bfloat o bien desde Numérico->A real grande (bigfloat). [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] EJERCICIO 2: Calcular 1) (2/3 - 3/5)*5/2 y lo mismo pero con 30 cifras significativas. 2) 2^100 y lo mismo pero con 10 cifras significativas. 3) Raíz cuadrada de 2 con 47 cifras significativas. 4) Raíz cúbica de 35 con 400 cifras significativas. [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] CONSTANTES Y FUNCIONES [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] En esta última sección de esta práctica introductoria vamos a ver como se definen, asignan o borran valores a variables o etiquetas y cómo se define y evalua una función. 2.4.1 Etiquetas Una etiqueta se define mediante el símbolo ":" seguido del valor que queremos darle. Por ejemplo, si queremos que la etiqueta "amapola" tome el valor 6, haremos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ amapola:6; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] de forma que si calculamos 3*amapola-15 obtendremos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 3*amapola-15; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] De igual forma podemos definir una fórmula y asignar valores a una variable. Veamos el siguiente ejemplo (observar lo que se hace): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v:2$ w:3$ formula:v*2/w-v*5; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 2.4.2 Constantes Maxima tiene constantes matemáticas predeterminadas. Por ejemplo el número e y por lo tanto conviene no usar dichas constantes como nombres de etiquetas o variables para evitar errores. Dichas constantes se diferencian porque llevan el símbolo % delante de la constante y sin espacio (%e). Otros ejemplos son: %i (número i), %pi (número p), %phi (razón aurea), etc. Tampoco conviene utilizar como nombres de etiquetas aquellas que definen algún comando en Maxima, por ejemplo, integrate, diff, sum, ... [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] 2.4.3 Funciones Para definir cualquier función, la sintaxis es: nombre de la función y argumentos, por ejemplo, f(x) o h(x;y) seguido del símbolo ":=" y la definición de la función. Ejemplos de función de una y varias variables: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(x):=x^2+sin(x)/x; /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ h(x,y):=2*%e^(x*y)-3/x^2; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Se evalúa una función sustituyendo los argumentos por sus valores correspondientes: Por ejemplo, si queremos evaluar la anterior función f(x) en el punto x=2, y la función h(x,y) en el punto (2,4), haremos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ f(2); h(2,4); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Maxima tiene funciones predefinidas. Algunas de las más comunes son: sqrt (raíz cuadrada), sin (seno), cos (coseno), tan (tangente), exp (exponencial), log (logaritmo en base e), abs (valor absoluto). Podemos ver (y borrar) las funciones que hemos definido y su definición a través del menú superior, en Maxima->Mostrar funciones (borrar funciones) y Maxima->Mostrar definiciones. También podemos definir funciones a trozos con if condición then expresión 1 else expresión 2. Por ejemplo si hacemos [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ g(x):=if x<=0 then x^3-x^2+3 else exp(x); [g(-2),g(0),g(4)]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] habremos definido la función g(x)=x^3-x^2+3, si x<=0, mientras que si x>0, se tiene que g(x)=exp(x); también le hemos pedido que evalúe dicha función en x=-2, 0 y 4. [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] EJERCICIO 3: Definir las funciones f(x)=x^3-x^2+3 y g(x)=x^3-x^2+k y calcular f(-2), f(1/2), g(-2). Si hacemos k=-1, calcular g(f(x)) y g(f(0)). EJERCICIO 4: Definir la función f(x,y)=x^3-y^2-1 y evaluarla en los puntos (-2,1) y (0,3). [wxMaxima: comment end ] */ /* [wxMaxima: section start ] UN RÁPIDO REPASO POR wxMAXIMA. [wxMaxima: section end ] */ /* [wxMaxima: comment start ] A continuación vamos a efectuar un rápido repaso por las operaciones que podemos efectuar en wxMaxima. En esta primera aproximación, solo se trata de que el alumno comprenda lo que wxMaxima puede realizar, aunque inicialmente no comprenda como se escriben determinadas sentencias. En las prácticas siguientes de la asignatura, estudiaremos con más profundidad cada uno de los apartados siguientes. De momento, sólo se trata de que se vaya entendiendo lo que se va a realizar en los ejercicios siguientes: [wxMaxima: comment end ] */ /* [wxMaxima: subsect start ] SOBRE ALGEBRA LINEAL [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] 3.1.1 Ejercicios con vectores Podemos definir los vectores: v=(2,-3) y w=(1,2): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v:[2,-3]; w:[1,2]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Si queremos escoger la componente de un vector; por ejemplo la segunda componente del vector v anterior: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v[2]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Si queremos realizar la suma: v+w [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v+w; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] po el Producto por escalares: -3·v [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ -3*v; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] También podemos calcular el Producto Escalar de dos vectores: v·w [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ v.w; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o calcular la Norma (o módulo) de un vector: ||v|| [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ sqrt(v.v); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para calcular el Producto Vectorial de dos vectores: v~w (donde el símbolo ~ se encuentra en la tecla del nro 4 del teclado alfabético; por tanto tendremos que teclear Alt Gr 4). Previamente, y para poder realizar esta operación, hemos de llamar a un paquete externo (denominado "vect", que nos permite realizar esta operación. Esta llamada se realiza con el comando load(vect) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(vect)$ u1:[2,1,4]; u2:[3,-1,5]; u1~u2$ express(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 3.1.2 Ejercicios con matrices Podemos definir las matrices siguientes: A=(1 2), B=(0 1), C=(1 2 3) (3 4) (-2 1) (4 5 6) (7 8 9) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A:matrix([1,2],[3,4]); B:matrix([1,1],[-1,1]); C:matrix([1,2,3],[4,5,6],[7,8,9]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Elegimos el coeficiente {2,3} de C: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ C[2][3]; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Si queremos sumar dos matrices: A+B [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A+B; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o realizar el producto por escalares: 3·A [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ 3*A; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o el producto de dos matrices: A·B (OJO: no es A*B) Comprobar la diferencia tecleando lo siguiente: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A.B; A*B; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Se puede multiplicar una matriz por un vector vector: A·v [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ A.v; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o hallar la matriz traspuesta: A^t [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ transpose(A); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o la inversa: A^-1 (OJO: no es A^(-1)); ver la diferencia: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ invert(A); A^-1; /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Si queremos hallar el determinante: |A| [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ determinant(A); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o calcular su rango: rg(C) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ rank(C); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Más adelante veremos la importancia de calcular el Núcleo: Ker(C) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ nullspace(C); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ args(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] y de la Imagen: Im(C) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ columnspace(C); args(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 3.1.3 Ejercicios con sistemas de ecuaciones lineales SCD: x+y=2,2x+3y=2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ linsolve([x+y=2,2*x+3*y=2],[x,y]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] SI: x+y=2,2x+2y=2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ linsolve([x+y=2,2*x+2*y=2],[x,y]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] SCI (solución paramétrica): x+y=2,2x+2y=4 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ linsolve([x+y=2,2*x+2*y=4],[x,y]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] SCI (solución implícita): x+y=2,2x+2y=4 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ linsolve_params:false$ linsolve([x+y=2,2*x+2*y=4],[x,y]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 3.1.4 Ejercicios de diagonalización Para hallar el polinomio característico: p_A(x) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ charpoly(A,x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ expand(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] y los Autovalores: lambda_i [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ eigenvalues(A); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ solve(charpoly(A,x),x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o los Autovectores: v_i [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ eigenvectors(A); /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] SOBRE CÁLCULO DIFERENCIAL E INTEGRAL [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] 3.2.1 Ejercicios sobre Cálculo Diferencial [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Podemos calcular límites finitos: lim_x->0 sen x/x [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ limit(sin(x)/x, x, 0); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o límites infinitos: lim_x->-inf (2x-1)^3/(x^2+1) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ limit((2*x-1)^3/(x^2+1),x,-inf); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Se puede obtener la suma de Series numéricas: sum 1/n^2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ simpsum; sum(1/n^2, n, 1, inf); simpsum:true; sum(1/n^2, n, 1, inf); reset(simpsum)$ /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Para hallar la derivada de una función (de una o varias variables). Por ejemplo, para hallar la derivada parcial 3 veces respecto de x de la función sin 2xy: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ diff(sin(2*x*y),x,3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o la matriz Hessiana: H(sin(x+y)) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ hessian(sin(x+y),[x,y]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o un polinomio de Taylor: (sin x)/x, n=10, x0=0 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ taylor(sin(x)/x,x,0,10); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ratdisrep(%); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ powerdisp; powerdisp:true$ ratdisrep(taylor(sin(x)/x,x,0,10)); powerdisp:false$ ratdisrep(taylor(sin(x)/x,x,0,10)); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 3.2.2 Ejercicios sobre Cálculo Integral [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] Podemos hallar una Primitiva: Por ejemplo de f(x)= x/(x^3-2x^2+1): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(x/(x^3-2*x^2+1),x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] o una integral definida: Por ejemplo, para calcular en el intervalo [0,pi] la integral de (cos(x))^2: [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(cos(x)^2,x,0,%pi); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] También podemos hallar integrales impropias: Para hallar en el intervalo [-inf,inf] la integral de f(x)= e^(-x^2/2): [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ integrate(exp(-x^2/2),x,-inf,inf); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ rootscontract(%); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 3.2.3 Ejercicios sobre Cálculo Vectorial Gradiente: grad x·y^2·sin(z) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ load(vect)$ /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ express(grad(x*y^2*sin(z))); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(%,diff); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Divergencia: div (x,z·y^2,sin(x+z)) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ express(div([x,z*y^2,sin(x+z)])); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(%,diff); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Rotacional: rot (x^2,y^3,z) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ express(curl([x^2,y^3,z])); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(%,diff); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Laplaciano: lap x·y^2 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ express(laplacian(x*y^2)); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ev(%,diff); /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] SOBRE ECUACIONES DIFERENCIALES [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] 3.3.1 Ejercicios sobre EDO de 1er orden [wxMaxima: comment end ] */ /* [wxMaxima: comment start ] De variables separadas: y'=sen x/sqrt(y) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ode2('diff(y,x)=sin(x)/sqrt(y),y,x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] EDO Lineales: y'=y/x+1, y(1)=3 [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ode2('diff(y,x)=y/x+1,y,x); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ ic1(%,x=1,y=3); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Homogéneas: y'=(x+y)/(2x+y) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ode2('diff(y,x)=(x+y)/(2*x+y),y,x); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] Factor integrante: y'=(4x^3-y)/(2x-x^4/y) [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ ode2('diff(y,x)=(4*x^3-y)/(2*x-x^4/y),y,x); /* [wxMaxima: input end ] */ /* [wxMaxima: subsect start ] SOBRE REPRESENTACIONES GRÁFICAS EN 2D Y 3D [wxMaxima: subsect end ] */ /* [wxMaxima: comment start ] 3.4.1 Representaciones en 2D [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ plot2d(sin(2*x),[x,-2*%pi,2*%pi]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ plot2d([x^2,sqrt(2*x)],[x,-2,2]); /* [wxMaxima: input end ] */ /* [wxMaxima: comment start ] 3.4.2 Representaciones de curvas y superficies en 3D [wxMaxima: comment end ] */ /* [wxMaxima: input start ] */ plot3d(cos(x*y),[x,-3,3],[y,-3,3]); /* [wxMaxima: input end ] */ /* [wxMaxima: input start ] */ plot3d([cos(u)*cos(v),sin(u)*cos(v),sin(v)], [u,0,2* %pi],[v,- %pi/2, %pi/2]); /* [wxMaxima: input end ] */ /* Maxima can't load/batch files which end with a comment! */ "Created with wxMaxima"$