## maxima-lang-es — Spanish-language discussion of the Maxima computer algebra system

You can subscribe to this list here.

2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 Jan Feb Mar Apr May Jun Jul Aug Sep (12) Oct (1) Nov (9) Dec (2) Jan (3) Feb (6) Mar (2) Apr May (3) Jun (5) Jul Aug Sep (3) Oct Nov Dec Jan (3) Feb (6) Mar (7) Apr (2) May (3) Jun Jul (8) Aug (3) Sep (4) Oct (2) Nov Dec (10) Jan Feb (2) Mar Apr (1) May (14) Jun Jul (14) Aug (9) Sep (12) Oct (7) Nov Dec (5) Jan (27) Feb (5) Mar (5) Apr (57) May (35) Jun (8) Jul Aug (3) Sep (5) Oct (16) Nov (28) Dec (9) Jan (6) Feb (29) Mar (36) Apr (3) May Jun (14) Jul (2) Aug (3) Sep (17) Oct (9) Nov (3) Dec (9) Jan (19) Feb (4) Mar (10) Apr (7) May (7) Jun Jul (4) Aug (2) Sep (9) Oct (10) Nov (8) Dec (10) Jan Feb (6) Mar Apr (11) May Jun (3) Jul (17) Aug Sep (17) Oct (8) Nov Dec Jan (1) Feb (8) Mar (4) Apr (8) May (5) Jun (3) Jul (5) Aug (2) Sep Oct (2) Nov Dec (4) Jan Feb (4) Mar (3) Apr (2) May (2) Jun Jul (1) Aug (1) Sep (16) Oct (3) Nov Dec (7) Jan (2) Feb Mar (8) Apr May (1) Jun (11) Jul (8) Aug (12) Sep Oct (2) Nov (4) Dec Jan Feb (2) Mar Apr May Jun Jul Aug Sep Oct Nov Dec
S M T W T F S

1

2

3

4

5

6

7

8
(1)
9
(3)
10
(13)
11
(1)
12

13
(1)
14

15

16

17
(2)
18
(6)
19

20

21

22

23

24

25

26

27

28

29
(1)
30

