## 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 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 Dec

Showing results of 764

<< < 1 .. 24 25 26 27 28 .. 31 > >> (Page 26 of 31)
 Re: [Maxima-lang-es] evaluar una función en x From: CARLOS Enrique CARLEOS Artime - 2009-09-26 22:18:54 ```Mario Rodriguez skribis, je 1#h6'38" (23h6'44") de 5ª Vendemiero 162ª (218.1.5 = 2009.9.26): > El mensaje de error que se obtiene: > sugiere que ev hace primero la sustitución y luego intenta derivar > respecto de 3. ¿Sabéis si hay algo parecido al MACROEXPAND y MACROEXPAND-1 de Lisp? (Me suena que sí, pero no lo usé nunca en Maxima.) Lo digo por si fuera útil en casos como éste. > ¿Por qué en un caso funciona y en otro no? Pues porque al definir la > función con el operador := éste no evalúa el miembro derecho de la > expresión, por lo que la derivada se calculará cada vez que hagas una > llamada a df. En cambio, con define, la derivada se calcula en el mismo > momento de definir la función; así, cuando ev haga la sustitución, lo > hará sobre la expresión ya derivada. Vaya. O sea que "define" se parece al "defun" de Lisp, y ":=" más a "defmacro". Aunque he leído que Maxima usa "::=" para macros. Tengo que estudiar eso también. > (%i16) df (t) := ev (''(diff (f (x), x)), x = t) ; > > También funciona, porque el operador de la doble comilla simple (que no > comilla doble), fuerza la evaluación de la derivada en el momento de > definir la función. Curioso: un apóstrofo "retarda" la evaluación (parecido a Lisp) y dos apóstrofos la "aceleran"... Hay muchas sutilezas en la sintaxis de Maxima. Me llevará tiempo estar cómodo. ¿Hay alguna manera de ver el código Lisp que corresponde a una expresión de Maxima? Quizá eso me ayudaría. > Espero haber arrojado alguna luz sobre el tema. Pues sí. Muchas gracias. -- Departemento pri Statistiko kaj Plejbonigo, kaj Matematika Didaktiko Universitato Oviedo - EUITIndus 33203 Hispanio - 2:343/107.6@... ```
 Re: [Maxima-lang-es] evaluar una función en x From: Mario Rodriguez - 2009-09-26 21:04:08 ```El sáb, 26-09-2009 a las 11:01 +0200, CARLOS Enrique CARLEOS Artime escribió: > Muchas gracias. Ahora voy a intentar averiguar por qué sí me funciona > "at", pero no "ev", en la situación siguiente: > > ,---- > | df (t) := at (diff (f (x), x), x = t); > | > | df (3); > | > | df (t) := ev (diff (f (x), x), x = t); > | > | df (3); > `---- > Hola, El mensaje de error que se obtiene: (%i3) f (x) := (x-1)^2 \$ (%i4) df (t) := ev (diff (f (x), x), x = t) ; (%o4) df(t) := ev(diff(f(x), x), x = t) (%i5) df (3); diff: second argument must be a variable; found 3 sugiere que ev hace primero la sustitución y luego intenta derivar respecto de 3. Además de at, también puedes utilizar subst: (%i8) df (t) := subst (x=t, diff (f (x), x)) ; (%o8) df(t) := subst(x = t, diff(f(x), x)) (%i9) df (3); (%o9) 4 Ha habido cierta discusión en la lista de correos oficial sobre la conveniencia de utilizar subst en lugar de ev en la mayor parte de casos. Si aún así te empeñas en utilizar ev, puedes echar mano de esta otra variante: (%i10) define(df(t), ev (diff (f (x), x), x = t)) ; (%o10) df(t) := 2 (t - 1) (%i11) df(3); (%o11) 4 ¿Por qué en un caso funciona y en otro no? Pues porque al definir la función con el operador := éste no evalúa el miembro derecho de la expresión, por lo que la derivada se calculará cada vez que hagas una llamada a df. En cambio, con define, la derivada se calcula en el mismo momento de definir la función; así, cuando ev haga la sustitución, lo hará sobre la expresión ya derivada. Otra variante: (%i16) df (t) := ev (''(diff (f (x), x)), x = t) ; (%o16) df(t) := ev(2 (x - 1), x = t) (%i17) df(3); (%o17) 4 También funciona, porque el operador de la doble comilla simple (que no comilla doble), fuerza la evaluación de la derivada en el momento de definir la función. Espero haber arrojado alguna luz sobre el tema. -- Mario ```
 Re: [Maxima-lang-es] evaluar una función en x From: CARLOS Enrique CARLEOS Artime - 2009-09-26 09:01:36 ```"José M. Mira" skribis, je 9h&'47" (9h10'55") de 5ª Vendemiero 162ª (218.1.5 = 2009.9.26): > Puedes hacerlo así > > f (x) := (x-1)^2; > diff (f(x), x); > ev(%,x=3); > > También así > > f (x) := (x-1)^2; > at(diff (f(x), x),x=3); Muchas gracias. Ahora voy a intentar averiguar por qué sí me funciona "at", pero no "ev", en la situación siguiente: ,---- | df (t) := at (diff (f (x), x), x = t); | | df (3); | | df (t) := ev (diff (f (x), x), x = t); | | df (3); `---- Creo que con "at" me podré arreglar. Confieso que leyendo el manual no pensé que "at" servía para eso; a ver si en la relectura me entero de qué hace en realidad (y por qué se me pasó). > Me alegro de que estés tomando contacto y que > te consiguiera despertar el gusanillo. Soy un convencido (más bien fanático) de la informática libre y el Lisp, así que tarde o temprano iba acabar en Maxima :-) -- Departemento pri Statistiko kaj Plejbonigo, kaj Matematika Didaktiko Universitato Oviedo - EUITIndus 33203 Hispanio - 2:343/107.6@... ```
 Re: [Maxima-lang-es] evaluar una función en x From: José M. Mira - 2009-09-26 07:05:50 ```Hola Carlos: Puedes hacerlo así f (x) := (x-1)^2; diff (f(x), x); ev(%,x=3); También así f (x) := (x-1)^2; at(diff (f(x), x),x=3); Me alegro de que estés tomando contacto y que te consiguiera despertar el gusanillo. Saludos -- José Manuel Mira http://webs.um.es/mira Dpto. de Matemáticas http://www.matematicas.um.es Universidad de Murcia CARLOS Enrique CARLEOS Artime escribió: > Hola. Duda de principiante. Quiero evaluar una expresión > sustituyendo una variable por un valor numérico. Concreto un poco > más: > > Supongamos que tengo una función cualquiera, por ejemplo > > f (x) := (x-1)^2; > > Puedo calcular su derivada así, > > > diff (f(x), x); > > ¿Cómo puedo evaluar esa derivada en un punto, p.ej. en el 3? > > Muchas gracias. > > ```
 [Maxima-lang-es] evaluar una función en x From: CARLOS Enrique CARLEOS Artime - 2009-09-25 23:01:35 ```Hola. Duda de principiante. Quiero evaluar una expresión sustituyendo una variable por un valor numérico. Concreto un poco más: Supongamos que tengo una función cualquiera, por ejemplo f (x) := (x-1)^2; Puedo calcular su derivada así, diff (f(x), x); ¿Cómo puedo evaluar esa derivada en un punto, p.ej. en el 3? Muchas gracias. -- Departemento pri Statistiko kaj Plejbonigo, kaj Matematika Didaktiko Universitato Oviedo - EUITIndus 33203 Hispanio - 2:343/107.6@... ```
 Re: [Maxima-lang-es] Problema anidando llamadas a funciones (o comandos) From: Juan Pablo Romero Bernal - 2009-08-17 21:58:37 ```Saludos, > hola gente, la verdad que no sabía como titular la pregunta (espero llamar > la atención adecuadamente). Mi problema es el siguiente: > Me encontré con lo siguiente: si utilizo el comando evaluar (ev) anidadno > llamadas a denom y lhs anda mal... muestro con ejemplo: > ej: ------------------------------- > (%i1) ecuacion:((x+1)*(x-3))/((x-1)*(x-2))=0;            //defino una > ecuación y la llamo ecuación > (%o1) ((x-3)*(x+1))/((x-2)*(x-1))=0 > (%i2) ev(denom(lhs(ecuacion)),x=3);                       //pretendo evaluar > el denominador de la misma si x=3 > (%o2) 1 > //MAL!!!!!!!!! > (%i3) denom(lhs(ecuacion));                                     //obtengo el > denominador del priemr miembro de la ecuación > (%o3) (x-2)*(x-1) > (%i4) ev(%,x=3); > //realizo la evaluación (pero de otro modo!) > (%o4) 2 > //ahora funciona bien! > fin ej--------------------------------------------------------- Cuando utilizas la función ev, esta evalua la expresión que se pasa como argumento con base en las condiciones que se establecen. En tu caso, cuando ejecutas: (%i72) ev((denom(lhs(ecuacion))),x=3); (%o72) 1 obtienes 1, debido a que ev realiza la sustitución de x=3 en ecuacion, no en el resultado de la evaluación de denom y lhs, así: (%i73) ecuacion,x=3; (%o73) 0 = 0 (%i74) lhs(%); (%o74) 0 (%i75) denom(%); (%o75) 1 Para que ev aplique la evaluación después, puedes hacer lo siguiente: (%i77) ev('(denom(lhs(ecuacion))),x=3,eval); (%o77) 2 el parámetro eval se usa para realizar una post-evaluación. Revisa la documentación de la función ev en [1] Espero haya sido de ayuda. [1] http://maxima.sourceforge.net/docs/manual/en/maxima_4.html#IDX15 -- Juan Pablo Romero Bernal Blog: http://jpromerobx.blogspot.com/ ```
 [Maxima-lang-es] Problema anidando llamadas a funciones (o comandos) From: nicolás rosbaco - 2009-08-17 19:53:13 Attachments: Message as HTML ```hola gente, la verdad que no sabía como titular la pregunta (espero llamar la atención adecuadamente). Mi problema es el siguiente: Me encontré con lo siguiente: si utilizo el comando evaluar (ev) anidadno llamadas a denom y lhs anda mal... muestro con ejemplo: ej: ------------------------------- (%i1) ecuacion:((x+1)*(x-3))/((x-1)*(x-2))=0; //defino una ecuación y la llamo ecuación (%o1) ((x-3)*(x+1))/((x-2)*(x-1))=0 (%i2) ev(denom(lhs(ecuacion)),x=3); //pretendo evaluar el denominador de la misma si x=3 (%o2) 1 //MAL!!!!!!!!! (%i3) denom(lhs(ecuacion)); //obtengo el denominador del priemr miembro de la ecuación (%o3) (x-2)*(x-1) (%i4) ev(%,x=3); //realizo la evaluación (pero de otro modo!) (%o4) 2 //ahora funciona bien! fin ej--------------------------------------------------------- La verdad no comprendo que es lo que pasa, agradecería mucho alguién me lo pueda explicar... Desde ya 1x10^1000 gracias.- nicolás (Patagona Argentina) ```
 Re: [Maxima-lang-es] comenzando From: Mario Rodriguez - 2009-08-08 09:22:06 ```Gaspar Núñez escribió: > por ejemplo yo soy economista y > quiero tratar de usar M para cuestiones > microeconómicas Desde hace algunos meses está disponible en Maxima un paquete sobre funciones financieras que posiblemente te interese: load("finance") La documentación y los ejemplos están en un fichero de extensión texi que encontrarás aquí: http://maxima.cvs.sourceforge.net/viewvc/maxima/maxima/share/contrib/finance/ El formato es un poco engorroso; pero si tienes dificultad para leerlo me lo dices y te lo transformo a pdf o html. Bienvenido al club. -- Mario ```
 Re: [Maxima-lang-es] comenzando From: Gaspar Núñez - 2009-08-07 19:49:16 Attachments: Message as HTML ```Gracias a todos por sus sugerencias, por lo que estoy viendo vale la pena aprender a utilizar Máxima una sugerencia para los desarrolladores sería que tomen en cuenta que muchos usuarios no somos expertos en programación y desconocemos muchos términos de la jerga por ejemplo yo soy economista y quiero tratar de usar M para cuestiones microeconómicas saludos -- Gaspar ```
 Re: [Maxima-lang-es] comenzando From: Argel Gastélum Arellánez - 2009-08-06 17:12:40 ``` Gaspar Núñez escribió: > hola estoy tratando de comenzar con Maxima > > instalé la versión wxMaxima 0.8.2 en Windows > he invertido más de una hora tratando de llevar a cabo la siguiente > operación: > > 2+2 > > sin lograrlo, lo cual es muy frustrante > ni en la sección de ayuda, > ni en el documento "primeros pasos...." > hay una explicación básica y sencilla > sobre como introducir dicha operación > y obtener el resultado > > he trabajado antes con varios programas > algunos de ellos son: GAMS, excel, e-views, R, y otros > > gracias > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day > trial. Simplify your report design, integration and deployment - and focus on > what you do best, core application coding. Discover what's new with > Crystal Reports now. http://p.sf.net/sfu/bobj-july > ------------------------------------------------------------------------ > > _______________________________________________ > Maxima-lang-es mailing list > Maxima-lang-es@... > https://lists.sourceforge.net/lists/listinfo/maxima-lang-es > Hola Gaspar, buenas tardes. Usando wxMaxima en windows vista, para obtener el resultado hay que teclear "ctrl+enter" o "mayúsculas+enter". Puedes modificar este comportamiento, de forma que te dé el resultado sólo con dar "enter". Para esto vas al menú "Editar-Preferencias" y en la pestaña "Opciones" marcas la casilla que dice "Enter evaluates cells" y das click en el botón "Aceptar". Una vez hecho esto, puedes poner por ejemplo: 2+2 y al dar "enter" con el botón grande del teclado te introduce el símbolo ";" (esto es necesario para indicar el fin de una instrucción que va a ser evaluada, en wxMaxima puedes colocarlo tú o dejar que el programa lo haga) y te arroja el resultado siguiente: 2+2; 4 Puedes también introducir varias líneas a la vez, poniendo 2+2, colocándole el símbolo ";" y dando "enter" con el recuadro de teclas numéricas en tu teclado, se baja el cursor a la línea siguiente, donde ahora puedes escribir 2+3 y agregas el símbolo ";" y así sucesivamente. Al dar enter con el teclado se evaluarán las líneas que introdujiste y te arrojará el resultado siguiente: 2+2; 2+3; 4 5 Espero te sirva, saludos y mucha suerte en tus inicios con Maxima. -- Argel. ```
 Re: [Maxima-lang-es] comenzando From: Mario Rodriguez - 2009-08-06 06:37:52 ``` > hola estoy tratando de comenzar con Maxima > Hola, > instalé la versión wxMaxima 0.8.2 en Windows > he invertido más de una hora tratando de llevar a cabo la siguiente > operación: > > 2+2 > > sin lograrlo, lo cual es muy frustrante > ni en la sección de ayuda, Lo que tienes que hacer te lo ha dicho Robert en un mensaje anterior. > ni en el documento "primeros pasos...." > hay una explicación básica y sencilla > sobre como introducir dicha operación > y obtener el resultado Este documento es un tutorial a Maxima, no a Wxmaxima. Son dos programas diferentes; el primero es el que hace la parte matemática y el segundo es un interfaz gráfico para que el usuario se sienta más cómodo a la hora de interactuar con Maxima. En realidad, Wxmaxima tampoco es el único interfaz gráfico disponible. Creo que muchos usuarios de Windows no ven clara esta distinción porque el binario que se descargan e instalan lleva todo junto empaquetado: Maxima, Wxmaxima y Gnuplot, el programa que se encarga de hacer los gráficos. Puedes echarles una ojeada a los siguientes enlaces, que están más orientados al interfaz gráfico: https://forja.rediris.es/docman/view.php/209/356/guia_wxmaxima.pdf http://vimeo.com/maximajaj Quizás el menú de ayuda de Wxmaxima debiera incluir un apartado a sus propias particularidades, como el detalle que acabas de preguntar, cómo utilizar el botón deslizante de los gráficos, cómo controlar el tamaño de éstos cuando se incrustan en el documento, etc. Y puesto que de Wxmaxima hablamos, parece que la traducción al castellano del menú ya no se mantiene desde hace algún tiempo. Igual alguien por aquí se anima a echarles una manita ... Un saludo a todos. -- Mario ```
 Re: [Maxima-lang-es] comenzando From: Robert Dodier - 2009-08-05 22:10:17 ```2009/8/5 Gaspar Núñez : > instalé la versión wxMaxima 0.8.2 en Windows > he invertido más de una hora tratando de llevar a cabo la siguiente > operación: > > 2+2 Hola Gaspar, creo que tienes que hacer shift-enter o quizas ctrl-enter despues de 2 + 2, en vez de "enter" simplemente. Por eso se puede entregar mas que una linea a la vez, entregando todas las lineas con shift-enter o ctrl-enter. Es muy confundido para los que comiencen con Maxima ... lo siento. saludos desde EEUU Robert Dodier ```
 Re: [Maxima-lang-es] comenzando From: Juan Pablo Romero Bernal - 2009-08-05 21:05:44 ```Saludos Gaspar, > instalé la versión wxMaxima 0.8.2 en Windows > he invertido más de una hora tratando de llevar a cabo la siguiente > operación: Qué error obtienes ?? De qué forma instalaste wxMaxima ?? Saludos y que Dios nos bendiga. -- Juan Pablo Romero Bernal Blog: http://jpromerobx.blogspot.com/ ```
 [Maxima-lang-es] comenzando From: Gaspar Núñez - 2009-08-05 21:00:25 Attachments: Message as HTML ```hola estoy tratando de comenzar con Maxima instalé la versión wxMaxima 0.8.2 en Windows he invertido más de una hora tratando de llevar a cabo la siguiente operación: 2+2 sin lograrlo, lo cual es muy frustrante ni en la sección de ayuda, ni en el documento "primeros pasos...." hay una explicación básica y sencilla sobre como introducir dicha operación y obtener el resultado he trabajado antes con varios programas algunos de ellos son: GAMS, excel, e-views, R, y otros gracias ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Argel Gastélum Arellánez - 2009-07-17 02:27:58 ``` Robert Dodier escribió: > On 7/16/09, Robert Dodier wrote: > > >> plot2d ([Vmax*S/(S+Km), [discrete, ''(args (M))]], [S, 0, 10]), Valores_estimados; >> >> (Nota bene la presencia de dos comillas simples, no una comilla doble.) >> > > Bueno, otra cosa innecesario aqui --- se puede escribir igualmente > > plot2d ([Vmax*S/(S+Km), [discrete, args (M)]], [S, 0, 10]), Valores_estimados; > > sin los '' . > > hasta la proxima, > > Robert Dodier > > Hola de nuevo Robert, tomaré nota de la corrección. Saludos. -- Argel. ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Argel Gastélum Arellánez - 2009-07-17 02:21:12 ``` Robert Dodier escribió: > On 7/15/09, Argel Gastélum Arellánez wrote: > > >> M: >> matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415.1],[10,524.6])\$ >> V(S):=(Vmax*S)/(Km+S)\$ >> load (lsquares)\$ >> mse : lsquares_mse (M, [S, V], V = Vmax*S/(S + Km)); >> Valores_estimados: lsquares_estimates_approximate (mse, [Vmax, Km], >> initial=[450,1.5]); >> > > Con esta misma formulacion, resulta > [[Vmax = 563.6869308374349, Km = 1.700545693278585]] > y se puede mostrarlo asi: > > plot2d ([Vmax*S/(S+Km), [discrete, ''(args (M))]], [S, 0, 10]), > Valores_estimados; > > Hola Robert. Me sigue resultando Vmax=22.45615615793601 y Km=-3.791906615963443, con esas mismas instrucciones en wxMaxima. Las he copiado tal cual aparecen en el mensaje, no sé si estaré cometiendo algún error de otro tipo. > (Nota bene la presencia de dos comillas simples, no una comilla doble.) > > No se por que encuentra otro resultado ... > Trabajo con Maxima 5.18.1 + modificaciones adicionales (CVS). > Que version tiene? > > Estoy usando la versión 5.18.1, en windows vista home premium (tal vez el problema sea el sistema operativo, ja ja ja). Esto es lo que me aparece en wxMaxima: wxMaxima 0.8.2 http://wxmaxima.sourceforge.net Maxima 5.18.1 http://maxima.sourceforge.net Using Lisp GNU Common Lisp (GCL) GCL 2.6.8 (aka GCL) Distributed under the GNU Public License. See the file COPYING. Dedicated to the memory of William Schelter. The function bug_report() provides bug reporting information. Descargué el ejecutable "maxima-5.18.1.exe" siguiendo la liga a sourceforge desde el sitio oficial de maxima. Por lo que entiendo estás usando la última versión en desarrollo. Tal vez ya se haya corregido el detalle en esta versión más reciente, eso asumiendo que yo no esté cometiendo algún error, que puede ser muy probable dada mi poca experiencia con maxima. >> - Con "lbfgs" (iniciando con Vmax=500 y Km=2): >> Vmax=563.686793752521, Km=1.700537884640129, >> - Con el método de derivadas parciales (aquí obtengo varias >> parejas de datos y me he quedado con la última): Vmax=563.6868686868687, >> Km=1.700536005593102. >> > > Esos estan de acuerdo con lo que veo. > > >> Lo de la transformación de los datos de "V" no lo he acabado de >> entender muy bien, sobre todo el cómo hacerla en máxima, ya que llevo >> poco tiempo aprendiendo a usar el programa. Creo que lo que sugieres es >> algo como esto: >> > > Bueno, en este caso parece que no es necesario aplicar la > transformacion, puesto que se puede obtener el resultado > sin hacerlo. Pero podria hacerlo asi: > > load (stats) \$ > [SS, VV] : args (transpose (M)); /* obtener los columnos como listas */ > M1 : transpose (matrix (SS, (VV - mean (VV))/std(VV))); > mse1 : lsquares_mse (M1, [S, V]); > /* etc etc */ > > Desafortunadamente, la ecuacion Vmax*S/(S + Km) no describe > bien los datos transformados porque algunos son valores > negativos pero la ecuacion no lo puede ser. > Debo retraer mis consejos de ayer, lo siento. > > Saludos desde EEUU > > Robert Dodier > > Muchas gracias por el código para hacer la transformación. Ya había notado la falta de ajuste en la sección de datos negativos. Me di cuenta hasta después de enviar el mensaje anterior, pero asumí que tal vez había cometido errores al tratar de hacer la transformación. Como no tengo idea de cómo compilar, creo que tendré que esperar hasta que salga la nueva versión precompilada para windows. Por lo menos por "lbfgs" directamente se puede obtener un buen resultado, así como con el método de derivadas parciales (que me gusta particularmente porque no he tenido necesidad de dar valores iniciales), aunque me queda la curiosidad de no poder hacerlo con "lsquares_estimates_aproximate". Cualquier idea será bienvenida, ya que tengo mucho interés en poder aplicar las capacidades de Maxima en mi trabajo habitual en actividades de investigación biotecnológica, y espero que esto sea sólo el principio. De antemano muchas gracias por tu ayuda. Saludos y que estés bien. -- Argel. ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Robert Dodier - 2009-07-16 15:18:57 ```On 7/16/09, Robert Dodier wrote: > plot2d ([Vmax*S/(S+Km), [discrete, ''(args (M))]], [S, 0, 10]), Valores_estimados; > > (Nota bene la presencia de dos comillas simples, no una comilla doble.) Bueno, otra cosa innecesario aqui --- se puede escribir igualmente plot2d ([Vmax*S/(S+Km), [discrete, args (M)]], [S, 0, 10]), Valores_estimados; sin los '' . hasta la proxima, Robert Dodier ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Mario Rodriguez - 2009-07-16 08:57:09 ```> Creo que el modelo de Michaelis-Menten difícilmente puede estar mal, > pues es muy usado en cinética enzimática para determinar la constante Km > (antes se hacía linearizando la función, pero ahora se pide ajustar > directamente la función a los datos experimentales). Entiendo que se trata de un modelo estándar. -- Mario ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Robert Dodier - 2009-07-16 06:13:14 ```On 7/15/09, Argel Gastélum Arellánez wrote: > M: > matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415.1],[10,524.6])\$ > V(S):=(Vmax*S)/(Km+S)\$ > load (lsquares)\$ > mse : lsquares_mse (M, [S, V], V = Vmax*S/(S + Km)); > Valores_estimados: lsquares_estimates_approximate (mse, [Vmax, Km], > initial=[450,1.5]); Con esta misma formulacion, resulta [[Vmax = 563.6869308374349, Km = 1.700545693278585]] y se puede mostrarlo asi: plot2d ([Vmax*S/(S+Km), [discrete, ''(args (M))]], [S, 0, 10]), Valores_estimados; (Nota bene la presencia de dos comillas simples, no una comilla doble.) No se por que encuentra otro resultado ... Trabajo con Maxima 5.18.1 + modificaciones adicionales (CVS). Que version tiene? > - Con "lbfgs" (iniciando con Vmax=500 y Km=2): > Vmax=563.686793752521, Km=1.700537884640129, > - Con el método de derivadas parciales (aquí obtengo varias > parejas de datos y me he quedado con la última): Vmax=563.6868686868687, > Km=1.700536005593102. Esos estan de acuerdo con lo que veo. > Lo de la transformación de los datos de "V" no lo he acabado de > entender muy bien, sobre todo el cómo hacerla en máxima, ya que llevo > poco tiempo aprendiendo a usar el programa. Creo que lo que sugieres es > algo como esto: Bueno, en este caso parece que no es necesario aplicar la transformacion, puesto que se puede obtener el resultado sin hacerlo. Pero podria hacerlo asi: load (stats) \$ [SS, VV] : args (transpose (M)); /* obtener los columnos como listas */ M1 : transpose (matrix (SS, (VV - mean (VV))/std(VV))); mse1 : lsquares_mse (M1, [S, V]); /* etc etc */ Desafortunadamente, la ecuacion Vmax*S/(S + Km) no describe bien los datos transformados porque algunos son valores negativos pero la ecuacion no lo puede ser. Debo retraer mis consejos de ayer, lo siento. Saludos desde EEUU Robert Dodier ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Argel Gastélum Arellánez - 2009-07-16 05:08:56 ``` CARLOS Enrique CARLEOS Artime escribió: > Argel Gastélum Arellánez skribis, > je 17h41'10" (19h49'12") de 22ª Mesidoro 161ª (217.10.26 = 2009.7.14): > > >> Hola Carlos. Muchas gracias por tu sugerencia. ¿Cómo es que se usan >> estas instrucciones en wxMaxima?, mil disculpas por la ignorancia. >> > > Respecto a tu problama, otros han estado más encaminados que yo. > > En todo caso, por si te sirviera en otra ocasión: Maxima está escrito > en Lisp. Para poder usar código Lisp en Maxima escribe > > to_lisp() > > en Maxima; luego escribe las órdenes Lisp, por ejemplo > > (si::allocate 'cons 10000 t) > > y puedes volver a Maxima escribiendo > > (to-maxima) > > > > Hola Carlos. Muchas gracias por la sugerencia, cualquier ayuda es bienvenida. Tomaré nota de lo que me comentas. Saludos y que estés bien. -- Argel. ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Argel Gastélum Arellánez - 2009-07-16 05:06:15 ``` Mario Rodriguez escribió: >> Hola Mario, muchas gracias por tu respuesta. >> >> > > Hola, > > Aquí lo que que falla no es el algoritmo, sino la propia expresión que > estás ajustando a los datos, ya que ha encontrado un par (S, Km) cuya > suma es cero, por lo que al anularse el denominador se provoca el error. > > >> ----------------------------------------------------------------------------------------------------- >> Coeficientes_de_la_curva:float(lsquares_estimates(M,[S,V],V=(Vmax*S)/(S+Km),[Vmax,Km])) >> Division by 0 >> #0: lambda([x],ev(MSE,x))(x=[Vmax = 0,Km = -1/10]) >> > > Aquí te dice que que el fallo lo encontró cuando Km = -1/10 > > >> #1: >> lsquares_estimates_exact(mse=('sum(('data[i,2]-'data[i,1]*Vmax/(Km+'data[i,1]))^2,i,1,10))/10,parameters=[Vmax,Km]) >> #2: >> lsquares_estimates(data=matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415....,variables=[S,V],equation=V >> = Vmax*S/(S+Km),parameters=[Vmax,Km],optional_args=[])(lsquares.mac line >> 245) >> > > Y aquí veo que la primera fila de tu matriz es [0.1,47.09], luego > S+Km=0. > > >> -- an error. To debug this try debugmode(true); >> ----------------------------------------------------------------------------------------------------- >> >> > > >> ¿En este caso qué se podría hacer para evitar el problema de la >> división por cero? >> > > Creo que revisar el modelo. > > Un saludo. > > Hola Mario, muchas gracias por tu ayuda. Creo que el modelo de Michaelis-Menten difícilmente puede estar mal, pues es muy usado en cinética enzimática para determinar la constante Km (antes se hacía linearizando la función, pero ahora se pide ajustar directamente la función a los datos experimentales). Había observado ya el caso de que el algoritmo al parece prueba un valor inicial de -0.1 para Km y con el valor de 0.1 para S pues lógicamente se anulan y se produce una división por cero, pero al parecer pasa con cualquier valor inicial que se encuentre como primer dato en la matriz, lo que me parece algo raro. Tal vez la solución sea de otro tipo, pero no imagino cuál. Saludos y que estés bien. -- Argel. ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Argel Gastélum Arellánez - 2009-07-16 04:55:19 ``` Robert Dodier escribió: > Seria mejor en este caso resolver el problema por un metodo > numerico, lsquares_estimates_approximate. > La funciona lsquares_estimates intenta resolver el problema > primeramente por un metodo exacto, y este causa un error. > (Normalmente si el metodo exacto no tiene exito, se llamara al > metodo numerico automaticamente.) > > Con las cantidades que se muestran en un mensaje anterior, > obtengo lo siguiente: > > M : matrix ([0.1, 47.09], [0.5, 130.3], [1, 216.9], [1.5, 263.1], [2, > 338.6], [3, 311.5], [4, 390.9], [5, 428.8]); > load (lsquares); > mse : lsquares_mse (M, [S, V], V = Vmax*S/(S + Km)); > lsquares_estimates_approximate (mse, [Vmax, Km]); > => [[Vmax = 18.33332565335055, Km = - 1.898808985532863]] > > Vease que el valor de Km pone una asintota en el centro de > la region de datos ... supongo que sea necesario empezar de > algun valor derivado de teoria o experiencia, lo cual se puede > especificar como initial=[xxx, yyy] en lsquares_estimates_approximate. > Quizas no se encuentre este fenomena con los datos completos. > > Hola Robert, muchas gracias por tu respuesta. Hice la prueba con "lsquares_estimates_approximate" y el grupo de datos completo, y el resultado fue el siguiente: --------------------------------------------------------------------------------------------------------------------------- M: matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415.1],[10,524.6])\$ V(S):=(Vmax*S)/(Km+S)\$ load (lsquares)\$ mse : lsquares_mse (M, [S, V], V = Vmax*S/(S + Km)); Valores_estimados: lsquares_estimates_approximate (mse, [Vmax, Km], initial=[450,1.5]); ************************************************* N= 2 NUMBER OF CORRECTIONS=25 INITIAL VALUES F= 1.126767955935744D+05 GNORM= 4.663505336237758D+02 ************************************************* I NFN FUNC GNORM STEPLENGTH 1 12 9.245422582539530D+04 1.662797717013780D+01 4.848406677809377D-02 2 14 9.245422558394361D+04 1.357650549560247D+01 2.316370880620707D-05 3 15 9.245168763424068D+04 1.170506535638904D+02 1.000000000000000D+00 4 16 9.244987747125831D+04 2.746045047057544D+01 1.000000000000000D+00 5 17 9.244987710907991D+04 6.839210007474318D-01 1.000000000000000D+00 6 18 9.244987710881070D+04 2.710535121970986D-04 1.000000000000000D+00 THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS. IFLAG = 0 (%o5) [[Vmax=22.45615615793601,Km=-3.791906615963443]] --------------------------------------------------------------------------------------------------------------------------- Como me comentabas en tu mensaje, este resultado también hace que "Km" genere una asíntota vertical al centro de la región de los datos. Los valores que estoy buscando son: - Con "lbfgs" (iniciando con Vmax=500 y Km=2): Vmax=563.686793752521, Km=1.700537884640129, - Con el método de derivadas parciales (aquí obtengo varias parejas de datos y me he quedado con la última): Vmax=563.6868686868687, Km=1.700536005593102. Me llama la atención los resultados tan alejados que arroja "lsquares_estimates_approximate", ya que según entiendo del manual de Máxima, este comando hace uso de "lbfgs". Además, el valor de "Km" que arroja como resultado es negativo, cuando ambos valores deben ser positivos para que tengan sentido dentro de la cinética enzimática de Michaelis-Menten. > He observado que se mejora la solucion que se cambie los > datos por la trasformacion X <- (X - media(X))/sqrt(var(X)) > cuando la magnitude de X es muchos mas or mucho menos > que la unidad. En esto caso aplicaria la trasformacion a V. > El efecto de este trasformacion es solamente numerico, > no cambia la interpretacion ni significado del problema. > > Espero que este sirva por alguna manera, y gracias por > su interes en Maxima. > > Robert Dodier > > Lo de la transformación de los datos de "V" no lo he acabado de entender muy bien, sobre todo el cómo hacerla en máxima, ya que llevo poco tiempo aprendiendo a usar el programa. Creo que lo que sugieres es algo como esto: --------------------------------------------------------------------------------------------------------------------------- Matriz_original: matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415.1],[10,524.6])\$ load (descriptive)\$ Media_Matriz_original: mean(Matriz_original); [S_media, V_media]: map(lhs, Media_Matriz_original); Varianza_Matriz_original: var(Matriz_original); [S_varianza, V_varianza]: map(lhs, Varianza_Matriz_original); f(V):=(V - V_media)/sqrt(V_varianza); Columna_1: col(Matriz_original,1); M: addcol (Columna_1, map(f,col(Matriz_original,2))); V_transformada(S):=(Vmax_transformada*S)/(Km+S)\$ load (lsquares)\$ mse : lsquares_mse (M, [S, V_transformada], V_transformada = (Vmax_transformada*S)/(Km + S)); Valores_estimados: lsquares_estimates_approximate (mse, [Vmax_transformada, Km]); ************************************************* N= 2 NUMBER OF CORRECTIONS=25 INITIAL VALUES F= 9.833033270193449D-01 GNORM= 5.131504764903201D-01 ************************************************* I NFN FUNC GNORM STEPLENGTH 1 2 9.453464280835970D-01 3.938074100453514D-01 1.948746119928554D+00 2 3 8.526453755475384D-01 9.465112345233356D-02 1.000000000000000D+00 3 4 8.450625803987549D-01 5.366665387095197D-02 1.000000000000000D+00 4 5 8.376185763214288D-01 6.054995679772679D-02 1.000000000000000D+00 5 6 8.123845472324677D-01 9.256466018568303D-02 1.000000000000000D+00 6 7 7.851319307100791D-01 8.896910296487012D-02 1.000000000000000D+00 7 8 7.505888181766958D-01 2.556117301146286D-02 1.000000000000000D+00 8 9 7.300426608769119D-01 1.268068281418301D-02 1.000000000000000D+00 9 10 7.102963509442138D-01 8.590352811643422D-03 1.000000000000000D+00 THE MINIMIZATION TERMINATED WITHOUT DETECTING ERRORS. IFLAG = 0 (%o13) [[Vmax_transformada=2.023949354745329,Km=9.805772870085924]] [Vmax_transformada, Km]: map(rhs, first(Valores_estimados)); load(draw)\$ Escena_1:gr2d( title="Curva ajustada a Datos Experimentales", xlabel="x (Unidades)", ylabel="y (unidades)", xrange=[0,10], yrange=[0,2], key="Datos", point_type=filled_circle, point_size=1, color=red, points(M), key="Curva Ajustada por mínimos cuadrados", line_width=2, color=blue, explicit(ev(V_transformada(s),first(Valores_estimados)),s,0,10) )\$ wxdraw(Escena_1)\$ /*Ecuación de la curva de Michaelis-Menten ajustada:*/ v=(Vmax_transformada*s)/(Km+s); /*Entonces:*/ Vmax : Vmax_transformada*sqrt(V_varianza)+V_media; --------------------------------------------------------------------------------------------------------------------------- No estoy muy claro en si es correcta la forma de calcular Vmax a partir de Vmax_transformada (me resulta que Vmax = 586.2204994413612, que es un poco superior al valor que espero encontrar), ni en cómo determinar entonces el valor real de Km, que es el que más me interesa conocer. Bueno, de antemano te agradezco mucho la ayuda y me disculpo por mi ignorancia en el manejo correcto de los comandos. Saludos y que estés muy bien. -- Argel. ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Mario Rodriguez - 2009-07-15 07:51:41 ```> Hola Mario, muchas gracias por tu respuesta. > Hola, Aquí lo que que falla no es el algoritmo, sino la propia expresión que estás ajustando a los datos, ya que ha encontrado un par (S, Km) cuya suma es cero, por lo que al anularse el denominador se provoca el error. > ----------------------------------------------------------------------------------------------------- > Coeficientes_de_la_curva:float(lsquares_estimates(M,[S,V],V=(Vmax*S)/(S+Km),[Vmax,Km])) > Division by 0 > #0: lambda([x],ev(MSE,x))(x=[Vmax = 0,Km = -1/10]) Aquí te dice que que el fallo lo encontró cuando Km = -1/10 > #1: > lsquares_estimates_exact(mse=('sum(('data[i,2]-'data[i,1]*Vmax/(Km+'data[i,1]))^2,i,1,10))/10,parameters=[Vmax,Km]) > #2: > lsquares_estimates(data=matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415....,variables=[S,V],equation=V > = Vmax*S/(S+Km),parameters=[Vmax,Km],optional_args=[])(lsquares.mac line > 245) Y aquí veo que la primera fila de tu matriz es [0.1,47.09], luego S+Km=0. > -- an error. To debug this try debugmode(true); > ----------------------------------------------------------------------------------------------------- > > ¿En este caso qué se podría hacer para evitar el problema de la > división por cero? Creo que revisar el modelo. Un saludo. -- Mario ```
 Re: [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Robert Dodier - 2009-07-15 07:10:06 ```On 7/14/09, Argel Gastélum Arellánez wrote: > ¿En este caso qué se podría hacer para evitar el problema de la > división por cero? ¿Será un problema del algoritmo utilizado en este > método numérico? Seria mejor en este caso resolver el problema por un metodo numerico, lsquares_estimates_approximate. La funciona lsquares_estimates intenta resolver el problema primeramente por un metodo exacto, y este causa un error. (Normalmente si el metodo exacto no tiene exito, se llamara al metodo numerico automaticamente.) Con las cantidades que se muestran en un mensaje anterior, obtengo lo siguiente: M : matrix ([0.1, 47.09], [0.5, 130.3], [1, 216.9], [1.5, 263.1], [2, 338.6], [3, 311.5], [4, 390.9], [5, 428.8]); load (lsquares); mse : lsquares_mse (M, [S, V], V = Vmax*S/(S + Km)); lsquares_estimates_approximate (mse, [Vmax, Km]); => [[Vmax = 18.33332565335055, Km = - 1.898808985532863]] Vease que el valor de Km pone una asintota en el centro de la region de datos ... supongo que sea necesario empezar de algun valor derivado de teoria o experiencia, lo cual se puede especificar como initial=[xxx, yyy] en lsquares_estimates_approximate. Quizas no se encuentre este fenomena con los datos completos. He observado que se mejora la solucion que se cambie los datos por la trasformacion X <- (X - media(X))/sqrt(var(X)) cuando la magnitude de X es muchos mas or mucho menos que la unidad. En esto caso aplicaria la trasformacion a V. El efecto de este trasformacion es solamente numerico, no cambia la interpretacion ni significado del problema. Espero que este sirva por alguna manera, y gracias por su interes en Maxima. Robert Dodier ```
 [Maxima-lang-es] [Fwd: Re: Ajuste no lineal por derivadas parciales de mínimos cuadrados] From: Argel Gastélum Arellánez - 2009-07-15 00:59:46 ``` -------- Mensaje original -------- Asunto: Re: [Maxima-lang-es] Ajuste no lineal por derivadas parciales de mínimos cuadrados Fecha: Mon, 13 Jul 2009 20:52:16 -0500 De: Argel Gastélum Arellánez A: Mario Rodriguez Referencias: <4A5A9A26.3090605@...> <4A5B7D6A.2060904@...> Mario Rodriguez escribió: > Argel Gastélum Arellánez escribió: >> Hola, buenas tardes. Estoy tratando de hacer un ajuste no lineal >> de una función a un grupo de 214 parejas de datos, utilizando el >> método de derivadas parciales para encontrar mínimos cuadrados. Las >> instrucciones que estoy aplicando en wxMaxima 0.8.2 son las siguientes: >> >> --------------------------------------------------------------------------------- >> >> M: read_matrix("C:/Users/Usuario/Desktop/Datos.txt")\$ >> X: col(M,1)\$ >> Y: col(M,2)\$ >> Funcion_a_minimizar : '((1/length(X))*sum((F(X[i]) - Y[i])^2, i, >> 1,length(X))); >> F(X) := exp(-a*X)/(b+c*X); >> Suma_de_Cuadrados: first(''Funcion_a_minimizar); >> Derivada_parcial_a: diff(Suma_de_Cuadrados,a)\$ >> Derivada_parcial_b: diff(Suma_de_Cuadrados,b)\$ >> Derivada_parcial_c: diff(Suma_de_Cuadrados,c)\$ >> realonly: true\$ >> Constantes_estimadas_Racionales: >> solve([Derivada_parcial_a=0,Derivada_parcial_b=0,Derivada_parcial_c=0],[a,b,c]); >> >> Constantes_estimadas_Racionales2: >> (last(Constantes_estimadas_Racionales)); >> Constantes_estimadas_Decimales: >> float(last(Constantes_estimadas_Racionales)); >> [a[racional],b[racional],c[racional]]: map(rhs, >> Constantes_estimadas_Racionales2); >> [a[decimal],b[decimal],c[decimal]]: map(rhs, >> Constantes_estimadas_Decimales); >> load(draw)\$ >> Escena_1:gr2d( >> title="Curva ajustada a Datos Experimentales", >> xlabel="X (unidades)", >> ylabel="Y (unidades)", >> xrange=[0,6], >> yrange=[0,200], >> key="Datos experimentales", >> point_type=filled_circle, >> point_size=1, >> color=red, >> points(M), >> key="Curva Ajustada", >> line_width=3, >> color=blue, >> explicit(ev(F(x),first(Constantes_estimadas_Racionales2)),x,0,10) >> )\$ >> wxdraw(Escena_1)\$ >> /* >> Ecuación de la Curva Ajustada: >> */ >> y=exp(-a[racional]*x)/(b[racional]+c[racional]*x); >> y=exp(-a[decimal]*x)/(b[decimal]+c[decimal]*x); >> /* >> Valores reportados por la fuente de los datos (Datos NIST Chwirut1): >> a = 0.19027818370, b = 0.0061314004477, c = 0.010530908399. >> */ >> --------------------------------------------------------------------------------- >> >> >> Todo marcha bien hasta llegar a la orden: >> >> Constantes_estimadas_Racionales: >> solve([Derivada_parcial_a=0,Derivada_parcial_b=0,Derivada_parcial_c=0],[a,b,c]); >> >> >> donde se queda un rato trabajando el programa y después de unos >> segundos me arroja una serie de líneas como estas: >> ----------------------------------------------------------------------------- >> >> rat: replaced -1.0 by -1/1 = -1.0 >> rat: replaced -92.9 by -929/10 = -92.9 >> rat: replaced 0.5 by 1/2 = 0.5 >> ... >> rat: replaced 6.0 by 6/1 = 6.0 >> Maxima encountered a Lisp error: >> Error in PROGN [or a callee]: The storage for BIGNUM is exhausted. >> Currently, 7581 pages are allocated. >> Use ALLOCATE to expand the space. >> Automatically continuing. >> To reenable the Lisp debugger set *debugger-hook* to nil. >> ------------------------------------------------------------------------------ >> >> y a partir de aquí no avanza. He buscado pero no he encontrado la >> forma de expandir el espacio usando ALLOCATE y no tengo idea de qué >> se puede hacer. Esta secuencia de comandos me ha sido muy útil para >> ajustar curvas de Michaelis-Menten en experimentos de cinética >> enzimática y también para hacer regresiones lineales. He logrado >> encontrar los valores de "a", "b" y "c" usando el comando "lbfgs" (no >> me resulta muy práctico tener que dar valores iniciales, sólo por >> cuestiones de tiempo) y también con "lsquares" (que me ha parecido >> mucho mejor), pero me intriga el hecho de no poder hacerlo con este >> método de derivadas parciales. >> >> Agradezco de antemano la ayuda brindada. >> >> Saludos y buen inicio de semana. >> >> -- >> Argel. >> > > Hola Argel, > > La función 'solve' se utiliza para resolver ecuaciones y sistemas de > forma simbólica, lo que conlleva ciertas limitaciones prácticas y > teóricas. > > A simple vista no parece que tu sistema sea resoluble de forma > algebraica; incluso con tamaños muestrales mucho más pequeños te vas a > encontrar con polinomios de grado muy alto. Es el típico caso en el > que no hay más remedio que echar mano de procedimientos numéricos. > > Creo que tu mejor opción es utilizar las otras funciones a las que > haces referencia. > > Mario > > Hola Mario, muchas gracias por tu respuesta. ¿Entonces no es sólo un problema de falta de memoria disponible para wxMaxima?. Me provoca curiosidad porque comencé a usar estas instrucciones para encontrar mínimos cuadrados por derivadas parciales, debido a la necesidad de ajustar la función de Michaelis-Menten [V=Vmax*S/(Km+S)] a datos de velocidad de reacción contra concentración de sustrato (en este caso funcionó muy bien), y usando "lsquares_estimates" me salía un error como el siguiente: ----------------------------------------------------------------------------------------------------- Coeficientes_de_la_curva:float(lsquares_estimates(M,[S,V],V=(Vmax*S)/(S+Km),[Vmax,Km])) Division by 0 #0: lambda([x],ev(MSE,x))(x=[Vmax = 0,Km = -1/10]) #1: lsquares_estimates_exact(mse=('sum(('data[i,2]-'data[i,1]*Vmax/(Km+'data[i,1]))^2,i,1,10))/10,parameters=[Vmax,Km]) #2: lsquares_estimates(data=matrix([0.1,47.09],[0.5,130.3],[1,216.9],[1.5,263.1],[2,338.6],[3,311.5],[4,390.9],[5,428.8],[7,415....,variables=[S,V],equation=V = Vmax*S/(S+Km),parameters=[Vmax,Km],optional_args=[])(lsquares.mac line 245) -- an error. To debug this try debugmode(true); ----------------------------------------------------------------------------------------------------- ¿En este caso qué se podría hacer para evitar el problema de la división por cero? ¿Será un problema del algoritmo utilizado en este método numérico? De nuevo muchas gracias por tu ayuda. Saludos y que estés bien. -- Argel. ```

Showing results of 764

<< < 1 .. 24 25 26 27 28 .. 31 > >> (Page 26 of 31)