Showing 13 results of 13

 Re: [Maxima-lang-es] Comprendiendo declare From: Juan Pablo Carbajal - 2010-11-10 21:41:45 ```Mario, Espectacular lo que estás haciendo, che! Mi problema es un poco menos explicito me parece... a ver si lo puedo reducir al minimo... kill(all); Rot(_angle%) := matrix([cos(_angle%),-sin(_angle%)],[sin(_angle%),cos(_angle%)])\$ dRot(_angle%) := matrix([0, -1],[1, 0]) . 'Rot(_angle%)\$ matchdeclare(_x%,true); defrule(Rotderiv,'diff('Rot(_x%),t),dRot(_x%)*'diff(_x%,t)); Hasta ahi todo bien, acá esta el chequeo de que algo anda bien... expr : 'diff('Rot(%theta),t); apply1(expr,Rotderiv); pero ahora haciendo expr: ('diff('Rot(%theta(t)) . [x,y],t)) . ('diff('Rot(%theta(t)) . [x,y],t)); expr: ev(expr,diff); apply1(expr,Rotderiv); Parece todo bien, pero si no hago el truco que charlamos antes (hacer que de alguna forma diff(%theta(t),t) sea un escalar), esa expresion no se simplifica; la derivada temporal de %theta, deberia salir como un factor al cuadrado. Otro ejemplo expr: transpose('diff('Rot(%theta(t)),t).[x,y]). ('diff('Rot(%theta(t)),t) . [x,y]); apply1(expr,Rotderiv); expr: ev(expr,transpose); Donde ni se que es lo que el sistema está haciendo. con el truco mencionado, logré conseguir el comportamiento deseado, peor no se si estoy metiendo bugs. Saludos 2010/11/10 Mario Rodriguez : > El mié, 10-11-2010 a las 18:10 +0100, Juan Pablo Carbajal escribió: >> Gracias Mario, >> >> Eso aclararía un poco las cosas. Sin embargo, hasta donde pueod ver, >> haciendo ese apply, tood funciona como si %theta fuese una función. >> Voy a corregir ese bug de mis programas. >> >> En este caso queda sin respuesta la pregunta de como definir funciones >> escalares, de tal forma que las derivadas se an considerados como >> escalares. >> Todo viene de que quiero hacer la derivada de una matriz de rotacion R y eso da >> >> matrix([0 -1],[1 0]) . R(%theta) * diff(%theta,t) >> >> Y, cuando hago operaciones vectoriales (como un simple transpose()) >> considera que diff(%theta,t) no es un escalar y no puede simplificar >> las expresiones. >> > > Bueno, en Maxima, el producto de una matriz por escalar es el operador > *. No creo que necesites declarar nada como escalar. > > No sé si te servirá, pero aquí defino algunas matrices de > transformación: > > http://www.telefonica.net/web2/biomates/maxima/gpdraw/transform > >> Voy a preguntar mañana en la lista en Inglés. >> >> Saludos y gracias. >> >> JPi > > -- > Mario > > -- M. Sc. Juan Pablo Carbajal ----- PhD Student University of Zürich http://www.ailab.ch/carbajal ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Mario Rodriguez - 2010-11-10 19:20:37 ```El mié, 10-11-2010 a las 18:10 +0100, Juan Pablo Carbajal escribió: > Gracias Mario, > > Eso aclararía un poco las cosas. Sin embargo, hasta donde pueod ver, > haciendo ese apply, tood funciona como si %theta fuese una función. > Voy a corregir ese bug de mis programas. > > En este caso queda sin respuesta la pregunta de como definir funciones > escalares, de tal forma que las derivadas se an considerados como > escalares. > Todo viene de que quiero hacer la derivada de una matriz de rotacion R y eso da > > matrix([0 -1],[1 0]) . R(%theta) * diff(%theta,t) > > Y, cuando hago operaciones vectoriales (como un simple transpose()) > considera que diff(%theta,t) no es un escalar y no puede simplificar > las expresiones. > Bueno, en Maxima, el producto de una matriz por escalar es el operador *. No creo que necesites declarar nada como escalar. No sé si te servirá, pero aquí defino algunas matrices de transformación: http://www.telefonica.net/web2/biomates/maxima/gpdraw/transform > Voy a preguntar mañana en la lista en Inglés. > > Saludos y gracias. > > JPi -- Mario ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Juan Pablo Carbajal - 2010-11-10 17:10:43 ```Gracias Mario, Eso aclararía un poco las cosas. Sin embargo, hasta donde pueod ver, haciendo ese apply, tood funciona como si %theta fuese una función. Voy a corregir ese bug de mis programas. En este caso queda sin respuesta la pregunta de como definir funciones escalares, de tal forma que las derivadas se an considerados como escalares. Todo viene de que quiero hacer la derivada de una matriz de rotacion R y eso da matrix([0 -1],[1 0]) . R(%theta) * diff(%theta,t) Y, cuando hago operaciones vectoriales (como un simple transpose()) considera que diff(%theta,t) no es un escalar y no puede simplificar las expresiones. Voy a preguntar mañana en la lista en Inglés. Saludos y gracias. JPi 2010/11/10 Mario Rodriguez : > El mié, 10-11-2010 a las 17:44 +0100, Juan Pablo Carbajal escribió: >> Mario >> fijate que yo estaba haciendo >> >> %theta: apply(%theta,[t]) >> >> Lo que segun entiendo la convierte en una funcion. > > Puede tener el aspecto de una función, pero Maxima no la reconoce como > tal. Te lo demuestro: > > La variable global functions contiene las funciones ordinarias de > Maxima: > > (%i1) %theta: apply(%theta,[t]); > (%o1)                              %theta(t) > (%i2) %alpha(x) := x^2\$ > (%i3) functions; > (%o3)                             [%alpha(x)] > > Sólo %alpha es reconocida como tal. > > -- > Mario > > -- M. Sc. Juan Pablo Carbajal ----- PhD Student University of Zürich http://www.ailab.ch/carbajal ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Mario Rodriguez - 2010-11-10 16:57:36 ```El mié, 10-11-2010 a las 17:44 +0100, Juan Pablo Carbajal escribió: > Mario > fijate que yo estaba haciendo > > %theta: apply(%theta,[t]) > > Lo que segun entiendo la convierte en una funcion. Puede tener el aspecto de una función, pero Maxima no la reconoce como tal. Te lo demuestro: La variable global functions contiene las funciones ordinarias de Maxima: (%i1) %theta: apply(%theta,[t]); (%o1) %theta(t) (%i2) %alpha(x) := x^2\$ (%i3) functions; (%o3) [%alpha(x)] Sólo %alpha es reconocida como tal. -- Mario ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Juan Pablo Carbajal - 2010-11-10 16:44:55 ```Mario fijate que yo estaba haciendo %theta: apply(%theta,[t]) Lo que segun entiendo la convierte en una funcion. Es por eso que tus resultados te dan 0. Sigo leyendo tu primer mail.... 2010/11/10 Mario Rodriguez : > El mié, 10-11-2010 a las 16:35 +0100, Juan Pablo Carbajal escribió: >> Creo que puedo autorespoderme la pregunta (prueba y error, prueba y error...). >> >> Por alguna razón lógica que se me escapa (sospecho que viene de como >> se interpretan los verbos) la función %theta se convierte en escalar >> cuando su argumento es escalar. > > Un momento. %theta no es una función; para que sea reconocida como tal, > debe definirse de la forma correcta (operador ":=" o "define") > > Creo que mi mensaje anterior acota algo las dudas. > > -- > Mario > > -- M. Sc. Juan Pablo Carbajal ----- PhD Student University of Zürich http://www.ailab.ch/carbajal ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Mario Rodriguez - 2010-11-10 16:31:33 ```El mié, 10-11-2010 a las 16:35 +0100, Juan Pablo Carbajal escribió: > Creo que puedo autorespoderme la pregunta (prueba y error, prueba y error...). > > Por alguna razón lógica que se me escapa (sospecho que viene de como > se interpretan los verbos) la función %theta se convierte en escalar > cuando su argumento es escalar. Un momento. %theta no es una función; para que sea reconocida como tal, debe definirse de la forma correcta (operador ":=" o "define") Creo que mi mensaje anterior acota algo las dudas. -- Mario ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Mario Rodriguez - 2010-11-10 16:25:13 ```El mié, 10-11-2010 a las 15:57 +0100, Juan Pablo Carbajal escribió: > Hola de nuevo, > Les pido perdon por hacer tantas preguntas de principiante, pero antes > de ponerlas aquí trato de buscar en los documentos que tengo a mano. > > Me pueden ayudar entendiendo el siguiente output > > (%i1) kill(all); > %theta: apply(%theta,[t]); > declare(%theta,scalar); > scalarp(%theta); > scalarp('%theta); > scalarp(diff(%theta,t)); > scalarp('diff(%theta,t)); > > (%o0) done > (%o1) %theta(t) > (%o2) done > (%o3) true > (%o4) true > (%o5) false > (%o6) false > > Por qué la derivada de un escalar no evalua el predicado scalarp() a verdad? Yo obtengo esto: (%i1) kill(all); (%o0) done (%i1) declare(%theta,scalar); (%o1) done (%i2) scalarp(%theta); (%o2) true (%i3) scalarp(diff(%theta,t)); (%o3) true (%i4) scalarp('diff(%theta,t)); (%o4) false A mi estos resultados me parecen bastante coherentes. La salida %o3 es true porque el argumento de scalarp es 0: (%i5) diff(%theta,t); (%o5) 0 Para nada tiene en cuenta el hecho de que %theta se haya declarado como escalar; como ejemplo, (%i6) scalarp(diff(%alpha,t)); (%o6) true que es tanto como haber hecho directamente (%i7) scalarp(0); (%o7) true ¿Esperabas que %o4 fuese también true? El manual de Maxima dice lo siguiente: (%i8) ? scalarp -- Función: scalarp () Devuelve `true' si es un número, constante o variable declarada como `scalar' con `declare', o compuesta completamente de tales números, constantes o variables, pero que no contengan matrices ni listas. Yo creo que se ajusta a lo que dice, ya que t no es una constante. Ahora fíjate en este malabarismo: (%i9) declare(t,scalar); (%o9) done (%i10) scalarp('diff(%theta,t)); (%o10) true > Como hago para declarar que ciertas funciones son escalar y otras no? Nuevamente del manual, de la definición de declare: `scalar' Hace que Maxima considere a como una variable escalar. Habla de variable, no de función. > Si hago un llamado a declare() dentro de una función definida con un > comando block(), cual es el "scope" de declare()? Según esto: (%i1) scalarp(u); (%o1) false (%i2) block([u], declare(u,scalar), scalarp(u)); (%o2) true (%i3) scalarp(u); (%o3) true parece que el alcance de la declaración va más allá del bloque. No sabría decirte por qué. Quizás en la lista inglesa encuentres mejores respuestas que las mías. Un saludo. -- Mario ```
 Re: [Maxima-lang-es] Comprendiendo declare From: Juan Pablo Carbajal - 2010-11-10 15:36:00 ```Creo que puedo autorespoderme la pregunta (prueba y error, prueba y error...). Por alguna razón lógica que se me escapa (sospecho que viene de como se interpretan los verbos) la función %theta se convierte en escalar cuando su argumento es escalar. Esto quiere decir que (%i1) kill(all); %theta: apply(%theta,[t]); declare(t,scalar); scalarp(%theta); scalarp('%theta); scalarp(diff(%theta,t)); scalarp('diff(%theta,t)); (%o0) done (%o1) %theta(t) (%o2) done (%o3) true /* %theta(t) es un escalar cuanod se lo pasa como un verbo*/ (%o4) false /* %theta(t) NO es un escalar cuanod se lo pasa como un sustantivo*/ (%o5) true (%o6) true Al final ambas derivadas dicen ser escalares.... Las preguntas que siguen sin respuestas son Como hago para declarar que ciertas funciones son escalar y otras no? Si hago un llamado a declare() dentro de una función definida con un comando block(), cual es el "scope" de declare()? Alguien puede iluminar a un simple mortal? Gracias! JPi 2010/11/10 Juan Pablo Carbajal : > Hola de nuevo, > Les pido perdon por hacer tantas preguntas de principiante, pero antes > de ponerlas aquí trato de buscar en los documentos que tengo a mano. > > Me pueden ayudar entendiendo el siguiente output > > (%i1) kill(all); >        %theta: apply(%theta,[t]); >        declare(%theta,scalar); >        scalarp(%theta); >        scalarp('%theta); >        scalarp(diff(%theta,t)); >        scalarp('diff(%theta,t)); > > (%o0) done > (%o1) %theta(t) > (%o2) done > (%o3) true > (%o4) true > (%o5) false > (%o6) false > > Por qué la derivada de un escalar no evalua el predicado scalarp() a verdad? > Como hago para declarar que ciertas funciones son escalar y otras no? > Si hago un llamado a declare() dentro de una función definida con un > comando block(), cual es el "scope" de declare()? > > Gracias > > JPi > > -- > M. Sc. Juan Pablo Carbajal > ----- > PhD Student > University of Zürich > http://www.ailab.ch/carbajal > -- M. Sc. Juan Pablo Carbajal ----- PhD Student University of Zürich http://www.ailab.ch/carbajal ```
 [Maxima-lang-es] Comprendiendo declare From: Juan Pablo Carbajal - 2010-11-10 14:57:37 ```Hola de nuevo, Les pido perdon por hacer tantas preguntas de principiante, pero antes de ponerlas aquí trato de buscar en los documentos que tengo a mano. Me pueden ayudar entendiendo el siguiente output (%i1) kill(all); %theta: apply(%theta,[t]); declare(%theta,scalar); scalarp(%theta); scalarp('%theta); scalarp(diff(%theta,t)); scalarp('diff(%theta,t)); (%o0) done (%o1) %theta(t) (%o2) done (%o3) true (%o4) true (%o5) false (%o6) false Por qué la derivada de un escalar no evalua el predicado scalarp() a verdad? Como hago para declarar que ciertas funciones son escalar y otras no? Si hago un llamado a declare() dentro de una función definida con un comando block(), cual es el "scope" de declare()? Gracias JPi -- M. Sc. Juan Pablo Carbajal ----- PhD Student University of Zürich http://www.ailab.ch/carbajal ```
 Re: [Maxima-lang-es] ¿maxima via apache? From: Mario Rodriguez - 2010-11-10 14:37:53 ```> > Me he perdido el inicio de la conversación, pero intuyo que esta > interfaz de la que se habla corre sobre un servidor web. > > Soy usuario Linux y maxima (soy profesor de matemática en colegios de > nivel medio de mi ciudad -Viedma, Patagonia Argentina-) y estoy > haciendo un gran uso de wxMaxima. > > Esta idea me parece muy interesante y portable, me gustaría > probarla... así que agradecería retomar el hilo... ¿que descargo? > ¿desde donde? ¿cómo lo instalo? Hay varios proyectos que actúan de interfaz a Maxima via web. Aquí hay algunos: http://maxima.sourceforge.net/es/relatedprojects.html De todos ellos, tengo peleado algo con STACK; está orientado a la enseñanza y es muy interactivo. El problema es que la instalación es bastante engorrosa y exige luego mucha dedicación preparar las actividades. Yo mismo hace poco comencé a trabajar en otro interfaz: http://yamwi.sourceforge.net/index_es.html Descarga el fichero al que se hace referencia y podrás leer las instrucciones de instalación. Probablemente le falten algunos refinamientos, pero tal como está ya es operativo. La versión del repositorio contiene algunas mejoras. El fichero INSTALL te dirá lo que tienes que instalar. No es complicado. Yamwi recoge todo el código que tu quieras pasarle a Maxima, lo ejecuta en modo por lotes (batch) y te devuelve todos los resultados juntos. Algunas instrucciones no te las admitirá si las considera de riesgo. Si te atascas en algún punto, envíame un correo. -- Mario ```
 [Maxima-lang-es] ¿maxima via apache? From: nicolás rosbaco - 2010-11-10 10:09:33 ```> Message: 3 > Date: Fri, 29 Oct 2010 22:38:57 +0200 > From: Mario Rodriguez > Subject: Re: [Maxima-lang-es] Resumen de Maxima-lang-es, Vol 25, Envío >        2 > To: Nicolas Guarin > Cc: maxima-lang-es@... > Message-ID: <1288384737.3157.23.camel@...> > Content-Type: text/plain; charset="UTF-8" > > El vie, 29-10-2010 a las 09:25 -0500, Nicolas Guarin escribió: > ... > Está pensada para instalar en Linux, aunque puedes usarla con cualquier > SO. Hay que instalar antes un servidor apache y el soporte php. Si se > quieren las ecuaciones en gráficos binarios a partir de TeX, hay que > instalar algo más (va más lento). > > En el archivo comprimido hay un fichero que lo explica. Si te animas y > tienes problemas, intento ayudarte. > > Cuando tenga tiempo trataré que las expresiones se visualicen con > jsMath, que espero que vaya más rápido. > Me he perdido el inicio de la conversación, pero intuyo que esta interfaz de la que se habla corre sobre un servidor web. Soy usuario Linux y maxima (soy profesor de matemática en colegios de nivel medio de mi ciudad -Viedma, Patagonia Argentina-) y estoy haciendo un gran uso de wxMaxima. Esta idea me parece muy interesante y portable, me gustaría probarla... así que agradecería retomar el hilo... ¿que descargo? ¿desde donde? ¿cómo lo instalo? Muchas gracias desde ya y los invito a pegar una mirada: http://www.conurbania.org/charlas/2010/36. En este taller desarrollo actividades con wxmaxima para trabajar con los chicos del colegio. -- "En un país colonial las oligarquías son las dueñas de los diccionarios" (John William Cooke) ```
 Re: [Maxima-lang-es] Algebra From: Juan Pablo Carbajal - 2010-11-10 08:13:03 ```Gracias Mario por tus rápidas respuestas! Entiedo, mi problema es demasiado general. Que tal el siguiente: Hay alguna manera de conseguir, mas o menos eficientemente la siguiente conversion expr: (2*cos(x)*m1^2 - m2*m1)*L2 --> ( cos(x) - m2/(2*m1) )*2*L2*m1^2 Encuentro dificil conseguir hacer fracciones con paramteros que se comporten como un grupo, en el ejemplo, sería m2/(2*m1). Lo que he tratado de hacer es subst(%mu=m2/2/m1,facsum(fullratsubst(m2/2/m1 = %mu,expr),m1^2)); y consigo un exito relativo, me pregunto si no hay algun flag o algo que pemrita manejar parametros agrupados como un atomo, o algo asi. Saludos 2010/11/10 Mario Rodriguez : > El lun, 08-11-2010 a las 22:56 +0100, Juan Pablo Carbajal escribió: >> Queridos amigos, >> >> He estado practicanod algebra con maxima (si voy a trabajar con >> lagrangeanos necesito estar bueno en algebra!). Me estoy volviendo >> loco tratanod de obtener las expresiones en ciertas formas. >> En general estoy tratando de amontonar todos los parametros, para >> adimencionalizar o simplemnte para armar nuevos parametros compuestos. >> Aquí les paso un ejemplo que no he podido resolver >> >> Tengo la expresion >> >> (%i1) expr: -(m1*L1)/(4*m2*L2)+(cos(2*%beta-2*%alpha)*L1)/(2*L2)-L1/(2*L2)\$ >> >> y quero ponerla en la forma >> >> (%i2) expr2: (cos(2*(%beta-%alpha))- m1/(2*m2) -1)*(L1/(2*L2))\$ > > > Francamente, no tengo una respuesta que darte. Cuanto más compleja es > una expresión, el número de expresiones que le son equivalentes aumenta > considerablemente. Maxima tiene algunas funciones que permiten > transformar unas en otras, pero encontrar la combinación que te de > precisamente la que quieres, puede ser tarea complicada. > > Prueba con factor(expr); no es lo que pides, pero se aproxima algo. > > -- > Mario > > -- M. Sc. Juan Pablo Carbajal ----- PhD Student University of Zürich http://www.ailab.ch/carbajal ```
 Re: [Maxima-lang-es] Algebra From: Mario Rodriguez - 2010-11-10 07:41:11 ```El lun, 08-11-2010 a las 22:56 +0100, Juan Pablo Carbajal escribió: > Queridos amigos, > > He estado practicanod algebra con maxima (si voy a trabajar con > lagrangeanos necesito estar bueno en algebra!). Me estoy volviendo > loco tratanod de obtener las expresiones en ciertas formas. > En general estoy tratando de amontonar todos los parametros, para > adimencionalizar o simplemnte para armar nuevos parametros compuestos. > Aquí les paso un ejemplo que no he podido resolver > > Tengo la expresion > > (%i1) expr: -(m1*L1)/(4*m2*L2)+(cos(2*%beta-2*%alpha)*L1)/(2*L2)-L1/(2*L2)\$ > > y quero ponerla en la forma > > (%i2) expr2: (cos(2*(%beta-%alpha))- m1/(2*m2) -1)*(L1/(2*L2))\$ Francamente, no tengo una respuesta que darte. Cuanto más compleja es una expresión, el número de expresiones que le son equivalentes aumenta considerablemente. Maxima tiene algunas funciones que permiten transformar unas en otras, pero encontrar la combinación que te de precisamente la que quieres, puede ser tarea complicada. Prueba con factor(expr); no es lo que pides, pero se aproxima algo. -- Mario ```

Showing 13 results of 13