| UNIVERSIDAD AUTÓNOMA DE YUCATÁN FACULTAD DE MATEMÁTICAS LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN TRABAJO DE TESIS Selección de métodos para el ajuste de parámetros en modelos dinámicos de la producción bovina de engorda POR: P. DE LIC. EN CIENCIAS DE LA COMPUTACIÓN. ANTONIO ARTURO HERRERA CASTRO ASESORES: L.M. Salvador Medina Peralta M.C. Luis Vargas Villamil MÉRIDA, YUCATÁN, (FMAT) (FMVZ) Este trabajo fue realizado como parte del proyecto 33722-B de la convocatoria CONACYT 2000 “Desarrollo de un modelo Dinámico para la Simulación de la Producción Bovina de Carne en el Trópico” A Dios Gracias por todo tu amor y todos tus favores, sin ti nada soy. Mi Madre Lo mejor de mi vida estuvo a tu lado, te quiero mucho y te admiro, si estás orgullosa de mi ya soy la mitad feliz. Pino Gracias por estar con mi mamá en estos momentos Rosa Sabes que siempre te he querido y respetado, siempre serás mi segunda mamá. Mis hermanos Eduardo, Gabriel y Moisés Por su ayuda, aunque no siempre haya sido voluntaria, los quiero mucho. Esaú Mi mejor mejor mejor compañero. Aldo Por tu amistad, compañía y todos los paseos divertidos. A los grandes profesores que admiro y de quienes realmente aprendí Silvia, Rodolfo Gamboa, Luis Reyna, Lucy Torres, Irma Trejo, Eric Ávila, Celia, Juan Burgos, Alberto May, Madera, Raúl Duarte, Martín Chi, Julio Díaz. Todas las personas que me han dado un buen recuerdo AGRADECIMIENTOS Primero agradezco a Dios porque nunca me ha abandonado y nunca me ha decepcionado, por regalarme tantas cosas hermosas y nunca abandonarme aún cuando yo me olvidara de Él. Gracias a mi mamá, que fue por quien estoy ahora terminando mi carrera. Reconozco tu esfuerzo y tu lucha para sacarnos a todos adelante, los recuerdos que tengo de mi infancia contigo son para mi un tesoro invaluable, nunca hiciste algo mal para mi, eres la madre perfecta, cuando te encuentres frente a Dios en el cielo y te pregunte por alguna buena obra, dile que mire mi Vida contigo y lo agradecido que estoy contigo, que no tengo ningún reproche, ninguna inconformidad, absolutamente Todo te lo agradezco, que yo soy testigo de tu inmenso amor. Este trabajo te lo dedico a ti má, te AMO. Gracias a Rosa y a todos mis hermanos y hermanitos, abuelos y abuelas, tíos y tías y cuñados y cuñadas, etc, que convivieron conmigo y me brindaron su compañía en las buenas y en las malas, gracias a toda la familia Herrera Castro. Gracias, muchas gracias a Aldo mi súper compañero, gracias por todas las cosas tan importantes que hiciste por mi, por tu apoyo, tu amistad, tu cariño, gracias por siempre estar dispuesto a ayudarme a superar mis obstáculos, por tu consuelo cuando estaba deprimido y sobre todo por todo el valor que pusiste en mi. Y gracias a toda la familia Millán Espinosa. A mis dos súper asesores, Al inigualable Luis Vargas Villamil, a quien realmente admiro su preparación, sus conocimientos, su capacidad, su paciencia, etc, gracias por tu valiosa ayuda en este trabajo. Y al siempre atento Salvador Medina Peralta, amable y responsable, gracias por todo el súper apoyo que siempre me brindaste, gracias por tu disciplina que sin ella no hubiera podido lograrlo, y al mismo tiempo el ánimo que me brindaste que me ayudó a tener más ganas de salir adelante. Gracias a los dos, hicieron un excelente trabajo. Al Dr. Luis Rodríguez, L.M. Alejandro Lara, Dr. Héctor Dumaine, Dr. Felipe Vargas, Dr. D’Sainz, Dr. Óscar Soto y Dr. Juan Kú. A las grandes personas me regalaron su amistad con sinceridad: A Mari, Déborah, Judith, Aracelly, Omar, José Luis, Carlos y Arcángel. A todas las muchachas de las secretarías, control escolar, contabilidad, centro de cómputo y personal administrativo de la Facultad. Por su ayuda y buen trato siempre. A quienes de una u otra forma contribuyeron en la realización de este trabajo. ♀∅ℵ√ ÍNDICE página 1. Introducción --------------------------------------------------------------------------------------1 2. Objetivos ----------------------------------------------------------------------------------------18 3. Marco teórico -----------------------------------------------------------------------------------19 3.1. Modelo, pasos en la modelación matemática y ajuste de parámetros --------19 3.2. Mínimos cuadrados lineales y no-lineales ---------------------------------------27 3.3. Ajustes de modelos estáticos ------------------------------------------------------59 3.4. Ajustes de modelos empíricos -----------------------------------------------------75 3.5. Ajustes de modelos mecanísticos dinámicos ------------------------------------78 3.6. Ajustes de modelos de animal completo -----------------------------------------81 4. Resultados ---------------------------------------------------------------------------------------83 4.1. Ajuste de parámetros en un modelo estático ------------------------------------83 4.2. Ajuste de parámetros en un modelo empírico -----------------------------------90 4.3. Ajuste de parámetros en un modelo mecanístico dinámico ------------------103 5. Discusión --------------------------------------------------------------------------------------129 5.1. Ajuste de parámetros en un modelo estático -----------------------------------129 5.2. Ajuste de parámetros en un modelo empírico ---------------------------------130 5.3. Ajuste de parámetros en un modelo mecanístico dinámico ------------------131 6. Conclusiones y recomendaciones ----------------------------------------------------------135 7. Referencias ------------------------------------------------------------------------------------137 8. ANEXO ----------------------------------------------------------------------------------------142 1. INTRODUCCIÓN Este trabajo de tesis forma parte del proyecto (clave 33722-B) CONACYT 2000, denominado “Desarrollo de un Modelo Dinámico para la Simulación de la Producción Bovina de Carne en el Trópico”, con la participación a nivel UADY de las facultades de Matemáticas y Medicina Veterinaria, así como de la Universidad de California: Davis y el Instituto Mexicano del Petróleo (IMP). Los bovinos representan el 31 % de la producción de canal de productos pecuarios según se calcula de datos obtenidos de la producción pecuaria en los meses de EneroAbril de 2002. La toma de datos, análisis y recomendaciones para este sector requieren más que nunca de una metodología científica para su desarrollo. Debido a que las características de la población, la inversión, y los fenómenos biológicos son procesos de cambio es necesario estudiarlos como sistemas dinámicos (Vargas, 2002, datos sin publicar). Las soluciones tienen que estar dadas reflejando la dinámica situación agropecuaria, como reflejo de los cambios poblacionales, productivos, ambientales, económicos, sociales y políticos que se viven tanto nacional como internacionalmente (Vargas, 2002, datos sin publicar). Según datos de 1991 la relación entre pastizales y cabezas de ganado nos indicaban lo visto de manera empírica en nuestro país: los niveles bajos de remuneraciones en el campo. Se necesitan estrategias nutricionales dinámicas para aprovechar los recursos que modifican la producción como consecuencia de las variaciones existentes a lo largo del año (Vargas, 2002, datos sin publicar). Para que una estrategia sea adecuada necesita estar basada en el conocimiento cuantitativo de las tendencias ante situaciones posibles; es decir de predicciones, por ejemplo: el aumento del número de cabezas por hectárea mediante la mejora de la eficiencia productiva traería por consecuencia mayores recursos al sector debido sobre todo a un mayor número de cabezas enviadas al mercado y al aumento del interés de los inversionistas. Sin embargo una mala estrategia en este sentido podría ocasionar un aumento de la oferta de tal magnitud que ocasione que la eficiencia biológica no se relacione a la eficiencia económica. Los modelos matemáticos nos permiten predecir para tomar decisiones que mejoren el rendimiento animal (Vargas, 2002 datos sin publicar). Modelar la producción bovina de engorda es vital tanto para el investigador como para el productor. La optimización del campo ante la competencia del exterior, como consecuencia de la globalización, no puede ser lograda sin procedimientos que cuantifiquen las ganancias y que nos permitan calcular el grado de variación en la eficiencia al explorar las diferentes oportunidades que se presentan en la cambiante situación del campo, uno de estos procedimientos es la construcción de modelos matemáticos dinámicos. En México, existe la carencia de un sistema de alimentación para bovinos en pastoreo, y un sistema de alimentación podría mejorar la exactitud de los proyectos de inversión en el campo y por ende el interés de los inversionistas en éste. Por todo lo anterior es necesario conocer el alcance de los modelos aplicados actuales, que son las herramientas para el desarrollo de la producción extensiva. Una de las formas de modelar los procesos biológicos ha sido mediante la utilización de la cinética enzimática en modelos de rumiantes. La cinética enzimática es el análisis cuantitativo de cada uno de los factores que intervienen en el proceso de la reacción enzimática, a nivel bioquímico y la cual tiene su influencia en todos los procesos biológicos (Cornish-Bowden, 1988, Rawn, 1989). En la actualidad, la base de la mayoría de los modelos dinámicos de producción bovina descansa en las dos divisiones de la cinética enzimática: cinética de masas y en la cinética de Michaelis-Menten (MM), es por eso que dichas cinéticas toman una importancia considerable en el desarrollo de los trabajos enfocados a la producción bovina. Debido a sus suposiciones, la cinética de Michaelis-Menten ha sido más utilizado que la cinética de masas en procesos bioquímicos, de transporte, crecimiento bacteriano, crecimiento animal y modelos de energía (Dijkstra, 1992 y Baldwin, 1995). Por otro lado, en los diferentes modelos biológicos y modelos de animal-completo, como son los modelos de rumiantes y de crecimiento, estas cinéticas son representadas como sub-modelos que definen ciertas variables. Sistema y Proceso El modelador está interesado en entender como funciona un sistema particular, que causa los cambios en el sistema, y la sensibilidad del sistema a ciertos cambios., así como en predecir qué cambios podrían ocurrir y cuando. Según Giordano (1997) sistema es una colección de objetos combinados con alguna interacción o interdependencia regular. También, según Contreras (2002) es un conjunto de elementos que actúan coordinadamente para realizar un objetivo determinado o un conjunto de objetos o componentes relacionados entre si de una manera regulada para formar un todo organizado (Harrington y Tumay, 2000). Un proceso en general es la operación que conduce a un producto o resultado determinado (Contreras, 2002). específicamente, en el contexto biológico proceso es una serie de actividades lógicas, relacionadas y secuencialmente conectadas que ingresan un material, le añaden valor y producen una salida(Vargas, 2002, datos sin publicar). Un modelo es la representación matemática y esquemática de cualquier proceso y se utiliza para representar el comportamiento de un sistema y de esta manera permite predecir la respuesta del sistema. También, modelo matemático es la ecuación, o conjunto de ecuaciones, que representan el comportamiento de un sistema. Un modelo ayuda a comprender mejor el sistema y apoyar decisiones e implicaciones (France, 1984). Según France (1984), los modelos pueden clasificarse como: Modelos empíricos y modelos mecanísticos Un modelo empírico principalmente describe el sistema al mismo nivel biológico que se estudia, mientras que un modelo mecanístico intenta dar una descripción acompañada de un razonamiento. Siempre es posible encontrar un modelo empírico que proporcione un mejor ajuste a un conjunto de datos dados que un modelo mecanístico. Esto es debido a que el modelo empírico contiene muy pocas restricciones, mientras que el modelo mecanístico puede estar fuertemente condicionado por sus suposiciones, aún si éste contiene parámetros más ajustables. Modelos determinísticos y modelos estocásticos Un modelo determinístico es el que realiza predicciones definidas por cantidades (tales como el peso del animal, la producción de la cosecha o la precipitación), sin ninguna variación o distribución de probabilidad asociada. Un modelo estocástico en cambio, contiene además algunos elementos aleatorios o distribuciones de probabilidades dentro del modelo. Modelos estáticos y modelos dinámicos Un modelo estático es aquél que no incluye al tiempo como variable. Cualquier componente del comportamiento del sistema que sea específicamente dependiente del tiempo es ignorado. Dado que todos los aspectos del mundo cambian a una razón u otra, un modelo estático es siempre una aproximación (a una realidad continua), aunque puede llegar a ser una aproximación muy buena. Por otro lado, en un modelo dinámico es determinante la existencia de un cambio con el tiempo (Adler, 1998). Parámetros y constantes Los parámetros y constantes son cantidades que aparecen en las ecuaciones de un modelo que no varían con el tiempo. Se acostumbra describir como constantes a las cantidades que tienen determinados valores confiables y precisos, los cuales permanecen iguales cuando varían las condiciones experimentales o por ejemplo, cuando el modelo se aplica a diferentes partes de un organismo. El término parámetro en cambio, es usualmente aplicado a cantidades cuyos valores son menos ciertos pero que se mantienen constantes durante toda la corrida del modelo (France, 1984; Giordano, 1997). Los valores de los parámetros a menudo varían con las condiciones experimentales, la manera en que los organismos son preparados (o cultivados), el genotipo u otros factores. Algunos o todos los parámetros pueden ser aproximadamente conocidos por medio del papel que desempeña en el nivel en el cual las suposiciones del modelo son hechas (France, 1984). La estimación es el procedimiento estadístico que, a partir de los datos y la especificación de un formato de modelo, proporciona estimaciones para los valores constantes desconocidos (parámetros). Algunas veces, ciertos parámetros son particularmente pobremente conocidos, es decir, los valores estimados no concuerdan con la realidad del sistema por medio de los datos reales observados, y entonces se puede desear corregir las salidas del modelo a los datos experimentales por medio del ajuste de los valores estimados de los parámetros y observando la bondad del ajuste, a este proceso se le conoce como calibración del modelo (France, 1984). Ajuste de parámetros según France (1984), consiste en ajustar sus valores y condiciones iniciales de tal manera que el modelo se comporte mas semejante al mundo real, pero conservando la misma estructura y ecuaciones básicas. En cierta manera, el ajuste es la medida que expresa hasta qué punto la solución explica los datos originales. La bondad del ajuste es la medida de lo bien que se ajusta el modelo a los datos. Se basa en los cuadrados de las diferencias entre las probabilidades observadas y las pronosticadas. Un valor pequeño del nivel crítico del estadístico de bondad de ajuste indica que dicho ajuste no es bueno (http://www.uv.es/~baeza/optimi.html, 2002). Por otro lado, la predicción es la utilización de un modelo estimado para predecir valores futuros de una serie, y el pronosticado, por lo tanto, es el valor que toma la variable dependiente calculado a partir del modelo (Giordano, 1997). Existen otras situaciones en el modelaje matemático que requieren que determinemos la mejor o la óptima solución. El problema puede ser el de determinar el máximo beneficio que una firma puede obtener o el de encontrar la suma mínima de las desviaciones cuadradas entre un modelo ajustado y un conjunto de datos puntuales. El proceso de encontrar la mejor solución a tales problemas se conoce como optimización, que es el procedimiento no jerárquico de aglomeración que permite reasignar objetos a un conglomerado distinto del original sobre la base de varios criterios globales de optimización (Giordano, 1997) . Ajustar una curva a un conjunto de datos puede decirse que consiste en expresar la relación funcional por medio de una ecuación matemática. Generalmente se trata de buscar una expresión matemática única que represente los valores de forma tan exactamente como sea posible. Este constituye un problema difícil porque, entre otras cosas, ajustar un número infinito de ecuaciones matemáticas diferentes a un conjunto finito de observaciones es teóricamente imposible. Por lo tanto, deben buscarse algunos otros criterios. Los dos más importantes son los de continuidad y simplicidad (Montgomery y Peck 1992, http://www.fortunecity.com/campus/lawns/380/curvas.htm, 2002). La continuidad se refiere a la creencia de que solamente hay una curva suavizada que debe ajustarse mediante los puntos obtenidos experimentalmente. Esta suposición obedece a dos razones: a) se requiere una ecuación única para ajustarse a los datos, y b) la variación observada se debe, en parte, a la existencia de errores de observación y muestreo. Es decir, hay cierta cantidad de error desconocido, asociado con cada medición, y la curva continúa suavizada que obtenemos se diseña para que se aproxime al resultado teórico en condiciones ideales y mediciones muy precisas. Tal curva teórica es la comúnmente llamada curva de mejor ajuste. Esta expresión se usa en sentido general y, por lo tanto, puede aplicarse tanto a líneas como a curvas. En cuanto a la simplicidad, algunas ecuaciones son matemáticamente más simples que otras, y es conveniente seleccionar la más simple y la que se acomode mejor a los datos. Para que sirva de referencia, a continuación se anotan varios tipos de ecuaciones comunes. Todas las letras de X y Y representan constantes. Las variables X a menudo se conocen como variables independientes (VI) y las Y como variables dependientes (VD). Y = a + bX Línea recta. Y = aX b Curva potencial Y = ab X Curva exponencial Y = a 0 + a1 X + a 2 X 2 + a 3 X 3 + ... + + a n X n Curva polinomial de grado n Y = a + b(log X ) Curva logarítmica Cuando el modelo ha sido cuidadosamente probado, y se encuentra libre de errores matemáticos, computacionales y numéricos, entonces sus predicciones reflejan verdaderamente las consecuencias de las suposiciones (biológicas, agriculturales, empíricas) en las cuales se basa. El modelo puede ahora ser usado para cualquier propósito para el que fuera planeado. Análisis de sensibilidad Un aspecto adicional de un modelo matemático es su resistencia a los errores en los casos cuando no usamos exactamente los valores correctos de los parámetros. Muy a menudo, no sabemos exactamente cual es el valor de un parámetro, entonces, mucho menos conocemos cuanto estamos alejados de este valor real desconocido; suponiendo que los valores estuvieran a una distancia muy pequeña de los valores reales (desviación estándar pequeña, suma de cuadrados de los residuales pequeña, etc.), no podemos suponer que por este hecho, las salidas estén en la misma proporción de cerca de las salidas reales; de igual manera, suponiendo que los valores ajustados de los parámetros están relativamente lejos de los valores reales, tampoco podemos suponer que las salidas del modelo estarán igual de lejos; y todavía teniendo dos ajustes distintos y suponiendo que los valores de uno estén mucho más cerca de los valores reales que el otro, no se puede implicar que las predicciones del primer ajuste estarán mucho mas cerca que las del segundo ajuste, esto se debe a la sensibilidad en el modelo; en muchas ocasiones cuando se tiene una solución y se desea saber que ocurre alrededor de esta solución y que ocurre con las salidas con estos valores, se realiza un análisis de sensibilidad, se prueban valores distintos de los obtenidos, es decir, se hacen variar los valores de la solución en el modelo para observar de que manera varían las salidas, y si lo hacen demasiado o solo en una cantidad insignificante según los modeladores. Las salidas del modelo son totalmente dependientes de los valores de los parámetros, pero en ocasiones, las salidas no se ven afectadas significativamente cuando se hacen variar los valores de los parámetros, se dice que el modelo no es sensible y podría decirse que existen varias soluciones del modelo, ya que al variar los valores ajustados, se obtiene un nuevo vector de valores que realizarán prácticamente la misma predicción que la primera solución, la cual supuestamente era la que mejor se ha podido encontrar. Por el contrario, cuando el modelo es sensible, si se hacen variar los valores de los parámetros, las salidas del modelo sufren una variación considerable; cuando se tiene el ajuste, el que conozcamos si un modelo es sensible o no, nos permite además tener una idea sobre la unicidad del modelo, es decir, que tenga solución única. En el ajuste de curvas, lo que se pretende es acercarse todo lo posible a cada uno de los datos, que el error sea mínimo; en estadística, se desean obtener medidas de tendencia central y de desviación, para estudiar como se comportan los datos de la muestra y concluir que de manera semejante se comportarán todos los elementos de la población, dado que de esta se obtuvo la muestra de manera representativa. Además que la ecuación que se escoja sería de acuerdo a la forma de la distribución de los datos, siendo así un modelo empírico y perdiéndose cierta precisión, es decir, las predicciones del modelo estarían probablemente lejanas hasta cierto punto pero aceptables de los datos reales; ya que los modelos empíricos están fuertemente guiados por los datos y se busca capturar la tendencia de los datos con el fin de predecir mas que explicar . Entonces será conveniente que el modelo no sea sensible, para que se pueda decir que los valores de los parámetros pueden tener cierto error sin que se afecten las predicciones. Según Brown (1994), si el error que obtenemos en la estimación de un parámetro afecta demasiado las salidas del modelo, entonces el modelo es de escaso valor práctico, esto puede ser verificado por matemáticas o por simulación. Un modelo matemático típicamente aproxima un problema bajo estudio. Por ejemplo, los coeficientes en la función objetivo de un programa lineal pueden ser solamente valores estimados. O la cantidad de recursos que restringen la producción disponible para la administración puede variar, dependiendo del beneficio remunerado por unidad de recurso invertido. de esta manera la administración desearía saber si el beneficio adicional obtenido, justifica el costo de unidades de recurso adicionales invertidas. Si así es, sobre que rango de valores para los recursos es válido el análisis? Por lo tanto, además de resolver un programa lineal desearíamos saber que tan sensitiva es la solución óptima a cambios en los coeficientes de la función objetivo y en la cantidad de recursos disponibles (Giordano, 1997). El método es muy simple: ajustar el parámetro en cuestión ligeramente y medir si las salidas en la simulación del modelo cambia solo un poco. Si cambia muy poco, podemos decir que el modelo no es sensible y sabemos que el margen de incertidumbre que rodea al parámetro no está materialmente afectando los resultados; si este no es el caso, el modelo se convierte en un modelo sensible y desde el punto de vista matemático, puede necesitar ser reconsiderado (France, 1984, Giordano, 1997). El análisis de sensibilidad por otra parte puede ser una herramienta para proporcionar una medida cuantitativa de la unicidad del modelo importante en la modelación de los procesos biológicos, ya que se trata de encontrar, además del ajuste de la curva de datos, sobre todo el ajuste de los parámetros, ya que estos valores serán los que se utilicen como entradas o como constantes conocidas en otros procesos biológicos, y estos valores son los que realmente importan encontrar, ya que por mas complejo, mecanístico o completo que esté un modelo, de nada servirá si no nos proporciona la información que deseamos obtener. Los modelos matemáticos son una representación de la realidad, éstos son desarrollados con una finalidad específica para ayudarnos a comprender las relaciones existentes entre los datos y así mejorar nuestro conocimiento. Su objetivo es llegar a conclusiones útiles, como es el mejoramiento de la situación del campo en este trabajo, y esto se puede lograr a través del análisis de las relaciones en el rumen y el animal. La modelación mecanística, como toda ciencia se basa en el método científico para lograr sus objetivos. En este caso para que la metodología científica sea completa es necesario que nos lleve de los datos obtenidos en el campo o laboratorio a modelos que sean capaces, no solo de modelar el comportamiento animal, sino de describirlos con un grado aceptable de precisión y de sensibilidad. Cuando la investigación de los procesos es importante, como sucede en este trabajo, la sensibilidad del modelo se vuelve el objetivo del proceso del modelado; ya que tanto la sensibilidad como la precisión tienen que obtenerse a través de los procesos que dan lugar a dicho comportamiento. una precisión alta obtenida con un modelo para un sistema animal en donde se describen las relaciones biológicas solamente es útil, desde el punto de vista científico, si tenemos cierto grado de certeza de que el modelo explica el comportamiento del sistema en base a sus hipótesis incluidas dentro del modelo, entonces, es de mayor prioridad obtener valores precisos, los mas cercanos a la realidad, que ajustar la curva sin restar importancia a este (Vargas, 2002, datos sin publicar) Si al afectar el valor del parámetro, las salidas del modelo se mueven significantemente, esto puede indicar que nuestra solución es única, y por lo tanto, que los valores que obtuvimos de los parámetros son hasta cierto punto únicos, de lo contrario, si al mover los valores de los parámetros, las salidas no sufren una alteración significante, se entendería que existen múltiples soluciones del problema y entonces nuestro modelo se convierte en un montón de ecuaciones y suposiciones que no nos representa lo que nos interesa, mientras mas única sea la solución, mas sentiremos que todos estamos hablando de una misma cosa. El problema de la unicidad de los modelos es más importante en este tipo de proyectos, si a un modelo se le detecta una multiplicidad de soluciones, se puede pensar en reconsiderar dicho modelo (Vargas, 2002, datos sin publicar). Realizar un análisis de sensibilidad apropiado es una tarea que se enfoca mas para modelos que son sumamente complejos, ya que se deben ajustar los parámetros individualmente, de dos en dos, de tres en tres, etc., ya sea porque podría ser que el parámetro llega a ser crítico solamente en un conjunto limitado de valores de los otros parámetros (France, 1984, Giordano, 1997). La importancia del ajuste de parámetros radica en que en el transcurso del proceso del modelado representa la unión entre los datos y el modelo (Richter, 1990) y apoyan la formación de los modelos fuera del mundo real, es decir, los modelos están construidos en base a hipótesis hechas observando el mundo real, pero como se construyen fuera y por que están fuera de este, se puede esperar que tal vez reproduzca el sistema de manera parecida, pero igualmente pudiera reproducirla de una manera muy distinta, y con esta incertidumbre y sin la presencia del ajuste de parámetros no se podría dar validez a los modelos, ni relacionarlos con el sistema real. Los parámetros apoyan a la formación de los modelos, los justifican y unen las estructuras y ecuaciones con los elementos del mundo real puesto que sus valores se obtienen del sistema real, y por esto, logra que las predicciones del modelo siempre se acerquen al valor del sistema con cierta precisión, y si acaso no logran una predicción adecuada, entonces se decide modificar el modelo analizando de nuevo el sistema y observando que es lo que puede estar pasando que no se ha tenido en cuenta, y si es necesario introducir alguna nueva variable o algún nuevo parámetro. Nunca se dice que la modelación no funciona porque está fuera del mundo real y esto es gracias al ajuste de parámetros. El ajuste de parámetros hace que construcciones de estructuras inexistentes, relacionados solamente en suposiciones de lo que se modela, se conviertan en mecanismos que describen el sistema y que sean útiles para predecir el comportamiento de los datos reales del sistema, porque además de todo siempre se puede comprobar, siempre que el modelo sea adecuado al sistema, las predicciones tenderán a los valores reales gracias al ajuste de parámetros. Por otro lado, la elección de un método para el ajuste de parámetros, tiene su importancia en el hecho de que es fundamental contar con un modelo acorde a la situación (o a los datos experimentales), y en este caso a la predicción de la producción bovina de carne en el trópico. Para lograr lo anterior, es fundamental la selección de un método para el ajuste de parámetros que nos permita, a través de un modelo matemático enfocado a la producción, simular los diferentes procesos que modifican el aumento de peso. Debido a la importancia de todo lo anterior y a la necesidad de apoyar los proyectos de investigación en el área de producción bovina de carne, en esta tesis se estudiaran diferentes modelos y sub-modelos utilizados en la simulación de la producción bovina. El objetivo es estudiar los conceptos sobre ajustes y recomendar un método para establecer la metodología. De esta manera se tendrá la herramienta que no solo permitirá un mayor alcance en cuanto a las deducciones e implicaciones en los experimentos sino que facilitará otro vínculo fundamental en el área biológica y en especial en la nutrición animal en cuanto a la relación de los trabajos experimentales con el campo. La simulación del proceso de producción permitirá un mejor conocimiento del aprovechamiento de los recursos, y esto a su vez, conducirá a la optimización del campo con procedimientos que cuantifiquen las ganancias y permitan el cálculo del grado de la variación en la eficiencia al explorar las diferentes oportunidades. Para todo lo anterior es necesario conocer mas sobre los ajustes de parámetros, pues como se explicó antes, los métodos de ajuste es el punto clave para que nuestros modelos funcionen, es decir, son los valores ajustados de los parámetros los que logran que el modelo proporcione una adecuada predicción. Todavía existen mucho campo sin estudiar sobre los ajustes, mucho por conocer y nuevas herramientas por descubrir para facilitar los ajustes, solucionar los problemas con que se encuentran los modeladores para ajustar parámetros en un modelo complejo. Este trabajo puede ayudar a conocer mas sobre ajustes, plantea problemas encontrados comúnmente en la modelación y las situaciones típicas encontradas en las modelaciones de los sistemas, las herramientas y los métodos para combatirlos. 2. OBJETIVOS 2.1. Objetivo general Selección de un método matemático para el ajuste de parámetros en un modelo dinámico para la simulación de la producción bovina de engorda. 2.2. Objetivos particulares 2.2.1. Selección de métodos para el ajuste de un modelo estático. 2.2.2. Selección de métodos para el ajuste de un modelo empírico. 2.2.3. Selección de métodos para el ajuste de un modelo mecanístico dinámico. 3. MARCO TEÓRICO 3.1. MODELO, PASOS EN LA MODELACIÓN MATEMÁTICA Y AJUSTE DE PARÁMETROS Modelación Matemática Muchas situaciones del mundo real pueden presentar problemas que requieran soluciones y decisiones. Algunos de estos problemas tienen un aspecto matemático relativamente simple, involucrando una matemática elemental, como por ejemplo: • El tiempo necesario para recorrer una distancia de 40 Km, manteniendo la velocidad del vehículo de 80 Km por hora; • El interés que cobra una institución financiera por un determinado préstamo; • El área de un terreno de forma rectangular. Otros problemas, en una determinada área del conocimiento, necesitan un análisis más preciso de las variables involucradas, como: • La mejor manera de reducir el “retrabajo” en una fábrica. Es decir, “disminuir el trabajo que excede de lo necesario mediante la combinación adecuada de valores de parámetros”; • La cantidad permitida y el período apropiado para la caza de un animal predador sin que esto interfiera en el ecosistema. Cualquiera que sea el caso, la solución del problema requiere una formulación matemática detallada (Salett, 1996). Un conjunto de símbolos y relaciones matemáticas que traducen, de alguna manera, un fenómeno en cuestión ó problema de situación real, lo denominamos Modelo Matemático. La definición de modelo matemático según France (1984): “es una ecuación, o conjunto de ecuaciones, el cual representa el comportamiento de un sistema”. En la ciencia, la noción de modelo es fundamental para la construcción y expresión del conocimiento. En especial, la matemática permite la elaboración de modelos que posibilitan una mejor comprensión, simulación y previsión del fenómeno estudiado. Un modelo puede ser formulado en términos familiares, tales como: expresiones numéricas ó fórmulas, diagramas, gráficos ó representaciones geométricas, programas computacionales, etcétera. El Modelaje Matemático es el proceso involucrado con la obtención de un modelo. Para elaborar un modelo, además del conocimiento profundo de matemáticas, el modelador debe tener una dosis significativa de intuición-creatividad para interpretar el contexto, discernir qué contenido matemático se adapta mejor y sentido lúdico para jugar con las variables involucradas (France 1984; Salett, 1996). Pasos de la modelación matemática (Giordano, 1997) 1. A través de la observación, identificar los factores primarios involucrados en el comportamiento del mundo real, posiblemente haciendo simplificaciones. 2. Conjeturar tentativas relaciones entre los factores. 3. Aplicar análisis matemáticos al modelo resultante. 4. Interpretar matemáticamente las conclusiones en términos del problema del mundo real. Figura 1. Proceso del modelado como un sistema cerrado. La construcción del modelo tiene dos fines básicos: En primer lugar reproducir el comportamiento del sistema y, en segundo, poder simular el comportamiento que el sistema tendría frente a diversas hipótesis que pueden establecerse (cambios de los parámetros que lo definen). Los elementos estructurales básicos de un modelo son las variables o magnitudes cuyo valor depende de una variable independiente, como por ejemplo el tiempo, los parámetros o constantes y las funciones o relaciones funcionales de las variables entre sí y de éstas con los parámetros (Brown, 1994). Para la construcción de un modelo se necesita tener un conocimiento detallado tanto de cada una de las partes individuales que forman el sistema como de las interacciones existentes entre ellas, aproximándose tanto más el modelo a la realidad cuanto más detallado sea dicho conocimiento. Sin embargo, en muchos casos, para que un modelo sea manejable es necesario renunciar a algunos elementos que componen el sistema y/o a algunas de las interrelaciones entre ellos (France, 1984; Giordano, 1997). Si los elementos que se han conservado y las interrelaciones que se han establecido son correctas y abarcan los aspectos más relevantes del sistema, el modelo será útil. Por el contrario, si se han identificado incorrectamente los elementos, o han sido mal definidos, o si se han olvidado algunas de las relaciones importantes, el modelo estará deformado y será inútil. Así pues, puede decirse que la clave para la construcción de un modelo radica, esencialmente, en identificar de manera adecuada y sin ambigüedades los elementos cruciales, definirlos de forma precisa y operativa y establecer las principales relaciones entre ellos (Giordano, 1997). Ajuste de Parámetros Los “parámetros de un modelo” son aquellos valores desconocidos que relacionan dicho modelo (abstracto) con la realidad. Pueden tomar sus valores numéricos (estimados) de un rango amplio de números reales. El valor que le proporcionemos, aproximado al valor real desconocido, dependerá de las circunstancias particulares del sistema y del método de ajuste que utilicemos. Los parámetros son a menudo, vistos como “constantes que pueden cambiar”. En el mundo real, los parámetros son constantes; no pueden conocerse con precisión su valor real; es por eso que, en este sentido, son cambiantes (Brown, 1994). La estimación de parámetros es un sinónimo de los procedimientos estadísticos y numéricos, utilizados para obtener valores numéricos razonables de los parámetros en los modelos; valores basados en los datos observados (France, 1984; Richter, 1990). El método clásico es la técnica de Regresión Lineal debido a su fácil manejo en el que los estimadores son calculados con una fórmula simple. La Regresión Lineal ha sido establecida, desde hace mucho, como una herramienta conveniente para el análisis biológico de los datos. Sin embargo, el amplio uso de la Regresión Lineal ha conducido a un sobre-énfasis de las relaciones lineales. En la naturaleza, la mayoría de las relaciones son no lineales y la linearización no es sino una aproximación a ella, con un limitado alcance (Richter, 1990). La regresión constituye un caso particular de un tipo de problema más general, donde se buscan los valores de los parámetros que dan lugar a las mejores respuestas, y que se denomina optimización. El término optimización se aplica a aquellos casos en que se maximiza o minimiza la función objetivo, mientras que se reserva el término regresión para aquellos casos en los que la función objetivo mide la bondad del ajuste a una segunda función. En un problema de regresión se requiere siempre la definición matemática de la función a ajustar; en un problema de optimización no es necesario este conocimiento, aunque sí es conveniente para hacer más eficiente la resolución (http://www.uv.es/~baeza/optimi.html). Los problemas de optimización, por comodidad, se suelen enfocar sólo hacia búsquedas de mínimos. Cualquier máximo de la función modelo se puede considerar siempre como el opuesto de un mínimo, lo que permite la búsqueda de máximos con los mismos algoritmos que para mínimos: simplemente basta con cambiar el signo de la función objetivo. En los problemas de optimización es frecuente encontrar funciones que contengan varios máximos y mínimos. Se considera óptimo al más favorable de los mínimos relativos (o máximos, si se maximiza la respuesta), de entre todos los encontrados en el espacio de los parámetros. En general, el más favorable suele ser el más profundo de todos los mínimos o el máximo más elevado, aunque en algunas ocasiones hay que tener en cuenta otros factores que consideren la realidad experimental antes de su elección (http://www.uv.es/~baeza/optimi.html). El ajuste de parámetros proporciona la conexión entre los datos y el modelo. Sin embargo, la aplicación exitosa de estos métodos demanda un diseño experimental apropiado. La estructura de los datos y la estructura del modelo deben ajustarse juntos. Esto solamente puede ser logrado por medio de una cooperación muy estrecha entre los experimentadores y los analistas de los datos ó modeladores, respectivamente. Aún si el proceso es completamente determinístico, las mediciones están sujetas a errores. En este punto, una parte estocástica ha de ser incluida en el modelo (Richter, 1990 y Baldwin 1995). El Ajuste de parámetros según France (1984), consiste en ajustar sus valores y condiciones iniciales de tal manera que el modelo se comporte mas semejante al mundo real, pero conservando la misma estructura y ecuaciones básicas. En cierta manera, el ajuste es la medida que expresa hasta qué punto la solución explica los datos originales. La cinética enzimática El forraje es el principal recurso que tienen los rumiantes para su desarrollo, estos animales transforman los forrajes mediante la fermentación bacteriana a productos aprovechables por el animal como son los ácidos grasos volátiles (AGVs) y la biomasa (M). El consumo y la digestión inician dicha transformación y los procesos biológicos involucrados dentro del rumen son los que determinan esta dinámica (Vargas, 2002, datos sin publicar). Por tanto, para considerar un modelo dinámico para el desarrollo del animal, tienen que considerarse los procesos biológicos, y particularmente los procesos microbianos. Una de las formas de modelar los procesos biológicos ha sido mediante la utilización de la cinética enzimática en modelos de rumiantes. La cinética enzimática es el análisis cuantitativo de cada uno de los factores que intervienen en el proceso de la reacción enzimática, a nivel bioquímico y la cual tiene su influencia en todos los procesos biológicos (Cornish-Bowden, 1988, Rawn, 1989). En la actualidad, la base de la mayoría de los modelos dinámicos de producción bovina descansa en las dos divisiones de la cinética enzimática: cinética de masas y en la cinética de Michaelis-Menten (MM), es por eso que estas cinéticas toman una importancia considerable en el desarrollo de los trabajos enfocados a la producción bovina (Dijkstra, 1992 y Baldwin, 1995). Por otro lado, en los diferentes modelos biológicos y modelos de animal-completo, como son los modelos de rumiantes y de crecimiento, estas cinéticas son representadas como sub-modelos que definen ciertas variables. Los estudios sistemáticos del efecto de la concentración de sustrato sobre la actividad enzimática comenzaron a realizarse a finales del siglo XIX. En 1882 se introdujo el concepto del complejo enzima-sustrato (Rawn, 1989). Idea que resultó crítica para el desarrollo de la cinética enzimática. En 1913, Michaelis y Menten desarrollaron la teoría sobre la formación de un complejo enzima-sustrato (esencial para la catálisis enzimática) y propusieron una ecuación para la velocidad enzimática. Esta teoría, al enfocarse a nuestras propias hipótesis, logra ser una herramienta muy importante para el desarrollo del proyecto en lo que respecta al ajuste de los parámetros (Rawn, 1989). Entre los estudios que se han hecho sobre la estimación de parámetros para modelos estáticos se encuentran los trabajos de Michaelis-Menten y en los últimos años para modelos dinámicos están los trabajos de Michael (1980), Elliot (2000), Mander (1999), Jiang (2000), Mac William (1998). Por otro lado, existen también modelos sobre aspectos biológicos, los cuales también pueden ser analizados y modificados adecuándolos a nuestras condiciones y necesidades sobre el estudio de ajustes de parámetros. 3.2. MÍNIMOS CUADRADOS LINEALES Y NO-LINEALES Es más fácil ilustrar el método de estimación de parámetros, primero que nada, usando el ejemplo del ajuste de una línea recta, antes de introducir cualquier principio general. El principio de mínimos cuadrados El método de mínimos fue descubierta independientemente por los matemáticos Gauss y Legendre hace cerca de 200 años y se basa en el ajuste de la línea recta a una colección de datos. Hoy es ampliamente usado por la Teoría de Ajuste de Modelos (Montgomery y Peck 1992). La ecuación de la línea recta es de la forma y = αx + β + ε donde los parámetros desconocidos son α, la pendiente de la recta (única en el sentido de que cualquier par de puntos de la recta determina el mismo cociente de α) y β, la ordenada al origen o intercepto (ordenada del punto de intersección de la recta con el eje y). ε es el error o imprecisión de la predicción. Cuando se propone un modelo (expresión) para ciertos datos experimentales, puede suceder que el más adecuado sea una línea recta o bien que se pueda transformar, mediante alguna operación, en recta; en tal caso se dice que el modelo es intrínsecamente lineal y sus parámetros se buscan usando mínimos cuadrados sobre una recta (Gutiérrez, 1998). El razonamiento general, discutido usando el ejemplo del modelo de la línea recta, se tomará de Montgomery y Peck 1992, Brown, 1994 y Giordano 1997 y se explica brevemente como sigue. Cuando ajustamos un modelo, intentamos descomponer cada valor y de los datos (cada “y observada”) en dos partes, una “y ajustada” reflejando la línea recta principal, y un “residual” representando las salidas aleatorias (variaciones) de ella: y observada = y ajustada + residual Los valores ajustados deben acercarse a la línea o curva, y los residuales son obtenidos de la diferencia entre los valores ajustados y los observados. En cualquier procedimiento de modelación usualmente deseamos representar lo más que sea posible la variación total o conjunta de las variables y, como debida a la parte determinística. Por lo tanto, queremos ajustar los valores de tal manera que los residuales sean lo más pequeños posibles en promedio. El objetivo no será minimizar el residual de todos y cada una de las observaciones por separado, o para alguna observación particular, sino siempre en promedio. Por lo tanto, se necesita encontrar alguna manera de sumar los residuales de una manera representativa. Tomando la suma aritmética simple: (y1 – y1 ajustado) + (y2 – y2 ajustado) + . . . +(yn – yn ajustado) no funcionaría porque residuales negativos y positivos podrían cancelarse uno con otro, y esta no sería representativa de los errores de ajuste. Podríamos tomar la desviación absoluta de la diferencia entre los datos y la línea ajustada. | y1 – y1 ajustado | + | y2 – y2 ajustado | + . . . +| yn – yn ajustado | pero esto, teóricamente no es conveniente, ya que no resulta en una fórmula simple para estimar, y por lo tanto, no es fácil de implementar en un programa de computadora. El método más útil es la suma de los cuadrados de las diferencias (y1 – y1 ajustado)2 + (y2 – y2 ajustado)2 + . . . +(yn – yn ajustado)2 Éste es conocido como el criterio de los mínimos cuadrados. El criterio de los mínimos cuadrados para estimar parámetros Las estimaciones de los parámetros de un modelo por mínimos cuadrados, son obtenidas de la minimización de la suma de las desviaciones cuadradas de las observaciones y la línea o curva ajustada. Es decir, minimizando: n ( S = ∑ y i observado − y i ajustado i =1 2 ) = ∑ (y n i − α − βxi ) 2 i =1 donde: S es la suma de los cuadrados de las diferencias entre los datos observados y los ajustados. y i es el i-ésimo dato real. ŷ i es el i-ésimo dato ajustado. (1) α y β son los parámetros que se van a ajustar. n es el número de observaciones. Las condiciones necesarias para esto, son que las derivadas parciales de S, respecto a α y β, sean iguales a cero. Al derivar S, e igualar a cero para hallar los mínimos, se determinan los valores de los parámetros α (ordenada al origen) y β (pendiente) de la recta ajustada no paralela al eje Y. Estimador de la ordenada al origen: _ _ αˆ = y − βˆ x _ (2) _ Donde x e y son los promedios de los valores x e y. Estimador de la pendiente: n βˆ = _ _ ∑ ( xi − x)( y i − y) i =1 n ∑ (x _ i − x) 2 i =1 o bien, según Montgomery y Peck 1992: (3) n αˆ = n n i =1 i =1 i =1 i =1 n∑ x i2 − ∑ x i2 i =1 i =1 n n βˆ = n ∑ xi2 ∑ y i − ∑ xi ∑ xi y i n n 2 n n∑ x i y i − ∑ xi ∑ y i i =1 i =1 i =1 n∑ x i2 − ∑ x i2 i =1 i =1 n (4) n 2 (5) La primera expresión de β̂ muestra que la pendiente estimada es una función que depende solamente de las desviaciones de las observaciones de sus medias. Las medias de x e y no entran de otra manera en la estimación de β aparte de esa, como podría haberse esperado (Brown, 1994). El método de los mínimos cuadrados es el más simple y el más usado en muchos modelos lineales en los parámetros, estos son los modelos cuyas ecuaciones contienen a los parámetros únicamente en forma multiplicativa o aditiva. Es un método clásico de ajuste de parámetros típicamente visto en modelos estáticos, y muy utilizado en la regresión. Si un modelo es una ecuación de una recta o puede transformarse en una, puede fácilmente ajustar sus parámetros por este método (Draper, 1981, Montgomery y Peck, 1992). Un modelo es lineal porque los coeficientes desconocidos aparecen en forma lineal, es decir, como constantes aditivas o multiplicativas (de los valores) de las variables predictorias (x). El término lineal se aplica a los coeficientes de regresión desconocidos, no a la respuesta (variable dependiente) ni a las variables predictorias (variables independientes). La forma general de un modelo lineal en los parámetros es la siguiente: y = β 0 + β 1 x1 + β 2 x 2 + ... + β k x k + ε donde se pueden apreciar los parámetros (β0, β1, β2, . . . , βk) en forma multiplicativa o aditiva exclusivamente (Montgomery y Peck, 1992) Si el modelo que se propone no es intrínsecamente lineal, es decir, que no es lineal en los parámetros ni se puede llevar a ella, entonces el ajuste para obtener los parámetros es no lineal (Draper, 1981). Un modelo es no-lineal en los parámetros cuando uno o más de los coeficientes de regresión (parámetros) no aparecen como constantes aditivas o multiplicativas de las variables independientes. Ejemplos: Y = β 0 + β 1 x1 β2 +ε Y = β 0 + β 1 ( x − β 3 ) −1 + β 2 ( x − β 3 ) −2 + ε ln Y = β 0 + β 1 x1 + β 2 Sen x2 β4 + β 3Cos x2 β4 +εj Usualmente, los parámetros desconocidos β i son los que en estadística se denominan coeficientes de regresión. La estimación es el proceso de ajustar un modelo matemático a un conjunto de información experimental para determinar parámetros desconocidos en el modelo. Los parámetros son elegidos de tal manera que las salidas del modelo sean los más coincidentes en algún sentido con los datos observados (Montgomery y Peck, 1992). Habiendo encontrado valores precisos de los parámetros estimados, los investigadores pueden diferenciar entre situaciones similares superficialmente, o pueden realizar predicciones precisas del comportamiento del modelo estudiado (Montgomery y Peck, 1992). Esta idea del mejor ajuste es un poco como los observadores de una playa decidiendo si un barco distante en el horizonte es un lujoso barco de pasajeros o un buque de carga, el color del casco del barco, la presencia o ausencia de mástil y otras características del barco observado son comparadas con las de los tipos conocidos de naves hasta que se encuentra la comparación más acertada. El proceso de estimación es a menudo no lineal porque los datos observados no varían en proporción directa a los parámetros en cuestión. El problema de Marquardt Donald Marquardt fue motivado a desarrollar su técnica de estimación no lineal debido a los problemas que encontró en su propio modelo. Uno de esos problemas involucraba ajustar el modelo de Van Laer de la presión del vapor por la temperatura para determinar el comportamiento de los sistemas a temperaturas intermedias para aquellos en los cuales la información fuese recopilada (Davis, 1993). No-linealidad inevitable Eventualmente, lo que vino a ser conocido como el método de Levenberg-Marquardt para estimación no-lineal fue encontrado útil, en palabras del mismo Marquardt, en "cientos y cientos de aplicaciones debido a que era una técnica que funcionaba en la mayoría de los problemas de no-linealidad la mayoría de las veces. Ésta confiabilidad práctica del método – su habilidad de converger mucho más rápido de un rango más amplio de suposiciones iniciales que los otros métodos típicos- es un factor a favor de su continua popularidad". Marquardt explica que en febrero de 1953 se unió a un grupo consultor en DuPont, "la primera organización de investigación de ingeniería química.” En ese tiempo, sugiere, las demandas de modelación de ingeniería iban más allá de las capacidades computacionales actuales: “Aunque la estimación que involucraba modelos lineales apenas se empezaba a usar, todos los modelos de ingeniería eran no-lineales (Davis, 1993). El problema computacional consiste en buscar el mínimo de la función costo. La función costo más común es la suma de los cuadrados de las diferencias entre los datos actuales y los valores predichos por la actual elección de la estimación de parámetros. El punto más bajo en ésta área corresponde al mayor estimador de los parámetros desconocidos. Dado que los problemas son no lineales, la búsqueda del mínimo es siempre iterativa (Davis, 1993). Marquardt comenzó a observar un problema geométrico genérico: Métodos como el Descenso más inclinado el cual seguía el gradiente a través del área de la función costo, marchaba en una dirección que resultaba casi ortogonal a la de los métodos de las series de Taylor, los cuales linealizaban la función costo. Éste conflicto geométrico era una consecuencia de los largos y estrechos valles en forma de bananas de la función costo. El método ideal debería encontrar un ángulo de descenso intermedio entre éstos dos extremos. Al mismo tiempo, el tamaño del paso requeriría ajuste para prevenir pasar a través del valle y perder totalmente la superficie donde los mejores valores de los parámetros descansan (Marquardt, 1963, Davis, 1993). El término diagonal Eventualmente, Marquardt se dio cuenta que estos objetivos podían ser integrados añadiendo un parámetro debidamente calibrado a la diagonal del sistema de ecuaciones definiendo las iteraciones. Levenberg 1944, cuyo primer trabajo le era desconocido a Marquardt en ese tiempo, proporcionó una motivación intuitiva para éste término diagonal al derivarlo con el argumento de que un escalón linealizado demasiado grande debería compensar la reducción aparente en la función costo. Pero la extraordinaria efectividad de la aproximación de Marquardt dependió de dos características particulares que estuvieron ausentes en el primer trabajo de Levenberg. Primero, a diferencia de Levenberg, Marquardt no insistió en encontrar un mínimo de la función costo en cada iteración. De esta manera evitó la relativamente lenta convergencia a menudo encontrada en las técnicas del Descenso más inclinado, mientras trabajaban en sus sistemas a lo largo de estrechos caminos en zigzag, pasando y repasando la base del valle en forma de banana en la superficie de la función costo. Segundo, y de igual importancia, Marquardt implementó su método en Fortran y lo probó “en un gran número de problemas.” Su código contenía una característica particular, mencionada solamente en un largo pie de página en su artículo de 1963, que trataba casos en los cuales el parámetro diagonal había crecido irrazonablemente (Marquardt, 1963, Davis, 1993). “Mucha gente que inicialmente programaba el método había omitido el paso descrito en el pie de página en el software de su computadora,” Marquardt explica, “pero es demasiado crítico. El algoritmo no está completo sin esto. No obstante, yo distribuí muchos cientos de copias del código que probé. Estoy convencido de que esta técnica no habría recibido tanta atención sin el código en Fortran. Y creo que es aún hoy verdad que los buenos resultados no reciben la atención que merecen si no vienen acompañados de un buen código.” MÉTODO DE GAUSS-NEWTON El problema computacional mas a menudo encontrado en el ajuste de parámetros es concerniente a algún problema de mínimos cuadrados no-lineales: encontrar θ para minimizar n 2 S (Θ ) = ∑ [ yi − f i (Θ )] = y − f 2 (6) i =1 Algunos algoritmos han sido desarrollados los cuales desarrollan la estructura general de (6) como una suma de cuadrados. Estos algoritmos están basados sobre una modificación al método de Newton introducido por Gauss en 1809 y conocido como el algoritmo de Gauss-Newton (Seber, 1989). Sea el modelo a ser ajustado a una colección de datos: E ( y ) = f ( x1 , x 2 ,..., x m ; β 1 , β 2 ,..., β k ) = f ( x, β ) (7) donde x1 , x 2 ,..., x m son las variables independientes del modelo, β 1 , β 2 ,..., β k son los valores poblacionales de los k parámetros, y E(y) es el valor esperado de la variable dependiente y. Sean los datos denotados por: ( y i , X 1i , X 2i ,..., X mi ), i = 1,2,..., n. el problema es ajustar esos estimadores de los parámetros los cuales minimicen: n 2 Φ = ∑ [ y i − yˆ i ] = y − yˆ , 2 yˆ i = f ( x, β ) (8) i =1 Las barras dobles representan el valor absoluto del vector, o bien, la abreviación de las sumatorias. Donde ŷ i es el valor predicho de y por f ( x, β ) en el i-ésimo punto observado. Cuando f es lineal en las β’s, las curvas de nivel de Φ son elipsoidales, mientras que si f es nolineal, las curvas de nivel se deforman, de acuerdo a la severidad de la no-linealidad. Aún en los modelos no-lineales, sin embargo, las curvas de nivel son aproximadamente elípticas en la vecindad inmediata del mínimo de Φ. Típicamente la superficie de nivel de Φ está muy atenuada hacia alguna dirección y alargada en otras de tal manera que el mínimo descansa en el fondo de un canal curvo alargado (Marquardt, 1963 y Seber, 1989). La función f puede ser escrita por medio de la serie de Taylor como sigue: ( ) f i (Θ ) ≈ f i Θ (a ) ( )( ∂f i Θ (a ) + Θ − Θ (a ) ∂Θ′ ) (9) Usando (9) en (6), el problema de minimización fue convertida en un problema de mínimos cuadrados lineales (Seber, 1989), el cual consistiría ahora en minimizar ( r (a ) − F. ( a ) Θ − Θ (a ) Donde ) 2 (10) , r (a ) = y − f (Θ (a ) ) y F. (a ) es ∂f ∂Θ′ evaluada en Θ (a ) . Ahora (10) tiene solución ( ′ Θ − Θ (a ) = F. (a ) F. (a ) ) −1 ′ F. (a ) r (a ) (11) conduciendo al algoritmo de Gauss-Newton Θ (a +1) = Θ (a ) + δ (a ) , (12) donde ( ′ δ (a ) = F•(a ) F•(a ) ) −1 ′ F•(a ) r (a ) (13) A continuación se presenta el pseudocódigo del método de Gauss-Newton de mínimos cuadrados no-lineales con un balance relativo de criterio de convergencia extraído de Bates (1988). Inicializar CONTADOR_DE_ITERACIÓN(0) y el FACTOR_DE_AVANCE λ=1 REPETIR { Incrementar CONTADOR_DE_ITERACIÓN Marcar ERROR y TERMINAR si el máximo número de iteraciones ha sido excedido EVALUAR los residuales y las derivadas Descomponer las derivadas en QR Marcar ERROR y TERMINAR si R es computacionalmente singular Sobrescribir los residuales por QTz Resolver para δ EVALUAR el CRITERIO de convergencia TERMINAR NORMAL si (CRITERIO < TOLERANCIA) REPETIR { EVALUAR los residuales en θ+λδ SALIR del ciclo si ( S(θ+λδ) < S(θ) ) Halve λ Marcar ERROR y TERMINAR si (λ < mínimo permitido) } Sobrescribir S(θ) con S(θ+λδ) Sobrescribir θ con θ+λδ Duplicar λ a un máximo de 1 } MÉTODO DE MARQUARDT Sea el modelo a ser ajustado a una colección de datos: E ( y ) = f ( x1 , x 2 ,..., x m ; β 1 , β 2 ,..., β k ) = f ( x, β ) , (14) donde x1 , x 2 ,..., x m son las variables independientes del modelo, β 1 , β 2 ,..., β k son los valores poblacionales de los k parámetros, y E(y) es el valor esperado de la variable dependiente y. Sean los datos denotados por: ( y i , X 1i , X 2i ,..., X mi ), i = 1,2,..., n. el problema es ajustar esos estimadores de los parámetros los cuales minimicen: n 2 Φ = ∑ [ y i − yˆ i ] = y − yˆ , 2 yˆ i = f ( x, β ) (15) i =1 Las barras dobles representan el valor absoluto del vector, o bien, la abreviación de las sumatorias. Donde ŷ i es el valor predicho de y por f ( x, β ) en el i-ésimo punto observado. Cuando f es lineal en las β’s, las curvas de nivel de Φ son elipsoidales, mientras que si f es nolineal, las curvas de nivel se deforman, de acuerdo a la severidad de la no-linealidad. Aún en los modelos no-lineales, sin embargo, las curvas de nivel son aproximadamente elípticas en la vecindad inmediata del mínimo de Φ. Típicamente la superficie de nivel de Φ está muy atenuada hacia alguna dirección y alargada en otras de tal manera que el mínimo descansa en el fondo de un canal curvo alargado (Marquardt, 1963). La función f puede ser escrita por medio de la serie de Taylor como sigue: ∂f Y (X i , b + δ t ) = f (X i , b) + ∑ i j =1 ∂b j k (δ t ) j (16) o bien Y = f 0 + Pδ t f0 es la función evaluada con valores de parámetros iniciales. (17) en (16), β es reemplazada notacionalmente por b, el valor convergente de b ha de ser el estimador por mínimos cuadrados de β. El vector δt es un pequeño corrector de b, con el subíndice t usado para designar δ como calculada por el método de las series de Taylor. Los paréntesis son usados para distinguir las predicciones basadas del modelo linealizado de aquellas basadas en el actual modelo no-lineal, de este modo el valor de Φ predicho por (17) es n Φ = ∑ [Yi − Yi 2 ] (18) i =1 Ahora, δt aparece de manera lineal en (17), y por lo tanto puede encontrarse por medio del método de mínimos cuadrados estándar al hacer ∂〈Φ〉 / ∂δj = 0, para toda j. De esta manera δt se halla resolviendo A δt = g Donde A[kxk] = P T P , ∂f P [ nxk ] = i ∂b j , el superíndice T denota matriz transpuesta. i = 1,2, ... , n; j = 1, 2, ... , k, (19) g [ kx1] n ∂f = ∑ (Yi − f i ) i i =1 ∂b j , j = 1, 2, ... , k, = P T (Y − f 0 ) El método por series de Taylor muy usado en 1963 tenía la ventaja de acercarse a los valores convergentes rápidamente después de que la vecindad de los valores convergentes ha sido alcanzado, el problema es alcanzar dicha vecindad, en la práctica es útil corregir b en una pequeña fracción de δt; de otra manera la extrapolación podría irse más allá de la región en donde f puede ser adecuadamente representada por (17), y podría causar divergencias en las iteraciones, varios métodos fueron usados para determinar un tamaño apropiado de salto Kδt,, 0 < K ≤ 1, una vez que la dirección había sido especificada por δt, aún así, las frustradas convergencias no eran poco común (Marquardt, 1963). Por otra parte, los métodos del gradiente indicaban que simplemente había de bajar del valor pronosticado actual en dirección del gradiente negativo de Φ. De esta manera ∂Φ ∂Φ ∂Φ δ g = − , ,..., ∂bk ∂b1 ∂b2 T (20) Con estos métodos del gradiente negativo, así como en los métodos de las series de Taylor, es necesario controlar el tamaño de paso cuidadosamente una vez que la dirección del vector ha sido establecido. La gran ventaja de los métodos del gradiente es su habilidad de converger de un pronóstico inicial, el cual puede incluso estar fuera de la región de convergencia de otros métodos. Ambos métodos se estancan en no pocas ocasiones, el método de las series de Taylor debido a la divergencia de las iteraciones sucesivas, los métodos del gradiente (o del descenso más inclinado) debido a su agonizantemente lenta convergencia después de unas cuantas primeras iteraciones (Marquardt D W, 1963). Marquardt desarrolló un método que realiza una óptima interpolación entre los métodos de las series de Taylor y del gradiente, la interpolación se basa en la máxima vecindad en la cual las series de Taylor truncadas proporcionan una adecuada representación del modelo no-lineal. Para ello presenta y demuestra tres teoremas fundamentales para su algoritmo (Marquardt D W, 1963). Teorema 1: Sea λ ≥ 0 arbitraria y sea δ0 que satisfaga la ecuación ( A + λI )δ 0 = g (21) entonces δ0 minimiza Φ en la esfera cuyo radio δ satisface δ 2 2 = δ0 . Aquí se puede empezar a visualizar la idea de Marquardt que consiste en agregar un factor a la diagonal principal de la matriz A. Marquardt (usando la idea de Levenberg) notó una simple conexión entre los mínimos cuadrados y las rutas de descenso más inclinado. Al sumar una constante a la diagonal se obtiene la ruta de descenso más inclinado. Al sumar a los elementos de la diagonal de A una λ, en donde λ es pequeña para los mínimos cuadrados o grande para la ruta del descenso más inclinado, se obtiene una ruta que varía entre los dos extremos. Cuando λ sea sumado a los elementos de la diagonal principal, y se encuentre la solución δ0, ésta minimizará la función de los errores cuadrados Φ, dando con la solución δ0 la corrección del vector b de los parámetros ajustándose hacia β, resultando en unos valores de los parámetros más cercanos a los óptimos. Para entender mejor la idea de la esfera, tomemos el ejemplo arbitrario de un sistema de tres observaciones (n = 3) con dos parámetros (p = 2) La Figura 2 muestra el espacio muestra cuando n = 3, los ejes coordenados marcados como 1, 2 y 3 corresponden a los tres componentes (Y1, Y2, Y3) del vector Y. Supondremos entonces que existen p = 2 parámetros θ1 y θ2, así que la matriz X de los valores de las variables independientes x, es una matriz de 3 × 2 de la forma: X 11 X = X 12 X 13 X 21 X 22 X 23 Las columnas de X definen dos puntos P1 y P2 con coordenadas (X11, X12, X13) y (X21, → → X22, X23), respectivamente, y los vectores OP1 y OP2 definen un plano que representa el ˆ debe encontrarse. El espacio de estimación bidimensional en el cual el vector Yˆ = XΘ punto Y descansa sobre este plano y la perpendicular YP de Y al plano OP1P2 toca al plano en P. De este modo YP es la distancia más corta de Y (los valores reales ˆ, observados) a cualquier punto en el espacio de estimación, P está definido por Yˆ = XΘ y Φ = YP 2 (Draper, 1981). Si se dibuja una línea OR a través de O, igual en longitud y paralela a PY (OR2 = Φ), → → entonces OR representa el vector de los residuales e = Y − Yˆ . El vector OP es Yˆ y T es un punto no óptimo (Draper, 1981). Figura 2. Representación gráfica de las relaciones vectoriales en los mínimos cuadrados no-lineales. De esta manera podemos imaginarnos un ajuste de parámetros inicial T, con una suma de cuadrados Φ = TY2, si se encuentra una solución δ0 (vector de corrección de los parámetros previos) como la mencionada anteriormente, se podrá mover el punto a uno mas cercano a P el valor óptimo, de tal manera que esto podría verse como un encogimiento de una esfera Φ aproximadamente inscrita en el polígono formado por los puntos Y. Y el radio de dicha esfera es a la que se refiere el teorema 1, con el nuevo vector b +δ. Figura 3. Esfera cuyo radio es el valor absoluto del vector de corrección de los parámetros. Cuando n > 3 la situación completa no puede ser dibujada pero la extensión mental hacia dimensiones mayores no resulta demasiado difícil. Teorema 2: Sea δ(λ) la solución de (21) para un valor dado de λ. Entonces δ (λ ) es 2 una función decreciente continua de λ, tal que cuando λ→ ∞, δ (λ ) → 0. 2 Con este teorema Marquardt prueba que una vector de corrección δ que sea solución y dependa de λ, la suma de los cuadrados de esta corrección tenderá a 0, es decir, que mientras λ sea grande, la diferencia entre una corrección δr –1 y la siguiente δr de dos iteraciones consecutivas será cada vez menor, se tendrá una mejor convergencia, más rápida (Marquardt, 1963). Teorema 3: Sea γ el ángulo entre δ0 y δg. Entonces γ es una función decreciente monótona continua de λ tal que cuando , λ→ ∞, γ→ 0. Dado que δg es independiente de λ, se sigue que δ0 es la que rota hacia δg cuando λ→ ∞. Marquardt linealiza la función no lineal con las series de Taylor y de ahí obtiene el vector de corrección de los parámetros que utiliza y por medio de la iterativa suma de un factor λ a la diagonal principal de la matriz A va ajustando los valores iniciales de el vector de los parámetros hacia aquellos que permiten el mínimo de la suma de cuadrados de las desviaciones del modelo no-lineal, con este teorema Marquardt demuestra que el vector de corrección δ va dirigiéndose rápidamente, mientras λ crece, hacia el descenso más inclinado (convergencia) evitando divergir entre las iteraciones, y demuestra además que es precisamente nuestro gradiente el que se mueve hacia δg permitiendo una convergencia muy cuidadosa mas no agonizantemente lenta al mezclar el método de la serie de Taylor y el método del gradiente. La importancia de unos valores iniciales adecuados Todos los procedimientos de iteración requieren valores iniciales θ10, θ20, . . . , θp0, de los parámetros θ1, θ2, . . . , θp, que sean seleccionados. Toda información previa disponible debería ser usada para hacer estos valores tan fiables como sea posible. También, si existieran múltiples mínimos o si hubieran varios mínimos locales además de un mínimo absoluto, valores iniciales pobres pueden resultar en una convergencia hacia un punto estacionario indeseable sobre la superficie de la suma de cuadrados (Draper, 1981). Escala de medida Las propiedades relevantes de la solución, δt, de (19) son invariantes bajo transformaciones lineales del b-espacio (espacio de los parámetros). Sin embargo se sabe que las propiedades de los métodos del gradiente no son invariantes de la escala. Viene a ser necesario entonces realizar una escala del b-espacio de alguna manera conveniente. Marquardt escoge hacerlo en unidades de las desviaciones estándar de las derivadas ∂f i ∂b j . Esta elección de escala ha sido, en efecto, ampliamente utilizada en problemas de mínimos cuadrados lineales como un mecanismo para mejorar los aspectos numéricos de los procedimientos de cálculo (Marquardt, 1963). De este modo, definimos una matriz escalada A* y un vector escalado g*: a jj ' A* = a *jj ' = a a'' jj j j , j = 1, 2, . . ., k ( ) gj g * = g *j = a jj ( ) , j = 1, 2, . . ., k (22) (23) y resolvemos para la corrección de las series de Taylor usando: A*δ t* = g * (24) Entonces, δ j = δ *j (25) a jj Construcción del algoritmo La idea general del algoritmo apropiado es ahora claro. Específicamente, en la r-ésima iteración la ecuación: (A ( ) + λ( ) I )δ *r r *( r ) = g (r ) (26) es construida. Esta ecuación es entonces resuelta para δ*(r). Entonces (25) es usada para obtener δ(r). El nuevo vector de prueba b (r +1) = b (r ) + δ (r ) (27) conducirá a una nueva suma de cuadrados Φ(r+1). Es esencial seleccionar λ(r) de tal manera que Φ (r +1) < Φ (r ) (28) De la teoría previa, se tiene que una λ(r) lo suficientemente grande siempre existirá tal que (28) se satisfaga, a menos que b(r) sea ya un mínimo de Φ. Alguna especie de ensayo y error es requerida para encontrar un valor λ(r) el cual conduzca a la satisfacción de (28) y produzca una rápida convergencia del algoritmo a los valores de mínimos cuadrados. En cada iteración deseamos minimizar Φ en (aproximadamente) la máxima vecindad sobre la cual la función linealizada proporcionará una adecuada representación de la función no-lineal. De acuerdo a esto, la estrategia para escoger λ(r) debe buscar usar un valor pequeño de λ(r) siempre que las condiciones sean tales que el método conservado de las series de Taylor converjan adecuadamente, ya que si se utiliza un valor alto de λ(r) se aproximará al método del gradiente y con esto se podría obtener una convergencia innecesariamente lenta. Esto es especialmente pertinente en las etapas posteriores del procedimiento de convergencia, por el mismo motivo, cuando los valores de prueba están en la vecindad inmediata del mínimo, en donde las curvas de nivel de Φ son asintóticamente elípticas, y la expansión lineal del modelo necesita ser una buena aproximación sobre solamente una región muy pequeña. Figura 4. Curvas de nivel de Φ asintóticamente elípticas cerca del mínimo sobre la superficie de estimación de los parámetros. Valores grandes de λ(r) deberían por lo tanto ser usados solamente cuando sea necesario satisfacer (28). Dicha estrategia heredaría muchas de las propiedades del “descenso más inclinado”; por ejemplo, progreso inicial rápido seguido por un avance gradualmente más lento (Marquardt, 1963). Marquardt indica la siguiente estrategia: Sea v > 1. Sea λ(r) el valor de λ de la iteración previa. Inicialmente hacer λ(0) = 10-2, por ejemplo. Calcular Φ(λ(r −1) ) y*** Φ(λ(r −1) v ) ( ) ( ) ( ) ( ) ( ) i. Si Φ λ(r −1) v ≤ Φ (r ) , hacer λ(r ) = λ(r −1) v ii. Si Φ λ(r −1) v > Φ (r ) , y Φ λ(r −1) ≤ Φ (r ) , hacer λ(r ) = λ(r −1) iii. Si Φ λ(r −1) v > Φ (r ) , y Φ λ(r −1) > Φ (r ) , incrementar λ por medio de sucesivas multiplicaciones **** de v hasta que para algún w mínimo, Φ(λ(r −1)v w ) ≤ Φ (r ) , hacer λ(r ) = λ(r −1)v w *** si λ(r) es ya insignificante comparándolo con 1.0 al número de multiplicaciones realizadas, entonces ir a la prueba ii. o a la iii. inmediatamente sin calcular Φ(λ(r −1) v ) , e ignorar las comparaciones que involucren Φ(λ(r −1) v ) . ****en ocasiones, en problemas en donde las correlaciones entre los estimadores de los parámetros son extremadamente altos (>.99) puede suceder que λ sea incrementada a valores irrazonablemente altos. Se ha encontrado de utilidad para esas situaciones alterar la prueba iii. la prueba modificada es: Sea b (r +1) = b (r ) + K (r )δ (r ) , K(r) ≤ 1. Notar que el ángulo γ(r) es una función decreciente de λ(r), seleccionar un ángulo estándar γ 0 < π 2 y tomar K (r ) = 1 si γ (r ) ≥ γ 0 . Sin embargo, si la prueba iii. no se pasa aunque λ(r) haya sido incrementado hasta que γ (r ) < γ 0 , entonces no incrementar λ(r) más, pero tomar K(r) lo suficientemente pequeño de modo que Φ (r +1) < Φ (r ) . Esto siempre puede hacerse dado que γ (r ) < γ 0 < π 2 . Una elección apropiada para el ángulo estándar es γ 0 = π 4 . Con éste algoritmo podemos siempre obtener una vecindad factible. Además, podemos siempre obtener, con un factor determinado por v, la máxima vecindad en la cual las series de Taylor dan una adecuada representación para nuestros propósitos. La elección de v es arbitraria; v = 10 ha resultado ser una gran elección. Típicamente la condición iii. es encontrada en raras ocasiones. De esta manera, es mas a menudo requerido que (26) sea resuelta para dos valores de λ(r) en cada iteración (Marquardt, 1963). 3.3. AJUSTES DE MODELOS ESTÁTICOS La cinética enzimática se divide en cinética de masas y cinética de Michaelis-Menten. Cinética de masas. La cinética de masas es de las cinéticas más simples, en cuanto a sus suposiciones de que a partir de una concentración de sustrato se tiene una velocidad de reacción. A mayor concentración, mayor velocidad de reacción y a menor concentración, menor velocidad de reacción. Supone que la velocidad de reacción depende exclusivamente de la cantidad de sustrato presente. Así, la velocidad de reacción es una función de primer orden con respecto a la concentración de sustrato (Baldwin, 1995) (Figura 5). r = kS (Reacción de primer orden) r es la velocidad de reacción. k es la tasa fraccionaria de reacción. S es la concentración de sustrato presente. La reacción general para una cinética de masas es la siguiente: k S P (29) S es la concentración de sustrato presente. P es la concentración de producto. k es la tasa fraccionaria de reacción. Donde la tasa de reacción (r) es: − ∂S ∂P =− = -rS = rP = kS ∂t ∂t Gráfica de reacción (r) contra concentración (S) Velocidad de reacción (r ) vs. Concentración (S) r 0 S Figura 5. Gráfica de una función de primer orden. Cinética de masas. Un ejemplo de éste tipo de cinética es el modelo clásico de crecimiento poblacional. Cinética de Michaelis-Menten. La cinética de Michaelis-Menten se utiliza para representar las reacciones catalizadas por enzimas y constituye la base cinética de la mayoría de los modelos dinámicos de producción bovina. Debido a sus suposiciones se utiliza más que la cinética de masas en procesos bioquímicos, tales como, transporte, crecimiento bacteriano, de crecimiento animal y de modelos de energía. Este modelo supone la existencia de un complejo, y a diferencia de la cinética de masas, ésta no supone que la velocidad de reacción depende exclusivamente de la concentración de sustrato. Éste modelo supone que, a concentraciones bajas, la velocidad de reacción es de primer orden con respecto a la concentración del sustrato, pero a altas concentraciones, la velocidad de reacción es de segundo orden (Stryer, 1981). Esto se puede observar en las gráficas de la velocidad de reacción a diferentes concentraciones, desde 0 hasta cantidades muy altas (Figura 6). Se puede deducir la existencia de un límite en la velocidad de reacción (rmax) por medio de experimentación. Gráfica de reacción (r) contra concentración (S) Velocidad de reacción (r ) vs. Concentración (S) r rmax S 0 Figura 6. Curva de la velocidad de reacción vs. concentración de Sustrato para una cinética de Michaelis-Menten El mecanismo de reacción propuesto por Michaelis-Menten es el siguiente: k1 E+S ES k3 P k2 P es la concentración de producto E es la concentración de enzima libre S es la concentración de sustrato ES es la concentración de complejo enzima-sustrato k1, k2, k3 son las tasas fraccionarias de reacción y la ecuación de la tasa de reacción, considerando la suposición de estado estacionario, conocida como la ecuación de Michaelis-Menten (Stryer, 1981; Saucedo-Castañeda, 1990) es: r = rmax S KM + S (30) r es la velocidad de reacción (creación de producto) con la presencia de cierto sustrato S y cierta cantidad de enzima total (Etotal = E + ES), como ecuación diferencial equivaldría a r= ∂P ∂t (31) KM es la constante de Michaelis-Menten. rmax es la velocidad de reacción máxima. Las ecuaciones diferenciales relacionadas a los tres flujos con la estructura de MichaelisMenten están dadas por cada uno de los elementos que intervienen. Por concentración de enzima libre: ∂E = − k1 ( E )( S ) + k 2 ( ES ) ∂t (32) Por concentración de sustrato: ∂S ∂E = − k1 ( E )( S ) + k 2 ( ES ) = ∂t ∂t (33) Por concentración de complejo enzima-sustrato: ∂ES = k1 ( E )( S ) − (k 2 + k 3 )( ES ) ∂t (34) Y por concentración de producto: ∂P = k 3 ( ES ) ∂t (35) Un ejemplo de éste tipo de cinética está en las reacciones catalíticas. LINEARIZACIÓN (Montgomery y Peck, 1992; Zill, 1997) La Linearización es una técnica para transformar la respuesta (variable dependiente), y en algunos casos la variable independiente, para conseguir una relación lineal: a) Entre la respuesta y la variable explicatoria, o más generalmente. b) Entre la respuesta y los parámetros del modelo. El hecho de conseguir una relación lineal facilita el ajuste de parámetros, ya que en la mayoría de los casos es mas fácil ajustar modelos lineales que modelos no-lineales. La linealización usa: a) Un chequeo de diagnóstico de la adecuación del modelo original b) Estimación de los parámetros en el modelo ajustando el modelo lineal resultante. Para algunos modelos no lineales, es posible transformar la variable dependiente o la variable independiente o ambas, de tal manera que la relación entre las variables transformadas sea lineal. Un ejemplo es el modelo del crecimiento exponencial de la población, en el cual el tamaño de la población en el tiempo t está dado por: N(t) = N(0) ert , r es el parámetro y t la variable En donde, el logaritmo del tamaño de la población tiene una relación en forma de línea recta con el tiempo, con una pendiente r, la tasa de crecimiento relativo intrínseca, es decir, ln N(t) = ln N(0) + rt Tomar los logaritmos en este contexto es útil para: a) Verificar si el crecimiento observado es ciertamente exponencial – una línea recta después de una transformación indica un crecimiento exponencial. b) Estimar la tasa de crecimiento relativo ajustando una línea recta a los datos transformados. La linearización no debe ser confundida con método de ajuste, la primera es una herramienta muy importante para facilitar el ajuste de los parámetros de la función linealizada, el segundo es el procedimiento directo para encontrar los valores de ajuste de dichos parámetros. Linearización de una hipérbola rectangular Existen muchos ejemplos en Biología de curvas de respuesta, las cuales tienen la forma y la estructura matemática de una hipérbola rectangular. Algunas de éstas son: a) La ecuación (30) de Michaelis-Menten (mencionada con anterioridad) que relaciona la velocidad de reacción de una enzima catalizada con la concentración de substrato, b) La respuesta de la tasa de fotosíntesis a la tasa de luz incidente. La interpretación de los parámetros de los modelos dependen de la aplicación particular, pero la forma de la relación es la misma en éstos ejemplos: y= αx β+x (36) y la gráfica de la hipérbola rectangular es: Figura 7. Gráfica de la hipérbola rectangular Donde y es la variable respuesta y x es la variable explicatoria. La función crece a una razón decreciente hasta aproximarse a una asíntota superior α y alcanza el valor α/2 cuando x = β. Se tienen varios métodos para linearizar la hipérbola rectangular. A continuación presentamos dos: Método de Lineweaver–Burk Está basado en la linearización de la hipérbola rectangular más antigua y ampliamente usada, consiste en graficar los valores 1/y contra 1/x obtenidos por simple inversión de la ecuación de la hipérbola rectangular. 1 1 β 1 = + y α α x (37) Comparando la expresión anterior con la ecuación de una línea recta y = mx + c, muestra que la pendiente es β / α, y la ordenada al origen es 1/ α. Los parámetros de la relación hiperbólica pueden, por lo tanto, ser estimados por medio de la pendiente y la ordenada al origen de la ecuación linearizada (Brown, 1994) (Figura 9). m = β/ α y c = 1/ α y de esto, los parámetros están dados por: α= 1 / c y β=m/c Otra transformación útil de la ecuación de Michaelis-Menten se obtiene multiplicando ambos miembros de la ecuación de Lineweaver-Burk por rmax y reordenando quedando la ecuación: r r = rmax − KM S (38) La representación de r frente a r / S, llamada representación de Eadie-Hofstee, no solamente da los valores de rmax y de KM en forma muy sencilla, sino que también amplía las desviaciones del carácter lineal que pueden no aparecer en una representación de doble recíproca (Figura 8). r 0 r/S Figura 8. Representación de Eadie-Hofstee Donde KM es la pendiente y rmax / KM es la ordenada al origen. Los métodos citados son suficientes para poder plantear una estrategia muy sencilla rmax y KM: evaluar rmax usando la ecuación de Lineweaver-Burk, regresar a la curva de r contra S y encontrar rmax/2 y con esto KM (Saucedo-Castañeda, 1990). Método de Hanes-Woolf. En el método de Hanes-Woolf, se grafican los valores x / y contra los valores x, los datos transformados de la cinética enzimática forman aproximadamente una línea recta, como se esperaba. La recta se obtiene de multiplicar la recta de Lineweaver-Burk por x. x β 1 = + (x ) y α α (39) Comparando la expresión anterior con la ecuación de una línea recta y = mx + c, muestra que la pendiente es β / α, y la ordenada al origen es 1/ α. Los parámetros de la relación hiperbólica pueden, por lo tanto, ser estimados por medio de la pendiente y la ordenada al origen de la ecuación linearizada (Brown, 1994) (Figura 9). m = 1/ α y c = β/ α y de esto, los parámetros están dados por: α= 1 / m y β=c/m Figura 9. Variaciones de las rectas de Lineweaver-Burk y de Hanes-Woolf según los errores en las mediciones. Efecto de la transformación en la variación de los valores de x La transformación involucra la transformación de la variable dependiente ó de la independiente o ambos para ajustarse a una línea recta. Algunas veces esto resulta en una distribución bastante insatisfactoria de los valores de los datos a lo largo del eje de las abscisas, como se ilustra en la Figura 9 por la diferencia entre los métodos Lineweaver-Burk y Hanes-Woolf. Una desventaja del método de Lineweaver-Burk es que puede producir una dispersión desigual de los puntos en el eje 1/ x con una densidad creciente de puntos cuando se acerca al eje 1/ y. Esto es que el error ó variación es menor mientras más cerca esté del origen y mayor mientras se encuentre más hacia la derecha (Figura 10). En particular, cuando los valores x son espaciados, como los valores x = 1, 2, 3, 4, 5, . . ., los valores transformados 1/ x = 1, 0.5, 0.25, 0.125, 0.0625, . . ., no conservan el mismo espaciado. El área de error alrededor de el eje de las 1/ y es menor, las discrepancias entre los datos de los experimentos reales y el modelo de la línea recta, son más probables y más notorias, esto reduce la utilidad de la transformación de Lineweaver-Burk. En Hanes-Woolf, la variable x no se altera, así que no sufre de esta desventaja (Figura 11). En la linearización de Lineweaver-Burk los valores de 1/r se aglutinan cerca del origen, obteniéndose valores precisos de rmax pero no así para KM (Figura 10). Los experimentos deben planearse de manera que los valores de 1/S queden espaciados a intervalos regulares, de otra forma no es recomendable. La linearización de LineweaverBurk también proporciona información acerca de la inhibición enzimática, ayuda a identificar por ejemplo el tipo de inhibición de las enzimas (competitiva, acompetitiva y no competitiva). En la linearización de Hanes-Woolf se separan los datos a valores altos de r, de manera que la pendiente (1/rmax) se puede determinar con certeza, pero se tiende a valores de la ordenada al origen (KM /rmax) cercanos a cero, por lo que se obtienen valores poco certeros de KM (Figura 11). En ésta linearización, el error se encuentra homogéneamente distribuido (Saucedo-Castañeda, 1990). S /r 1/r 1/rmax 1/S Figura 10. Variación de los valores con Lineweaver-Burk KM /rmax S Figura 11. Variación de los valores con Hanes-Woolf Cálculo de los parámetros de una hipérbola rectangular (reacción de Michaelis-Menten) usando las transformaciones de Lineweaver-Burk y Hanes-Woolf y el criterio de Mínimos Cuadrados para el ajuste. r= rmax (S ) KM + S KM es la constante de Michaelis-Menten rmax es la velocidad de reacción máxima (49) Parámetro rmax (velocidad de reacción máxima). Si se utiliza la transformación de Lineweaver-Burk en los datos, se obtiene la recta: 1 1 KM = + r rmax rmax 1 S (41) Si se utiliza la transformación de Hanes-Woolf en los datos, se obtiene la recta: S KM 1 (S ) = + r rmax rmax (42) Donde: S es la variable sustrato r es la variable velocidad de reacción KM es el parámetro constante de MM rmax es el parámetro velocidad máxima Efecto de la transformación en la varianza de la variable dependiente Otra consecuencia de la transformación de la variable dependiente es que su varianza se ve afectada. Más importante es que la varianza es usualmente diferente a diferentes valores de x, asi que un modelo en el cual la varianza es la misma para todos los valores de x puede ser convertido a uno con una tendencia marcada en la variable mientras 1/x crece. Esto es importante para cualquier técnica de linearización en la cual subsecuentemente se ajusta una línea recta usando mínimos cuadrados ordinarios, técnica que esencialmente asume que la varianza de la respuesta es constante. 3.4. AJUSTES DE MODELOS EMPÍRICOS Supongamos que se observa un reloj un domingo a las 12 de la noche y cada 12 horas a partir de entonces siempre se encuentran las manecillas señalando las 7 en punto. La interpretación de estos datos sería diferente según el modelo que se considerase apropiado. Una idea que estaría de acuerdo con los datos es que el reloj se ha parado a las 7 en punto. El modelo matemático apropiado sería: y = β0 (43) Donde y es la hora marcada por el reloj en el momento de la lectura y β0 es una constante igual a 7. Una segunda idea, es que el reloj funciona perfectamente, solo que está 7 horas adelantado. El modelo apropiado ahora es: y = (β 0 + x )mod 12 (44) donde x es el tiempo, en horas transcurrido desde la primera lectura y (β 0 + x )mod 12 significa el resto obtenido al dividir β 0 + x por 12. Una tercera idea es que la manecilla no da una, sino p vueltas cada 12 horas, donde p es un número entero, en este caso: y = (β 0 + px )mod 12 (45) Los posibles modelos son claramente innumerables. Sin embargo, en la práctica casi siempre disponemos de un conocimiento básico del fenómeno que estudiamos (el mecanismo del reloj). Este conocimiento previo permite al experimentador clasificar algunos modelos como posibles y otro como imposibles. Los diseños empíricos se escogen basándose en las hipótesis del experimentador sobre qué modelos son posibles. Frecuentemente el mecanismo que gobierna un proceso no se conoce suficientemente bien, o es demasiado complicado para permitir que un modelo exacto sea postulado a partir de consideraciones teóricas. En estas circunstancias un modelo empírico puede ser útil, particularmente si solo se desea una respuesta aproximada en una región de interés en que las variables tienen campos de valores limitados (Box, 1999). Los datos no tienen significado por si mismos, solo lo tienen en relación a un modelo conceptual del fenómeno estadístico. Cuando se ajusta una curva, el modelador usa suposiciones que seleccionan un tipo particular de modelo que explica el comportamiento que se observa. Si los datos recopilados entonces son congruentes con estas suposiciones, la tarea del modelador es escoger los parámetros de la curva seleccionada que mejor ajuste a los datos de acuerdo a algún criterio (mínimos cuadrados). En tal situación el modelador espera, y de buena voluntad acepta, algunas desviaciones entre el modelo ajustado y el conjunto de datos con tal de tener un modelo que explique el comportamiento. El problema con esta aproximación es que en muchos casos no es posible construir un modelo sencillo, simple y ajustable que satisfactoriamente explique el comportamiento. De este modo el modelador no sabe que tipo de curva actualmente describe el comportamiento (Giordano, 1997). Si es necesario predecir el comportamiento sin embargo, se pueden realizar experimentos (u otra manera de colectar datos) para investigar el comportamiento de la(s) variable(s) independiente(s) con algún criterio (Giordano, 1997). Cuando se tiene una colección de datos es posible hacer predicciones, si bien, no existe un modelo para explicar el comportamiento que se observa (modelo mecanístico), de algún modo, existirá una colección de datos puntuales que pueden ser usadas para predecir el comportamiento con algún rango de importancia. En esencia deseamos construir un modelo empírico basado en la colección de información más que seleccionar un modelo basado en ciertas suposiciones. En estos casos, el modelador está fuertemente influenciado con la información que ha sido cuidadosamente recopilada y analizada, así busca una curva que captura la tendencia de los datos para predecir entre los datos puntuales (Giordano, 1997). Los modelos empíricos más comunes en los procesos biológicos se encuentran expresados como funciones explícitas de variables y parámetros, en forma lineal o no lineal en los parámetros, por la naturaleza de los modelos empíricos, la manera hasta cierto punto arbitraria de selección del modelo hace que este sea siempre que se pueda, lo más sencillo que se pueda. Uno de los modelos mas sencillos son los modelos lineales, que se pueden ajustar con mínimos cuadrados para modelos lineales, que consisten en ajustar un polinomio de grado n. Otras veces, los modelos son no lineales y resultan un poco mas complicados de ajustar, pero también existen métodos para simplificar el problema como la linealización o métodos de ajuste no lineales. Por lo tanto, el ajuste de parámetros para estos modelos resulta en la mayoría de los casos un trabajo relativamente sencillo. 3.5. AJUSTES DE MODELOS MECANÍSTICOS DINÁMICOS Considérese el ejemplo de un géiser de un parque turístico, los guardianes del parque necesitan un modelo para predecir cuando erupcionará de nuevo el géiser, ya que esto es lo que los turistas desean saber. Para esto resulta totalmente satisfactorio un modelo empírico de la siguiente manera: si la erupción anterior fue corta, de unos dos minutos, transcurrirán entonces de 45 a 65 minutos antes de que tenga lugar la siguiente erupción, si la erupción anterior fue larga de unos cinco minutos transcurrirán de 65 80 minutos antes de que tenga lugar la siguiente. Este modelo es puramente empírico y solamente describe con cierta aproximación las salidas del sistema mas no toma en cuenta los mecanismos que puedan estar produciendo estas salidas (Box, 1999). Si un investigador se encuentra interesado en modelar el sistema del géiser, no le bastará con el modelo de los guardianes del parque, buscará los mecanismos que pueden estar afectando el sistema como son la presión, la temperatura, etc., el investigador necesita un modelo que contenga mecanismos relacionados con el comportamiento del sistema, y en base a ellos hacer suposiciones y construir el modelo, estos tipos de modelos son los llamados mecanísticos (Box, 1999). Los modeladores de los procesos y fenómenos biológicos, debido a las características de cambio que presentan, necesitan además estudiarlos como sistemas dinámicos. Los cambios dinámicos presentes en los sistemas obligan para su estudio la utilización de herramientas acordes a este cambio particular y que permitan un análisis claro de las tendencias y de las consecuencias de su modificación. Por ejemplo, concerniente a este trabajo se encuentra la problemática en el rancho de donde provienen los bovinos, que es un microsistema dinámico abierto que se ve influenciado fuertemente por el panorama nacional e internacional, donde su relación con el tiempo es de igual forma vital para satisfacer las necesidades de los mismos productores y del altamente competitivo mercado. Este sistema necesita ser modelado con información obtenida de trabajos experimentales sobre el sistema para el estudio de sus relaciones y tendencias en un modelo dinámico (Vargas, 2002, datos sin publicar). La modelos mecanísticos dinámicos más comunes encontrados en la modelación de los procesos biológicos, consisten en sistemas de ecuaciones diferenciales, siendo mas complejos que los estáticos y los empíricos; en muy raro encontrar modelos dinámicos en forma de sistemas de ecuaciones diferenciales que tengan solución explícita de la variable que se desea predecir. Para los ajustes en este tipo de modelo se requieren técnicas especiales. Los métodos numéricos y de simulación pueden ayudar a ajustar los parámetros, por medio de la integración numérica y la simulación se obtienen las gráficas del modelo, las predicciones con los valores de los parámetros iniciales y los ajustados. Existen varios programas útiles para diseñar los modelos, describirlos de manera gráfica (Stella, Madonna), e incluso programas que ajustan los parámetros. Para ajustar los parámetros de los modelos mecanísticos dinámicos, se requiere de algún criterio de minimización de errores, pero como las ecuaciones son generalmente nolineales en los parámetros, se requieren algoritmos de ajuste que consistan en minimización de errores en ecuaciones no-lineales. Entre los métodos de ajustes nolineales mas conocidos se encuentran el método de Gauss-Newton y el algoritmo de Marquardt. Se presenta un anexo que contiene un programa hecho en Pascal 7.0 que solicita los datos necesarios para ajustar parámetros en un modelo dinámico, los datos se pueden obtener por medio de algún programa de simulación (por ejemplo Stella). Y ajusta los parámetros por medio del algoritmo de Marquardt. Se trata de un programa sencillo que se utilizó para comparar ajustes de modelos dinámicos. 3.6. AJUSTES DE MODELOS DE ANIMAL COMPLETO En los últimos años, han sido desarrolladas técnicas altamente eficientes, para sistemas dinámicos en la forma de ecuaciones diferenciales no lineales, las cuales pueden ser aplicadas aún para sistemas dinámicos más extensos (Richter, 1990). Los modelos de animal completo consisten en conjuntos de sub-modelos integrados que representan sistemas mas complejos, el crecimiento de un bovino puede constar de 3 sub-modelos, un modelo de consumo voluntario, otro de rumen y otro de digestión. El ajuste de este tipo de modelos es muy similar a los modelos dinámicos, una idea común consiste en ajustar cada sub-modelo e integrar cada parte, este es un método válido, pero en la mayoría de las ocasiones resulta deficiente, ya que aunque el modelo conste realmente de varios modelos mas pequeños, estos se relacionan y hacen que el ajuste del animal completo requiera de ajustes en modelos de animal completo, la diferencia puede ser considerable. 4. RESULTADOS 4.1. AJUSTE DE PARÁMETROS EN UN MODELO ESTÁTICO A continuación se presenta un ejemplo Competición Bacteriana en el Rúmen en cultivos continuos: Streptococcus bovis vs. Megasphaera elsdenii. Applied and Environmental Microbiology, June 1981, p. 1394-1399 J. B. Russell, M. A. Cotta, and D. B. Dombrowski Department of Animal Science, University of Illinois, Urbana, Illinois 61801 En esta investigación se utilizó la cinética de Michaelis-Menten para simular el consumo que realizaban dos diferentes bacterias que competían entre sí por un mismo sustrato (maltosa), y se estimó el parámetro Afinidad de la bacteria por el sustrato por el método de mínimos cuadrados lineales utilizando la transformación de LineweaverBurk (de doble-recíproco para los datos obtenidos en las muestras). Problema: Una característica notable de la microbiología ruminal es la complejidad y diversidad de especies que se encuentran en el rumen. Aunque algunas de las bacterias están bastante especializadas con respecto a sus recursos de energía, muchas bacterias del rumen son capaces de fermentar una lista de los mismos sustratos y parece probable que estas bacterias desarrollan diferentes estrategias de crecimiento (Hungate, 1966). En un esfuerzo para cuantificar y predecir la competición bacteriana ruminal, se compararon las preferencias de sustrato mediante mecanismos de regulación catabólica, tasas máximas de crecimiento, mantenimiento y consumo de energía, afinidades de los sustratos y resistencia a pH bajo con muchas especies de bacterias ruminales, para encontrar diferencias. Los experimentos fueron realizados para examinar los efectos del pH y la tasa de crecimiento en las relativas proporciones de la bacteria S. bovis y M. elsdenii creciendo en almidón o maltosa. Se espera que tal estudio proporcione un entendimiento cuantitativo de la utilización de almidón y producción de lactato y la utilización de parte de estos organismos. Adicionalmente, se espera que esta investigación proporcione un modelo para predecir la competencia bacteriana en el rumen basada en la fisiología de los organismos involucrados. Análisis de la competición de dos bacterias (Streptococcus bovis y Megasphaera elsdenii) por la fermentación de un mismo sustrato. Se depositaron estas dos bacterias en cultivos continuos con maltosa como sustrato limitante en tasas de disolución de 0.36, 0.22 y 0.12 h-1, se controló el pH por medio de HCl (mientras más HCl se agregaba al cultivo, más disminuía el pH) y se mantuvo un flujo de control del cultivo de manera que se podían medir las cantidades de maltosa que quedaban en los desechos. Se midió también los datos que permitían la estimación de la afinidad de la bacteria por el sustrato (velocidad de reacción). Se modeló la situación por medio de la cinética de Michaelis-Menten, y la estimación del parámetro Afinidad de la bacteria por el sustrato (KM denota el parámetro de Michaelis-Menten). Se determinó midiendo las concentraciones de maltosa restantes en el contenedor del cultivo, con una variedad de tasas de disolución y realizando una transformación de Lineweaver-Burk sobre dichos datos. El gasto de energía en mantenimiento se determinó por el método de doble recíproco puntual (1/K vs. 1/(K2+K3); 1/producción vs. 1/disolución). Modelo: V= Vmax (S ) S + KM (46) Donde V es la tasa de disolución de la maltosa (1/h) S es la maltosa (g/l) Transformación de Lineweaver-Burk: 1 1 KM = + V Vmax V max 1 S Ajustes: Para la bacteria S. bovis Crecimiento de la bacteria con maltosa con un pH de 6.6: Ordenada al origen (1/Vmax ) = 0.40 Pendiente (KM/Vmax) = 0.09 Abscisa al origen (-1/KM) = 4.44 Coeficiente de correlación = 0.97 (47) Crecimiento de la bacteria con maltosa con un pH de 5.7 Ordenada al origen (1/Vmax ) = 0.42 Pendiente (KM/Vmax) = 0.04 Abscisa al origen (-1/KM) = 9.26 Coeficiente de correlación = 0.99 pH 6.6 1/tasa de disolución (1/V) pH 5.7 1/maltosa (1/S) Figura 12. Rectas de Lineweaver-Burk para el crecimiento de la bacteria S. Bovis en maltosa a dos diferentes niveles de pH. Para la bacteria M. elsdenii Crecimiento de la bacteria con maltosa con un pH de 6.6: Ordenada al origen (1/Vmax ) = 0.68 Pendiente (KM/Vmax) = 0.29 Abscisa al origen (-1/KM) = 2.34 Coeficiente de correlación = 0.98 Crecimiento de la bacteria con maltosa con un pH de 5.7: Ordenada al origen (1/Vmax ) = 1.54 Pendiente (KM/Vmax) = 0.29 Abscisa al origen (-1/KM) = 4.48 Coeficiente de correlación = 0.98 pH 5.7 1/tasa de disolución (1/V) pH 6.6 1/maltosa (1/S) Figura 13. Rectas de Lineweaver-Burk para el crecimiento de la bacteria M. elsdenii en maltosa a dos diferentes niveles de pH. En general, grandes tasas de disolución fueron correlacionados con radios más grandes de S. bovis a M. elsdenii, es decir, que cuando las tasas de disolución se incrementaron, los radios lo hicieron también. Cuando las afinidades por la maltosa fueron estimadas de Lineweaver-Burk de las concentraciones de los residuales de maltosa y las tasas de disolución, S. bovis siempre exhibió una afinidad mayor que M. eldesnii. Decrementando el pH de 6.6 a 5.7 incrementó la afinidad de ambas especies, pero la diferencia relativa en la afinidad por la maltosa entre las dos especies fue similar en el nivel de pH 6.6 y 5.7 por lo tanto, pareció que las grandes cantidades de S. bovis podrían ser, al menos parcialmente, explicados por la relativa afinidad por la maltosa. En todas las tasas de disolución, la disminución del pH causó que se incrementara grandemente el radio de S. bovis a M. elsdenii. M. elsdenii S. bovis maltosa (S) (g/l) Tasa de disolución (V) (h-1) Figura 14. Comportamiento aproximado de la cantidad de maltosa dejada en el recipiente de cultivo por M. elsdenii y la dejada por S. bovis. Resultados en éste problema: Se llegó a la conclusión de que las más grandes cantidades de S. Bovis podrían, al menos parcialmente, ser explicados por la relativa afinidad de la maltosa. Cuando S. bovis y M. eldesnii fueron co-cultivados en maltosa, siempre hubieron mas células S. bovis que M. eldesnii. S. bovis fue siempre más rápido y eficiente utilizando la maltosa que M. eldesnii. En la Figura 14 se usaron los parámetros de Michaelis-Menten para predecir el comportamiento de la maltosa que podría ser dejada por cada especie a varias tasas de disolución. El método de los mínimos cuadrados lineales (ajuste de la línea recta), método muy sencillo y conocido, resultó bastante satisfactorio para obtener los valores ajustados de los parámetros, estos parámetros ajustados proporcionaron suficiente información para conocer la situación del sistema, obtener conclusiones sobre la información analizada y resolver el problema planteado. 4.2. AJUSTE DE PARÁMETROS EN UN MODELO EMPÍRICO A continuación se desarrolla un modelo empírico y se demuestra la teoría básica de su ajuste. Datos experimentales Los siguientes datos experimentales se tomaron del trabajo de tesis de Licenciatura (González, 2001) de LM Carmen Alberto González Sáenz de la universidad de Tabasco. Microorganismos ruminales fueron extraídos del estómago de un toro, y fueron colocados en matraces, a los cuales se tuvo mucho cuidado de no contaminar ya que los microorganismos viven en ausencia de oxígeno, o sea de forma anaeróbica obligada; posteriormente se colocó alimento de caña de azúcar integral (CAI), fibra detergente neutra (FDN), fibra detergente ácida (FDA), CAI+enzima (CAI+E), FDN+enzima (FDN+E) y FDA+enzimas (FDA+E), los cuales consisten en lo siguiente: -Caña de azúcar integral: se refiere a la caña íntegra, incluyendo tallo y hojas. -FDN (Fibra Detergente Neutra): a la caña se le aplica un tratamiento químico y se desprenden los azúcares. -FDA (Fibra Detergente Ácida): a la FDN se le aplicó otro detergente y se separó la hemicelulosa, la cual consiste de celulosa, lignina, silica, y compuestos nitrogenados ligado a las fibras. -El cuarto, quinto y sexto alimento se conformó con los anteriores más enzimas. Cuando se le dio alimento a los microorganismos se midió con espectrofotómetro la turbidez del líquido, tomándose una muestra con una pipeta y se midió la absorbancia (a mayor absorbancia mayor población y a menor absorbancia menor población de microorganismos). Se midió la absorbancia cada media hora durante ocho horas y media. Se realizó seis veces el experimento con el primer alimento, para el tercer alimento solo fueron tres experimentos, en los restantes cuatro tipos de alimentos se llevaron a cabo cuatro mediciones por cada alimento; posteriormente se obtuvieron los promedios en cada caso. Problema A partir de los datos de la absorbancia de microorganismos en el tiempo, se plantea el problema de determinar tres características del crecimiento de los microorganismos: - La población máxima en cada caso (correspondientes a seis tipos de alimentación). - La rapidez de crecimiento de la población en cada caso. - El tiempo de retraso de la cinética bacteriana. Las absorbancias son los datos más directos que se pueden tener (dado que estas muestran cuánta materia se absorbió, por lo tanto cuanto se quedó, en cuanto tiempo lo hizo, etc...), por lo tanto tenemos que observar cual es el comportamiento de las gráficas para poder asignarles un modelo. En la tabla siguiente se observan los datos de absorbancia para cada tipo de alimento (se muestran los promedios de las absorbancias para los seis tipos de tratamiento). T(horas) CAI FDN FDA CAI+E FDN+E FDA+E 0.5 0.0402 0.0127 0.0140 0.0887 0.0613 0.0588 1.0 0.0665 0.0193 0.0240 0.1165 0.0855 0.0770 1.5 0.1050 0.0300 0.0367 0.1650 0.1063 0.1013 2.0 0.1310 0.0375 0.0400 0.1950 0.1500 0.1400 2.5 0.1150 0.0495 0.0397 0.1985 0.1490 0.1250 3.0 0.1270 0.0708 0.0440 0.2077 0.1618 0.1412 3.5 0.1582 0.1167 0.0400 0.2615 0.1938 0.1650 4.0 0.1950 0.1362 0.0427 0.3063 0.2012 0.1800 4.5 0.2388 0.1845 0.0370 0.3192 0.2522 0.2275 5.0 0.2610 0.2062 0.0433 0.3413 0.2837 0.2450 5.5 0.2702 0.2150 0.0407 0.3622 0.2885 0.2522 6.0 0.2958 0.2387 0.0577 0.3908 0.3037 0.2625 6.5 0.2930 0.2510 0.0617 0.3997 0.3182 0.3073 7.0 0.3155 0.2675 0.0660 0.4195 0.3350 0.3247 7.5 0.3249 0.2717 0.0750 0.4380 0.3430 0.3273 8.0 0.3450 0.2903 0.0833 8.5 0.3487 0.2978 0.0910 Falta la Falta la Falta la información información información 0.4550 0.3463 0.3625 Valores experimentales de absorbancia y tiempo para cada uno de los seis tratamientos. Según Zwietering (1990), el logaritmo del cociente entre el vector de la absorbancia en cada momento y la absorbancia inicial debería mostrar una curva sigmoidea (forma de S) cuando se gráfica contra el tiempo; en la tabla siguiente se muestran los datos de este logaritmo (en base natural) y los valores del tiempo: T(horas) CAI FDN FDA CAI+E FDN+E FDA+E 0.5 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 1.0 0.5033 0.4185 0.5390 0.2726 0.3327 0.2697 1.5 0.9601 0.8596 0.9637 0.6207 0.5505 0.5439 2.0 1.1775 1.0827 1.0498 0.7877 0.8949 0.8675 2.5 1.0511 1.3604 1.0423 0.8055 0.8882 0.7542 3.0 1.1503 1.7183 1.1451 0.8508 0.9706 0.8760 3.5 1.3700 2.2180 1.0498 1.0812 1.1510 1.0318 4.0 1.5791 2.3725 1.1151 1.2393 1.1885 1.1188 4.5 1.7818 2.6760 0.9719 1.2806 1.4144 1.3530 5.0 1.8707 2.7872 1.1291 1.3475 1.5321 1.4271 5.5 1. 9053 2.8290 1.0672 1.4069 1.5489 1.4561 6.0 1.9958 2.9336 1.4162 1.4829 1.6003 1.4961 6.5 1.9863 2.9839 1.4832 1.5055 1.6469 1.6537 7.0 2.0603 3.0475 1.5506 1.5538 1.6984 1.7088 7.5 2.0897 3.0631 1.6784 1.5970 1.7220 1.7167 8.0 2.1497 3.1293 1.7834 8.5 2.1603 3.1549 1.8718 Falta la Falta la Falta la información información información 1.6350 1.7315 1.8189 Valores de tiempo y de ln (absorbancia /absorbancia inicial) para cada uno de los seis tratamientos Modelo de Gompertz Un ejemplo de modelo empírico adecuado para este conjunto de datos es el modelo de Gompertz, publicado en 1825 que se utiliza en modelación para describir curvas de crecimiento. El modelo de Gompertz es la solución de la ecuación diferencial: dy = ry[ln A0 − ln y ] dt (48) El modelo de Gompertz : y = A0e−( LnA0 −Lny0 )e donde: λ es el tiempo de la fase inicial µ es la velocidad de crecimiento A0 es la población máxima − rt (49) con valor inicial: y (0 ) = y 0 (50) Y el gráfico del modelo de Gompertz, el cual tiene forma de letra “S” se muestra abajo: Gráfico del modelo de Gompertz y 0 0 x Figura 15. Gráfica del modelo de Gompertz. Puesto que se cuenta con datos experimentales (absorbancia contra el tiempo), será necesario, para obtener los parámetros buscados, realizar un ajuste de la mejor curva; el ajuste se realizará con el criterio de los mínimos cuadrados. Modelo de Gompertz modificado El modelo no es conveniente para el estudio de magnitudes relevantes del proceso que interesa, ya que los parámetros que en él aparecen no tienen un significado biológico que se ajuste a las magnitudes que se buscan: tiempo de la fase inicial ( λ ), velocidad de crecimiento ( µ ), y población máxima ( A0 ); por tal motivo se tomará el modelo modificado por Zwietering y colaboradores (Zwietering, 1990). y = A0e µe A ( λ −t )+1 0 −e donde: λ es el tiempo de la fase inicial µ es la velocidad de crecimiento A0 es la población máxima (51) El modelo de Gompertz, se puede representar por (52), en donde ξ n representa las variables en el modelo (en nuestros casos, el tiempo) y θ representa a los parámetros µ 0 , λ0 y A 0 . El modelo es desarrollado en serie de Taylor alrededor de ciertos valores iniciales de los parámetros (señalados con el subíndice cero) y se considera sólo las primeras derivadas respecto a cada uno de los parámetros, evaluadas en los parámetros iniciales, se escribe, aproximadamente: p ∂f f (ξ n ,θ ) = f (ξ n ,θ 0 ) + ∑ (θ i − θ i 0 ) i =1 ∂θ i θ =ϑ 0 (52) Si y n representa los valores experimentales, el modelo f (ξ n ,θ ) será una aproximación a ellos y esta relación viene dada por: y n = f (ξ n ,θ ) + ε n (53) en donde ε n representa la discrepancia entre ambas variables. Si consideramos la aproximación anterior para el modelo entonces la suma de los cuadrados de los errores es 2 n ss (θ ) = ∑ {yn − f (ξ n ,θ 0 ) − ∑ bio zino } (54) n =1 en donde sólo se ha utilizado la parte lineal del desarrollo en serie, ya que con esta se tiene una relación lineal en los parámetros, permitiendo esto proceder como en el caso de los mínimos cuadrados lineales. Entonces: p ∂f z ino = ∑ (en nuestro caso p = 3 ya que tenemos tres parámetros) i =1 ∂θ i θ =θ 0 y bi0 = θ i − θ i 0 (esto es, la diferencia entre los valores iniciales de los parámetros y otros valores cercanos). Usando el método de Gauss-Newton y con la condición del mínimo, debe cumplirse que: ( b0 = z 10 z 0 ) −1 ( z 10 y n − f no ) (55) En donde b0 (representa la diferencia entre los parámetros nuevos e iniciales) y puede ser calculado ya que tanto f no , el vector con elementos f no = f (ξ n ,θ 0 ) como z 0 , la matriz con elementos p ∂f z ino = ∑ i =1 ∂θ i θ =θ 0 (56) pueden calcularse; los elementos del vector bo serían entonces relaciones entre parámetros nuevos e iniciales: b01 = µ1 − µ 0 , b02 = λ1 − λ 0 y b03 = a1 − a0 ; de estas expresiones se pueden obtener nuevos valores de los parámetros, µ1 , λ1 y a1 . Estos nuevos parámetros serán mejores que los iniciales si el error , calculado con ellos es menor que el calculado con los parámetros iniciales; de ser así el procedimiento puede repetirse siguiendo los mismos criterios, de manera que cada vez obtendremos parámetros mejorados respecto al paso anterior. Para obtener los valores iniciales, primero se linealizó la ecuación explícita del modelo de Gompertz tomando A0 como conocida, esto es para lograr la relación lineal (González, 2001). A µe µe Ln Ln 0 = − t + λ +1 A0 A0 y (57) A y1 = Ln Ln 0 y m=− µe b= A0 µe A0 λ +1 entonces se tiene una relación lineal entre y1 y t ; usando mínimos cuadrados se puede determinar µ y t 0 . Los estimadores de los parámetros usando el método de mínimos cuadrados lineales en el caso del modelo de Gompertz para los casos sin enzima se muestran a continuación. Gompertz A0 µ λ CAI 2.1603 0.5105 0.2956 FDN 3.1548 0.8199 0.7009 FDA 1.8718 0.2196 -1.6700 Los estimadores de los parámetros usando el método de mínimos cuadrados lineales en el caso del modelo de Gompertz para los casos con enzima se muestran a continuación. Gompertz A0 µ λ CAI+E 1.6350 0.2000 -3.0685 FDN+E 1.7315 0.4752 0.6897 FDA+E 1.8189 0.3413 0.1965 Este primer ajuste se usó para obtener los valores iniciales de los parámetros del modelo en su forma no lineal por medio del método de Gauss-Newton. Los parámetros ajustados por el método de Gauss-Newon según el modelo de Gompertz son: Gompertz A0 µ λ CAI 2.1603 0.5105 0.2956 FDN 3.1548 0.8199 0.7009 FDA 1.8718 0.2196 -1.6700 CAI+enzima 1.6350 0.3491 0.1623 FDN+enzima 1.7315 0.4752 0.6897 FDA+enzima 1.8189 0.3413 0.1965 Observando los seis valores de µ y los seis de λ vemos que: la mayor velocidad de crecimiento bacterial se logra con FDN en primer lugar, con CAI en segundo y con FDN+enzima en tercero; por otra parte, las fases de acomodamiento, por su mínima duración son, en primer lugar. FDA, en segundo CAI+enzima y en tercero FDA+enzima; el tiempo mayor le corresponde a FDN. Por tanto, se recomendó, en base a este modelo, alimentación con caña integral, sin enzima o FDN; por otra parte, el peor tratamiento de acuerdo al trabajo realizado es FDA ya que su valor µ es el mas pequeño, esto significa que la FDA es mas difícil de digerir que el resto de los tratamientos. El método que se utilizó para el ajuste de los parámetros de este modelo empírico (Gauss-Newton) resultó igualmente bastante satisfactorio; se pudo notar la diferencia de la simplicidad entre este tipo de ajustes y el anterior (para modelos estáticos). El método de Gauss-Newton, que es un método de iteraciones sucesivas como se explicó anteriormente, necesita de unos valores iniciales de los parámetros para comenzar a buscar una solución del ajuste de los cuadrados, el artificio para hallar estos valores iniciales resultó igualmente favorable ya que por ellos se pudieron ajustar unos valores de los parámetros que fueron lo suficientemente descriptivos y adecuados para resolver el problema planteado y para tomar decisiones cuantitativas. 4.3. AJUSTE DE PARÁMETROS EN UN MODELO MECANÍSTICO DINÁMICO A continuación se ajustará un modelo dinámico mecanístico: Tomemos un modelo dinámico cuya estructura se muestra a continuación: Figura 16: Estructura de un modelo dinámico construido en Stella. Donde las variables de estado son las siguientes S es un sustrato con valor inicial 27 unidades (u) SC es un complejo sustrato con valor inicial 0 u P es el producto con valor inicial 1 u Los parámetros son k1 = k1 tasa de reacción del primer flujo k2 = k2 tasa de reacción del segundo flujo El modelo dinámico puede representar el crecimiento de masa bacteriana, en este caso el incremento de la masa microbial contribuye a la formación de un complejo-sustrato, la cual contribuye a la vez al aumento de la misma masa microbiana. En este ejemplo se consideran flujos unidireccionales, es decir, flujos que van de un módulo a otro sin regreso del segundo al primero. El modelo está compuesto por las siguientes ecuaciones diferenciales ∂S = − k1 (S )(P ) ∂t ∂SC = k1 (S )(P ) − k2 (SC ) ∂t ∂P = k2 (SC ) ∂t Sean los siguientes datos experimentales: Tiempo (segundos) Producto (moles) .5 1,035406 1 1,139099 1.5 1,310394 2 1,551824 2.5 1,868076 y tomemos como restricciones que los parámetros son positivos menores que la unidad. Podemos ajustar este modelo por el método de Marquardt, con el programa en Pascal 7.0 del anexo 1, para ello se necesitan como entradas los valores estimados de los productos ( P̂ ) y las derivadas ∂Pˆi , para i = 1, 2, 3, 4, 5 (observaciones) y evaluadas en los j = 1, ∂Θ j 2 (parámetros). Los modelos dinámicos comunes no tienen una solución explícita o es muy difícil obtenerla, por ello es recomendable trabajar con soluciones numéricas para hallar las predicciones del modelo con los valores ajustados de los parámetros. El programa Stella permite construir las estructuras de los modelos dinámicos y por medio de métodos numéricos como Euler o Runge-Kutta, permite solucionar el sistema de ecuaciones diferenciales, graficar las soluciones y tabular los resultados. Por lo tanto, usando este programa se tienen los estimados de los productos con los valores actuales de los parámetros ( P̂ ); ahora en cuanto a las derivadas ∂Pˆi evaluadas en los ∂Θ j parámetros, recordando la definición de derivada, se tiene que: ∂f ( x ) f ( x + ∆x ) − f ( x ) ∆Y = lim ∆x →0 = lim ∆X →0 ∂x ∆x ∆X “El incremento de Y respecto al incremento de X”, para un incremento de X que tiende a 0. Teniendo en cuenta esto, si construimos dos modelos más, idénticos al original, y en uno alteramos el valor del parámetro k1 agregándole un incremento y dejando al parámetro k2 sin cambio; y en el otro modelo idéntico, agregamos el mismo incremento ahora al parámetro k2 dejando a k1 sin cambio (Figura 17); y corremos la simulación. Figura 17: Ejemplo del modelo original (en medio) y los otros modelos con pequeña variación en k1 (abajo) y en k2 (arriba) construidos en el programa Stella. Tomando un incremento muy pequeño (∆X ) por ejemplo de 0.00000000000001 en cada parámetro de cada uno de los dos modelos adicionales, como en este ejemplo, y calculando las salidas en los tres modelos, se puede obtener una aproximación de cada ∂Pˆi (derivada de la salida pronosticada en el i-ésimo experimento respecto al j-ésimo ∂Θ j parámetro). Como solamente se tenía la información de que los valores reales de los parámetros eran positivos menores que la unidad, se dieron como valores iniciales de los parámetros: Valor inicial de k1 : 1 u Valor inicial de k2 : 1 u Se utilizó el algoritmo de Marquardt debido a la poca información que se tenía sobre los parámetros (restricciones), se esperó que el algoritmo ayudara a que la función objetivo convergiera mejor hacia una solución evitando quedar atrapado en un bache. Los datos necesarios para realizar el algoritmo fueron los mismos que se recomendaron en la explicación de este: λ con un valor de 1 × 10 −2 v con un valor de 10 ε con un valor de 1 × 10 −17 Al correr la simulación del modelo con los valores iniciales por medio de métodos numéricos se obtuvo la siguiente información: Producto (P) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 4.375000 1.065814 3.019807 Tiempo 1.0 seg 11.289795 1.421085 7.283063 Tiempo 1.5 seg 17.860735 0.710543 9.237056 Tiempo 2.0 seg 21.847790 0.355271 8.526513 Tiempo 2.5 seg 24.267018 0.000000 6.750156 Y las salidas de los tres modelos resultan prácticamente idénticas, la diferencia es muy pequeña, sin embargo, al calcular las razones de cambio entre las salidas y los parámetros, se puede apreciar que los valores no son insignificantes (tabla anterior). En la siguiente figura se pueden apreciar las salidas de los 3 modelos (original y con variaciones en cada parámetro): Figura 18: Comparación gráfica de las salidas de los tres modelos: 1-modelo original, 2-Modelo con una pequeña variación en el parámetro k1 y 3-Modelo con una pequeña variación en el modelo k2. Ahora se puede empezar a correr el algoritmo de Marquardt. Con estos valores iniciales, se pudo obtener la primera suma de errores cuadrados Φ 0 = 1301.7421432 La diferencia entre las predicciones y los datos reales es significativamente grande, se puede notar en la cantidad de la suma de los errores cuadrados así como se puede apreciar en la siguiente figura: 30 25 20 15 10 5 0 0.0 0.5 1.0 1.5 2.0 2.5 Figura 19: Comparación entre los datos reales (azul) y los datos estimados con los valores iniciales (rosa). Esta diferencia puede conducir el algoritmo hacia un valle de la superficie de la función objetivo no deseado, en donde no se encuentre una solución aceptable o con solución de los parámetros con valores absurdos, por mas que el algoritmo sea muy “inteligente” puede arrojar resultados incongruentes debido a lo lejos que se encuentran los valores iniciales de la realidad (falta de precisión). Es preciso entonces probar con otros valores iniciales. Analizando la Figura 16 y la Figura 19 se puede notar que el parámetro k2 es el parámetro “dominante” en el aumento del producto (P), si el valor del parámetro k2 fuera 0 no habría aumento del producto, permanecería en su valor inicial de 1, solamente habría un aumento y almacenamiento del complejo sustrato (SC) con el flujo de este módulo al módulo del producto con una tasa de cambio 0. La gráfica de los datos reales (Figura 19) presenta un crecimiento muy pequeño del producto, una producción muy pequeña, parecida mas a la gráfica del crecimiento nulo con el parámetro k2 = 0. Por otro lado, si tomamos como 0 el valor del parámetro k2, el parámetro k1 ya deja de tener influencia sobre el cambio de la concentración del producto, las razones de cambio del producto respecto a éste parámetro (derivadas aproximadas) darían todas 0 como se ve en la tabla siguiente; pero el problema estaría en que el parámetro k1 dejaría de tener sentido en el modelo y su uso en el algoritmo nos podría traer problemas como divisiones entre 0. Lo mejor sería realizar un ajuste dando en el modelo el valor más grande que pueda tener el parámetro k1 que es 1, esto es válido ya que el crecimiento no depende de este parámetro siempre que k2 tiene un valor de 0, pero k1 si influye en la salida dado que influye en la formación del complejo y este a su vez influye en el flujo para el aumento del producto. Al dar un valor grande a k1 y uno pequeño a k2, se asegura la independencia del aumento de producto de la variación del parámetro k1. Por lo tanto, tomemos los valores de los parámetros como sigue: Valor inicial de k1 : 1 u Valor inicial de k2 : 0.01 u Al correr la simulación con estos valores iniciales de los parámetros se obtuvo la siguiente tabla: Producto (Pi) ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg Tiempo 1.0 seg Tiempo 1.5 seg Tiempo 2.0 seg Tiempo 2.5 seg 1.028933 2.908784 1.100246 10.125234 1.197898 20.050628 1.311465 31.619152 1.434099 44.009241 Con estos valores iniciales, se pudo obtener la primera suma de errores cuadrados Φ 0 = 0.26031529076 Ahora la suma de los cuadrados de los errores es significativamente menor que la anterior, la diferencia de las salidas se puede apreciar en la gráfica siguiente: 2.00 1.80 1.60 1.40 1.20 1.00 0.80 0.60 0.40 0.20 0.00 0.0 0.5 1.0 1.5 2.0 2.5 Figura 20: gráfica de los datos reales y las salidas generadas por el modelo con los valores iniciales de los parámetros. Los resultados del ajuste por el método del algoritmo de Marquardt con los valores iniciales anteriores fueron los siguientes: Valores iniciales: k1 = 1 k2 = 0.01 Los resultados se muestran a continuación: Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028933 0.022204 2.908784 Tiempo 1.0 seg 1.100246 0.066613 10.125234 Tiempo 1.5 seg 1.197898 0.111022 20.050628 Tiempo 2.0 seg 1.311465 0.133227 31.619152 Tiempo 2.5 seg 1.434099 0.155431 44.009241 Φ 0 = 0.26031529076 Primera iteración: Valores: k1= 0.92231 k2 = 0.00913 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.024627 0.022204 2.708944 Tiempo 1.0 seg 1.086189 0.066613 9.503509 Tiempo 1.5 seg 1.171592 0.111022 19.007018 Tiempo 2.0 seg 1.272089 0.155431 30.220271 Tiempo 2.5 seg 1.381727 0.177636 42.388315 Φ1−1 = 0.33696867017 Valores: k1= 0.92162 k2 = 0.01042 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028100 0.022204 2.708944 Tiempo 1.0 seg 1.098412 0.066613 9.525714 Tiempo 1.5 seg 1.196063 0.133227 19.073632 Tiempo 2.0 seg 1.311015 0.199840 30.331293 Tiempo 2.5 seg 1.436366 0.222045 42.543746 Φ1− 2 = 0.25914288575 < Φ 0 = 0.26031529076 Valores actuales de los parámetros: k1= 0.92162 k2 = 0.01042 Segunda iteración: Valores: k1= 0.88716 k2 = 0.01029 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.026844 0.022204 2.597922 Tiempo 1.0 seg 1.094444 0.088818 9.237056 Tiempo 1.5 seg 1.188903 0.155431 18.585133 Tiempo 2.0 seg 1.300710 0.199840 29.665159 Tiempo 2.5 seg 1.423210 0.222045 41.766590 Φ 2 −1 = 0.2777914389 Valores: k1= 0.88713 k2 = 0.010710 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.027942 0.022204 2.620126 Tiempo 1.0 seg 1.098329 0.066613 9.237056 Tiempo 1.5 seg 1.196712 0.133227 18.585133 Tiempo 2.0 seg 1.313179 0.199840 29.687364 Tiempo 2.5 seg 1.440764 0.244249 41.810999 Φ 2 − 2 = 0.25418848269 < Φ1− 2 = 0.25914288575 Valores actuales de los parámetros: k1= 0.88713 k2 = 0.01071 Tercera iteración: Valores: k1= 0.86539 k2 = 0.0108 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.027573 0.022204 2.553513 Tiempo 1.0 seg 1.097322 0.088818 9.081624 Tiempo 1.5 seg 1.195205 0.155431 18.318680 Tiempo 2.0 seg 1.311496 0.222045 29.332092 Tiempo 2.5 seg 1.439276 0.266454 41.389114 Φ 3−1 = 0.25670216692 Valores: k1= 0.86539 k2 = 0.0109 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.027829 0.022204 2.553513 Tiempo 1.0 seg 1.098230 0.088818 9.081624 Tiempo 1.5 seg 1.197037 0.155431 18.318680 Tiempo 2.0 seg 1.314428 0.199840 29.309888 Tiempo 2.5 seg 1.443413 0.244249 41.344705 Φ 3− 2 = 0.25127301992 < Φ 2 − 2 = 0.25914288575 Valores actuales de los parámetros: k1= 0.86539 k2 = 0.0109 Cuarta iteración: Valores: k1= 0.82972 k2 = 0.01133 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.027882 0.022204 2.464695 Tiempo 1.0 seg 1.098914 0.066613 8.792966 Tiempo 1.5 seg 1.199294 0.133227 17.830182 Tiempo 2.0 seg 1.319283 0.199840 28.688163 Tiempo 2.5 seg 1.451793 0.244249 40.611958 Φ 4 −1 = 0.24138150757 Valores: k1= 0.82972 k2 = 0.01134 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.027906 0.044409 2.486900 Tiempo 1.0 seg 1.099002 0.111022 8.837375 Tiempo 1.5 seg 1.199473 0.177636 17.874591 Tiempo 2.0 seg 1.319570 0.222045 28.710367 Tiempo 2.5 seg 1.452199 0.266454 40.634163 Φ 4 − 2 = 0.2408630873 < Φ 3− 2 = 0.25127301992 Valores actuales de los parámetros: k1= 0.82972 k2 = 0.01134 Quinta iteración: Valores: k1= 0.79108 k2 = 0.01195 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028200 0.044409 2.375877 Tiempo 1.0 seg 1.100602 0.111022 8.482104 Tiempo 1.5 seg 1.203706 0.177636 17.297275 Tiempo 2.0 seg 1.327797 0.244249 27.955416 Tiempo 2.5 seg 1.465627 0.310862 39.768189 Φ 5 −1 = 0.22506956912 Valores: k1= 0.79108 k2 = 0.01195 Los valores de los parámetros propuestos en la iteración 5-2 son aparentemente los mismos que los de la iteración 5-1. Realmente sí existe una diferencia entre los dos vectores pero es menor que 0.00001, es por esta razón que aquí aparecen con la misma cantidad, debido al redondeo a 5 decimales, de cualquier manera, la diferencia resulta insignificante para este ejemplo, y se consideran a partir de ésta, la quinta iteración, como iguales los dos vectores propuestos de cada iteración. Entonces: Φ 5 − 2 = 0.22506956912 Φ 5 − 2 = 0.22506956912 < Φ 4 − 2 = 0.2408630873 Valores actuales de los parámetros: k1= 0.79108 k2 = 0.01195 Sexta iteración: Valores: k1= 0.76779 k2 = 0.01232 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028316 0.044409 2.309264 Tiempo 1.0 seg 1.101355 0.111022 8.304468 Tiempo 1.5 seg 1.205852 0.177636 16.964208 Tiempo 2.0 seg 1.332152 0.244249 27.489122 Tiempo 2.5 seg 1.472945 0.310862 39.190873 Φ 6 −1 = Φ 6 − 2 = 0.21678820215 Φ 6 − 2 = 0.21678820215 < Φ 5 − 2 = 0.22506956912 Valores actuales de los parámetros: k1= 0.76779 k2 = 0.01232 Séptima iteración: Valores: k1= 0.74481 k2 = 0.01269 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028391 0.022204 2.242651 Tiempo 1.0 seg 1.101962 0.088818 8.104628 Tiempo 1.5 seg 1.207708 0.155431 16.608936 Tiempo 2.0 seg 1.336062 0.222045 27.000624 Tiempo 2.5 seg 1.479674 0.288658 38.613557 Φ 7 −1 = Φ 7 − 2 = 0.20938213584 Φ 7 − 2 = 0.20938213584 < Φ 6 − 2 = 0.21678820215 Valores actuales de los parámetros: k1= 0.74481 k2 = 0.01269 Octava iteración: Valores: k1= 0.72684 k2 = 0.01292 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 0.044409 2.198242 Salida que se estudia Tiempo 0.5 seg 1.028284 Tiempo 1.0 seg 1.101839 0.111022 7.949197 Tiempo 1.5 seg 1.207943 0.199840 16.342483 Tiempo 2.0 seg 1.337163 0.288658 26.623148 Tiempo 2.5 seg 1.482173 0.377476 38.147263 Φ8 −1 = Φ8 − 2 = 0.20693570822 Φ8 − 2 = 0.20693570822 < Φ 7 − 2 = 0.20938213584 Valores actuales de los parámetros: k1= 0.72684 k2 = 0.01292 Novena iteración: Valores: k1= 0.7137 k2 = 0.01314 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028301 0.022204 2.153833 Tiempo 1.0 seg 1.102096 0.111022 7.838175 Tiempo 1.5 seg 1.208831 0.199840 16.120438 Tiempo 2.0 seg 1.339145 0.288658 26.312286 Tiempo 2.5 seg 1.485705 0.355271 37.769787 Φ 9 −1 = Φ 9 − 2 = 0.20317468469 Φ 9 − 2 = 0.20317468469 < Φ8 − 2 = 0.20693570822 Valores actuales de los parámetros: k1= 0.7137 k2 = 0.01314 Décima iteración: Valores: k1= 0.69713 k2 = 0.01343 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028325 0.022204 2.109424 Tiempo 1.0 seg 1.102428 0.088818 7.682743 Tiempo 1.5 seg 1.209974 0.199840 15.876189 Tiempo 2.0 seg 1.341696 0.288658 25.979219 Tiempo 2.5 seg 1.490262 0.355271 37.347903 Φ10 −1 = Φ10 − 2 = 0.19837627418 Φ10 − 2 = 0.19837627418 < Φ 9 − 2 = 0.20317468469 Valores actuales de los parámetros: k1= 0.69713 k2 = 0.01343 Decimoprimera iteración: Valores: k1= 0.683220 k2 = 0.013670 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028315 0.044409 2.087219 Tiempo 1.0 seg 1.102599 0.111022 7.571721 Tiempo 1.5 seg 1.210717 0.222045 15.654145 Tiempo 2.0 seg 1.343499 0.310862 25.668356 Tiempo 2.5 seg 1.493623 0.399680 36.992631 Φ11−1 = Φ11− 2 = 0.19493239144 Φ11− 2 = 0.19493239144 < Φ10 − 2 = 0.19837627418 Valores actuales de los parámetros: k1= 0.69713 k2 = 0.01343 Decimosegunda iteración: Valores: k1= 0.67022 k2 = 0.01392 Producto (Pi) ∆Pi ∆k1 ∆Pi ∆k 2 Salida que se estudia Tiempo 0.5 seg 1.028340 0.044409 2.042810 Tiempo 1.0 seg 1.102885 0.133227 7.460699 Tiempo 1.5 seg 1.211676 0.244249 15.476509 Tiempo 2.0 seg 1.345625 0.355271 25.401903 Tiempo 2.5 seg 1.497421 0.444089 36.637360 Φ12 −1 = Φ12 − 2 = 0.1910097823 Φ12 − 2 = 0.1910097823 < Φ11− 2 = 0.19493239144 Término del ajuste Valores ajustados de los parámetros: k1= 0.67022 k2 = 0.01392 Parámetros ajustados: k1 = 0.67022 k2 = 0.01392 Φ = 0.1910097823 producto (moles/segundo) Datos reales vs Ajuste 2.00 1.80 1.60 1.40 1.20 1.00 0.80 0.60 0.40 0.20 0.00 0.5 1.0 1.5 2.0 2.5 tiempo (segundos) Figura 21: Gráfica de los datos reales y las predicciones con el ajuste de los parámetros. 5. DISCUSIÓN 5.1. AJUSTE DE PARÁMETROS EN UN MODELO ESTÁTICO Como se mencionó anteriormente, los modelos estáticos encontrados comúnmente son pequeños modelos sencillos, fáciles de ajustar. Los problemas mas significantes encontrados consisten en falta de linealidad en los parámetros, lo mas recomendable es buscar la linealización de este modelo y ajustar por mínimos cuadrados lineales. Si el modelo resulta muy difícil de linealizar o si no existe manera aceptable de lograrlo, se puede todavía utilizar algún algoritmo sencillo de ajuste relativo a los mínimos cuadrados no-lineales. En la mayoría de los casos, los modelos estáticos no presentan mayor problema en su ajuste, casi siempre se obtienen valores precisos y de acuerdo al tipo de ecuación, se puede obtener una solución única. 5.2. AJUSTE DE PARÁMETROS EN UN MODELO EMPÍRICO El tipo de modelos empíricos que se encuentran comúnmente en la modelación de los procesos biológicos consisten en modelos con solución explícita, esto se debe a la naturaleza de este tipo de modelos. Si se requiere modelar un sistema con un modelo empírico, se deben observar los datos, la manera en que se distribuyen y asignarles una ecuación que describa su comportamiento, existen muchos modelos construidos en forma explícita, y como los procesos biológicos son relativamente similares muchos modelos pueden representar varios sistemas. Escoger un modelo sencillo con ecuaciones explícitas es lo que generalmente se hace cuando se desea realizar un ajuste en este tipo de modelos. Si se trata de modelar de manera empírica se tiene la opción de escoger un modelo que sea lineal en los parámetros que se van a ajustar. El método de ajuste que se recomienda para este tipo de modelo es el de mínimos cuadrados no-lineales, ya que la no-linealidad es un problema que comúnmente se encuentra en este tipo de modelos. El que se recomiende que se escoja un modelo sencillo no quiere decir que se tenga que escoger un polinomio, por ejemplo, los modelos que existen para el crecimiento (Gompertz, Logístico, Bertalanffy) son adecuados en cuanto a que tienen forma explícita y se puede construir un programa que haga el cálculo de las derivadas de la ecuación y los cálculos de los resultados en cualquier programa sencillo e introducir los valores en el algoritmo de Gauss-Newton o de Marquardt, y obtener el ajuste de manera sencilla. Para el ajuste de parámetros en esta sección se utilizó como se mencionó anteriormente el método de Gauss-Newton, un método sencillo de implementar, y con este método se obtuvieron ajustes adecuados que permitieron tomar decisiones y resolver los problemas que se tenían. 5.3. AJUSTE DE PARÁMETROS EN UN MODELO MECANÍSTICO DINÁMICO Los modelos mecanísticos dinámicos son los que explican mejor un sistema y tienen mas reconocimiento científico que los otros, además son los modelos mas usados o al menos los que mas se desean usar. Desafortunadamente, el tipo de ajuste para estos modelos es también el más delicado de los tres tipos mas comunes de modelos estudiados (estáticos, empíricos y mecanísticos dinámicos). El tipo de ajuste que se necesita es generalmente para modelos no-lineales en los parámetros (mínimos cuadrados no-lineales), y como los métodos mas eficientes que se tienen son los métodos de iteración (GaussNewton, Levenberg-Marquardt y sus variantes), estos incluyen desde el principio el problema de los valores iniciales, que son necesarios para obtener los nuevos parámetros, mejorados, en la primera iteración y así sucesivamente hasta obtener una vector solución de los parámetros, esta solución se obtiene en base a un criterio de minimización de errores que como se vio anteriormente, puede no ser la única solución y aún puede no ser la óptima, y todavía mas, puede ser que ni siquiera se supiera si es o no solución única, o si es o no superable. Los métodos de ajuste de parámetros en modelos dinámicos mecanísticos generalmente consisten en la minimización de los errores cuadrados de las predicciones (función objetivo), y cuya función, como se vio antes, comúnmente se encuentra de manera implícita dentro de un sistema de ecuaciones diferenciales que representan el sistema que se está modelando, y precisamente al no conocer la función de predicción, obviamente no puede utilizarse un método que necesite de la ecuación explícita de esta como la regresión lineal, o las transformaciones lineales. Aunque pueden obtenerse fácilmente las salidas de el modelo con todos los valores de los parámetros por medio de métodos numéricos como Euler o Runge-Kutta, no se conoce la interacción entre las variables, las constantes y los parámetros en forma de función matemática de estas salidas, y al no tenerse esta ecuación que represente la variable que se modela en función de todos los elementos que intervienen de alguna manera en su salida, muchas técnicas de ajuste resultan inservibles; también debido a este problema, el de desconocer la ecuación de la variable que se quiere predecir en función de los elementos principales, se requiere de un tipo de método que sea capaz de mover el vector inicial de los parámetros (valores iniciales) hacia un vector mejorado con un criterio de error mínimo de predicción, se necesita que este método sea capaz de arrojar siempre una solución aceptable, que necesite no mas de lo que se tenga disponible: los datos reales del sistema y el modelo que representa dicho sistema, ya sea en forma de ecuaciones diferenciales o su equivalente en diagramas por módulos. Los dos métodos que se estudiaron para el ajuste de este tipo de modelos son los mas conocidos y reconocidos en el tema de ajustes de parámetros por mínimos cuadrados no-lineales el método de Gauss-Newton y el método de Levenberg-Marquardt. Estos métodos resultan muy apropiados para este tipo de problema, requieren solamente un vector de valores iniciales de los parámetros para comenzar a iterar, los datos reales y una matriz de las razones de cambio de la salida respecto a cada parámetro (derivadas) que por medio de los mismos métodos numéricos se pueden obtener sin mayor problema. Y por último lo que necesitan estos dos métodos son simples especificaciones de iteración como número máximo de iteraciones, criterio mínimo para detener el algoritmo y dar la solución, etc. Marquardt vs Gauss-Newton El algoritmo de Marquardt comparte con los métodos del gradiente la habilidad de converger de un estimador inicial el cual puede estar incluso fuera de la región de convergencia de otros métodos y comparte con el método de las series de Taylor la habilidad de dirigirse hacia los valores convergentes rápidamente después de que la vecindad de los valores convergentes ha sido alcanzado. De este modo, el método combina las mejores características de sus predecesores mientras evita sus más serias limitaciones. El método de Marquardt es más difícil de implementar que el algoritmo de GaussNewton, dado que uno debe decidir como manipular ambos, el factor condicionante k y el factor de paso λ; sin embargo es implementado en muchos programas de mínimos cuadrados no-lineales. 6. CONCLUSIONES Y RECOMENDACIONES Para ajustar un modelo estático se recomienda usar el método de mínimos cuadrados lineales, estos modelos son generalmente muy simples, se refieren a sistemas muy pequeños y a problemas sin mayores dificultades. Si el modelo no presenta linealidad en los parámetros, se recomienda buscar un método que permita linealizar la función, y luego aplicar el criterio de los mínimos cuadrados. En caso de encontrarse una manera de linealizar el modelo, se puede usar el criterio de mínimos cuadrados para modelos no-lineales el cual resolverá el problema. Se recomienda recurrir al método más sencillo. Para los ajustes de los modelos empíricos, se recomienda encontrar la solución explícita de la ecuación, si no es que ya se tiene, ya que en la mayoría de los problemas se tienen modelos formados de ecuaciones con solución explícita. Con la ecuación explícita se ajustan los parámetros con alguno de los métodos recomendados en este trabajo (mínimos cuadrados lineales, mínimos cuadrados no lineales: Gauss-Newton o Marquardt), si el modelo no es tan complicado y de difícil convergencia se recomienda utilizar el método de Gauss-Newton, en cambio, si el modelo no es tan sencillo y al intentar ajustar los parámetros con Gauss-Newton no se logra una convergencia o tarda demasiado en obtenerse la solución, entonces se recomienda el algoritmo de Marquardt. Si se logra un programa que contenga el algoritmo de manera que los cálculos estén automatizados (integración de los métodos numéricos con los algoritmos de ajustes), disminuyendo lo tedioso de cada iteración, se recomienda usar el algoritmo de Marquardt ya que consiste como se explicó antes en un método que involucra las virtudes de otros métodos, entre ellos el de Gauss-Newton, evitando sus deficiencias. Afortunadamente existen varios programas como estos, entre ellos están: Dynafit y KyPlot. Para el ajuste de parámetros en un modelo mecanístico dinámico se recomienda trabajar con soluciones numéricas, el programa Stella es muy útil para conseguir los resultados que necesita el algoritmo de Marquardt para obtener los ajustes adecuados como se vio anteriormente. Para todos los métodos es importante realizar un análisis de sensibilidad para saber si el modelo es único, además de conocer, por más sencillo que sea el modelo, algunas hipótesis que nos haga tener una idea de lo que puede estar pasando con los parámetros, si los valores que se obtienen son los óptimos y si pueden ser únicos. Y después de lograr obtener los valores adecuados de los parámetros del modelo, interpretar los valores que se ajusten en el modelo dentro del sistema. 7. REFERENCIAS Adler, F R (1998) "Introduction to discrete-time dynamic systems" En: Modeling the Dynamics of Life: Calculus and Probability for Life Scientists. pp 1-117. Brooks/Cole Publishing Company. Baldwin, R L (1995) Modeling Ruminant Digestion and Metabolism. Chapman & Hall. Bates, D M y Watts, D G (1988) Nonlinear regression analysis and its applications. John Wiley & Sons. Box, G E P (1999) Estadística para investigadores, introducción al diseño de experimentos, análisis de datos y construcción de modelos. Editorial Reverté. Barcelona, España. Brown, D (1994) Models in biology: mathematics, statistics and computing. Babraham Institute, Cambridge, UK. Contreras J A (2002) Introducción a la implementación de controladores pid análogos, http://www.automatas.org/hardware/teoria_pid.htm Cornish-Bowden, A y Wharton, C W (1988) Enzyme kinetics. IRL Press. Davis, P (1993) “Levenberg-Marquart methods and nonlinear estimation” En: Journal of SIAM. 26. Draper, N R y Smith, H (1981) Applied regression analysis. John Wiley & Sons. New York. Elliot, M (2000) “Sensitivity analysis in optimization of time-distributed parameters for a coronary circulation model”. Environmental Technology 21 10:1181-1191. France, J (1984) Mathematical models in agriculture: A quantitative approach to problems in agriculture & related sciences. Biomathematics division. Grassland Research Institute. Hurley, Maindenhead. Giordano, F R (1997) A first course in mathematical modelling. 2nd edition, Brooks/Cole publishing company. Pacific Grove, CA, USA. González Sáenz C A (2001) “Modelos matemáticos aplicados al estudio de poblaciones ruminales” Universidad Juárez autónoma de tabasco. División académica e ciencias básicas. Gutiérrez, J M y Sánchez F (1998) Matemática para las ciencias naturales. Aportaciones matemáticas México. Harrington, H J y Tumay, K (2000) "Introduction to process simulation" En: Simulation Modeling Methods. pp 1-32. The McGraw-Hill Companies, Inc. Jiang, B (2000) Parameters of accommodation and vergence systems determined by a random search optimisation method. IOVS 41 4 :S819 March 15. Levenberg, K (1944) A method for the solution of certain problems in least squares. Quart. Appl. Math., 2:164-168. Levin, M (1980) “Sensitivity analysis in optimisation of time-distributed parameters for a coronary circulation model” En: Medical Progress Through Technology 7:119-124. López, S (1999) A generalized Michaelis-Menten equation for the analysis of growth. Departamento de producción animal, Universidad de León, E-24007 León, Spain. Mander A (1999) Sensitivity analysis in optimisation of time-distributed parameters for a coronary circulation model. Statistics in Medicine 18 20:2709-2722. Marquardt, D W (1963) An algorithm for least-squares estimation of non-linear parameters. Journal of SIAM, 11:431-441. McWilliam S (1998) Test of a digestion optimisation model : Effects of costs of feeding on digestive parameters. Physiological Zoology 71 2:168-178 March-April. Montgomery D C y Peck E A (1992) Introduction to linear regression analysis 2nd edition USA Wiley and sons, inc (toñoRegression-least squarestoño) Panikov, N S (1995) Microbial growth kinetics, 1st edition. Chapman & Hall. London, UK. Rawn, D J (1989) Bioquímica. 1, Interamericana, McGraw-Hill, Madrid, España. Richter, O (1990) Parameter estimation in ecology: the link between data and models. VCH Verlagsgesellschaft mbH. D-6940 Weinheim. Federal Republic Of Germany. Germany. Saucedo-Castañeda, G y Soto, O (1999) Fundamentos de Cinética enzimática. Departamento de biotecnología, CBS Universidad Autónoma Metropolitana-Iztapalapa, México. Salett, M y Hein, N (1996) Modelación matemática: Estrategia para enseñar y aprender matemáticas. Departamento de matemática-CCEN. Universidad Regional de BlumenauFURB-Brasil. Seber, G A F y Wild, C J (1989) Nonlinear regression. Wiley & Sons, New York. Stryer, L (1981) Bioquímica, 2ª Edición. Editorial Reverté S-A, Barcelona. Capítulo 6. Vargas, L M (2002) “Desarrollo de un Modelo Dinámico para la Simulación de la Producción Bovina de Carne en el Trópico” Facultad de Medicina Veterinaria y Zootecnia. Universidad Autónoma de Yucatán, México. Zill, D G (1997) Ecuaciones diferenciales, con aplicaciones del modelado. International Thomson editores, México. Zwietering, M H y Jongenburger, F M (1990) “Modeling of the bacterial growth curve” En: Applied and Environmental Microbiology 56:1875-1881. Italia. http://www.uv.es/~baeza/optimi.html 8. ANEXO {/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+} {\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+\+*+} {/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+/+*+} Program Marquardt_Algorithm; Uses Crt; {+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+} Const Niterations = 12; Niterationsr = 12; {------------------------} N = 5; { Number of essays } K = 2; { Number of parameters } M= 1; { Number of variables } {------------------------} NK = 5; { M x (K,N) } v = 10; y0 = Pi/4; {------------------------} Type Matrix = Record Mx, Nx : Byte; Mtrx : array[1..NK,1..NK] of Real End; Var X, Y : Matrix; {Data} P, A, f, Y_f, g : Matrix; {For Computing} Ax, gx : Matrix; {Scaled Matrix} Dx, D, b, bA, bB : Matrix; {Scaled Matrix-Corrections & Vector} R, Id : Matrix; {Auxiliar Matrix & Identity} IDlambda, Y_PLUS : Matrix; {Virtual Matrix} Ytemp : Matrix; {Saves the winner matrix} I, J : Byte; IJK, IJKr : LongInt; Lambdant : Real; Phir, Phi1, Phi2, Phi3 : Real; yamma, Q, Kr : Real; {For variation of the test iii} Correlation : Boolean; {in Marquardt's algorithm} {=============================================================} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {=============================================================} Procedure MMult(U,W: Matrix); Var M1,M2,M3 : Byte; Begin R.Mx:= U.Mx; R.Nx:= W.Nx; {--------------------------------------------------} For M1:= 1 To R.Mx Do For M2:= 1 To R.Nx Do R.Mtrx[M1,M2]:= 0; {--------------------------------------------------} For M1:= 1 To U.Mx Do For M2:= 1 To W.Nx Do For M3:= 1 To U.Nx Do R.Mtrx[M1,M2]:= R.Mtrx[M1,M2] + U.Mtrx[M1,M3]*W.Mtrx[M3,M2]; {--------------------------------------------------} End; {*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*} Procedure MInv(U:Matrix); Var M1,M2,M3 : Byte; Begin {--------------------------------------------------} For M1:= 1 To U.Mx Do Begin For M2:= 1 To U.Mx Do R.Mtrx[M1,M2]:= 0; R.Mtrx[M1,M1]:= 1; End; {--------------------------------------------------} For M1:= 1 To R.Mx Do For M2:= R.Mx DownTo 1 Do Begin R.Mtrx[M1,M2]:= R.Mtrx[M1,M2]/U.Mtrx[M1,M1]; U.Mtrx[M1,M2]:= U.Mtrx[M1,M2]/U.Mtrx[M1,M1]; {--------------------------------------------------} For M3:= 1 To M1-1 Do Begin R.Mtrx[M3,M2]:= R.Mtrx[M3,M2]-U.Mtrx[M3,M1]*U.Mtrx[M1,M2]; U.Mtrx[M3,M2]:= U.Mtrx[M3,M2]-U.Mtrx[M3,M1]*U.Mtrx[M1,M2]; End; {--------------------------------------------------} For M3:= M1+1 To R.Mx Do Begin R.Mtrx[M3,M2]:= R.Mtrx[M3,M2]-U.Mtrx[M3,M1]*U.Mtrx[M1,M2]; U.Mtrx[M3,M2]:= U.Mtrx[M3,M2]-U.Mtrx[M3,M1]*U.Mtrx[M1,M2]; End; {--------------------------------------------------} End; R.Mx:= U.Mx; R.Nx:= U.Mx; End; {+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+} Procedure MTrp(U:Matrix); Var M1,M2 : Byte; Begin {--------------------------------------------------} For M1:= 1 To U.Mx Do For M2:= 1 To U.Nx Do R.Mtrx[M2,M1]:= U.Mtrx[M1,M2]; {--------------------------------------------------} R.Mx:= U.Nx; R.Nx:= U.Mx; End; {*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*} Procedure MAdditive(U,V: Matrix; Typ: Byte); Var M1,M2 : Byte; Begin {--------------------------------------------------} If (Typ = 1) Then For M1:= 1 To U.Mx Do For M2:= 1 To U.Nx Do R.Mtrx[M1,M2]:= U.Mtrx[M1,M2]+V.Mtrx[M1,M2] Else For M1:= 1 To U.Mx Do For M2:= 1 To U.Nx Do R.Mtrx[M1,M2]:= U.Mtrx[M1,M2]-V.Mtrx[M1,M2]; {--------------------------------------------------} R.Mx:= U.Mx; R.Nx:= U.Nx; End; {=============================================================} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {=============================================================} Procedure PrintMatrx(U:Matrix); Var M1, M2 : Byte; Begin WriteLn; WriteLn; For M1:= 1 To U.Mx Do Begin WriteLn(' '); For M2:= 1 To U.Nx Do Write(' ',U.Mtrx[M1,M2]); WriteLn; End; End; Procedure AssignHeaders; Begin X.Mx:= N; X.Nx:= M; Y.Mx:= N; Y.Nx:= 1; P.Mx:= N; P.Nx:= K; A.Mx:= K; A.Nx:= K; b.Mx:= K; b.Nx:= 1; f:= Y; Y_f:= f; g:= b; Ax:= A; gx:= g; Dx:= b; D:= Dx; Id:= A; IDlambda:= A; Y_PLUS:= Y; End; {=============================================================} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {=============================================================} Procedure FilIdMtrX(N:Byte); Var M1, M2 : Byte; Begin Id.Mx:= N; Id.Nx:= N; For M1:= 1 To N Do Begin For M2:= 1 To N Do Id.Mtrx[M1,M2]:= 0; Id.Mtrx[M1,M1]:= 1; End; End; {=============================================================} {+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+} {*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*} {=============================================================} Procedure GetInitialb; Var M1 : Byte; Begin ClrScr; b.Mx:= K; b.Nx:= 1; For M1:= 1 To K Do Begin Write(' Dame el Par metro #',M1,' inicial: '); ReadLn(b.Mtrx[M1,1]); WriteLn; End; End; {----------------------------------------------------------------------------} Procedure GetY_X_DATA; Var M1, M2 : Byte; Begin ClrScr; For M1:= 1 To N Do Begin Write(' Ingresar DATOS REALES del experimento ',M1,' o tiempo ',M1,'.'); WriteLn; WriteLn; For M2:= 1 To M Do Begin WriteLn; Write(' Valor de X ',M2,' del tiempo ',M1,': '); ReadLn(X.Mtrx[M1,1]); End; WriteLn; Write(' Valor REAL de Y ',M1,': '); ReadLn(Y.Mtrx[M1,1]); WriteLn; End; End; {----------------------------------------------------------------------------} Procedure Get_Estimated_Y; Var M1 : Byte; Begin WriteLn; Write(' Ingresa los estimados con los valores actuales de los par metros'); WriteLn; For M1:= 1 To N Do Begin WriteLn; Write(' Valor ESTIMADO del experimento ',M1,': '); ReadLn(f.Mtrx[M1,1]); End; End; {----------------------------------------------------------------------------} Procedure Get_F; Var M1, M2 : Byte; Begin ClrScr; WriteLn('Los valores actuales de los ',K,' par metros son: '); WriteLn; For M1:= 1 To K Do WriteLn(' Par metro ',M1,': ',b.Mtrx[M1,1]:0:5); WriteLn; ReadKey; WriteLn('Ingresa los estimados de Y con estos valores de los par metros...'); For M1:= 1 To N Do Begin WriteLn; Write(' X = ',X.Mtrx[M1,1]:0:5,' en el experimento ',M1); End; WriteLn; For M1:= 1 To N Do Begin WriteLn; Write('Estimado del experimento ',M1,': '); ReadLn(f.Mtrx[M1,1]); End; Write(' G R A C I A S !!!!! :) _ :) '); End; {----------------------------------------------------------------------------} Procedure GetP_nxk; Var M1, M2 : Byte; Begin WriteLn; WriteLn; WriteLn(' DATOS DE LA MATRIZ "P" D(fi)/D(bj) '); WriteLn(' "Cambio de Y respecto al Cambio de c/par metro'); WriteLn(' (obtenerlos de Stella)'); WriteLn; For M1:= 1 To N Do Begin WriteLn; WriteLn(' Fila ',M1,'...'); For M2:= 1 To K Do Begin WriteLn; Write(' Ingresar valor P[',M1,',',M2,']: '); ReadLn(P.Mtrx[M1,M2]); End; End; End; Procedure Get_A; Begin GetP_nxk; MTrp(P); MMult(R,P); A:= R; End; Procedure DoY_f; Var M1 : Byte; Begin { Dof;} { Get_F;} For M1:= 1 To N Do Y_f.Mtrx[M1,1]:= Y.Mtrx[M1,1]-f.Mtrx[M1,1]; End; Procedure Get_g; Begin MTrp(P); DoY_f; MMult(R,Y_f); g:= R; End; Procedure Do_Ax; Var M1, M2 : Byte; Begin Ax:= A; For M1:= 1 To K Do For M2:= 1 To K Do Ax.Mtrx[M1,M2]:= Ax.Mtrx[M1,M2]/(sqrt(A.Mtrx[M1,M1]*A.Mtrx[M2,M2])); End; Procedure Do_gx; Var M1 : Byte; Begin gx:= g; For M1:= 1 To K Do gx.Mtrx[M1,1]:= gx.Mtrx[M1,1]/(sqrt(A.Mtrx[M1,M1])); End; Procedure Do_D; Var M1 : Byte; Begin D:= Dx; For M1:= 1 To K Do D.Mtrx[M1,1]:= D.Mtrx[M1,1]/(sqrt(A.Mtrx[M1,M1])); End; Procedure ID_lambda(lambdant: Real); Var M1, M2 : Byte; Begin IDLambda.Mx:= K; IDLambda.Nx:= K; For M1:= 1 To K Do Begin For M2:= 1 To K Do IDLambda.Mtrx[M1,M2]:= 0; IDLambda.Mtrx[M1,M1]:= lambdant; End; End; {*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*} {+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+*+} {---------------------------------------------} Function GetFi(lambdant: Real): Real; Var M1, M2 : Byte; PsiPhi : Real; Begin PsiPhi:= 0; ID_lambda(lambdant); MAdditive(Ax,IDlambda,1); MInv(R); MMult(R,gx); Dx:= R; Do_D; MAdditive(b,D,1); bA:= R; { ClrScr;} WriteLn; WriteLn; WriteLn; WriteLn; WriteLn; WriteLn(' Valores de los par metros con lambda = ',lambdant:0:9); For M1:= 1 To K Do Begin Write(' b-',M1,': ',bA.Mtrx[M1,1]:0:5); WriteLn; End; WriteLn; ReadKey; WriteLn(' Ahora, Calcula e ingresa los estimados de Y por favor...'); For M1:= 1 To N Do Begin Write(' Estimado de Y para las X del experimento o tiempo ',M1,': '); ReadLn(Y_PLUS.Mtrx[M1,1]); End; MAdditive(Y,Y_Plus,7); For M1:= 1 To N Do PsiPhi:= PsiPhi+R.Mtrx[M1,1]*R.Mtrx[M1,1]; GetFi:= PsiPhi; End; {=============================================================} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {=============================================================} Var aaa,bbb,ccc : Real; Begin { MaRqUaRdT's AlGoRiThM } TextBackGround(15); ClrScr; Window(2,2,79,24); TextColor(White); TextBackGround(0); ClrScr; Window(4,4,79,21); GoToXY(30,9); Write('PRESS ENTER'); If (Ord(ReadKey) = 0) Then Correlation:= True Else Correlation:= False; IJK:= 0; IJKr:= 0; Lambdant:= 0.01; FilIdMtrX(K); AssignHeaders; {---------------------------------------------} { GetY_X_DATA;} X.Mtrx[1,1]:= 0.5; X.Mtrx[2,1]:= 1.0; X.Mtrx[3,1]:= 1.5; X.Mtrx[4,1]:= 2.0; X.Mtrx[5,1]:= 2.5; {************} Y.Mtrx[1,1]:= 1.035406; Y.Mtrx[2,1]:= 1.139099; Y.Mtrx[3,1]:= 1.310394; Y.Mtrx[4,1]:= 1.551824; Y.Mtrx[5,1]:= 1.868076; { END } GetInitialb; Get_Estimated_Y; {---------------------------------------------} Phir:= 0{initial b-value}; MAdditive(Y,f,7); For I:= 1 To N Do Phir:= Phir+R.Mtrx[I,1]*R.Mtrx[I,1]; {---------------------------------------------} Correlation:= False; Repeat {---------------------------------------------} ClrScr; WriteLn('Valores actuales de los par metros: '); WriteLn; For I:= 1 To K Do WriteLn('Par metro K',I,'= ',b.Mtrx[I,1]:0:5); WriteLn; Write('Suma de errores cuadrados= ',Phir:0:12); ReadKey; Get_A; Get_g; { To Can build next } Do_Ax; Do_gx; { To correct the vector of parameters } {To Get The Lambda} Phi1:= GetFi(Lambdant); {With new parameters in bB} {---}Ytemp:= Y_PLUS; bB:= bA; WriteLn; Write('Suma de errores cuadrados= ',Phi1:0:12); ReadKey; Phi2:= GetFi(Lambdant/v); {With new parameters in bA} WriteLn; Write('Suma de errores cuadrados= ',Phi2:0:12); ReadKey; {---------------------[C O M P A R I S O N S]---------------------------} {*} If (Phi2<=Phir) Then Begin Lambdant:= Lambdant/v; WriteLn(' Fi con lambda = ',Lambdant,' MENOR que Fi anterior'); WriteLn; WriteLn(' ',Phi2:0:12,' < ',Phir:0:12,' '); ReadKey; Phir:= Phi2; f:= Y_PLUS; b:= bA; {Save parameters' vector} End {*} Else If ((Phi2>Phir) And (Phi1<=Phir)) Then Begin WriteLn(' Fi con lambda = ',Lambdant,' MENOR que Fi anterior'); WriteLn; WriteLn(' ',Phi1:0:12,' < ',Phir:0:12,' '); ReadKey; Phir:= Phi1; f:= Ytemp; b:= bB; {Save parameters' vector} End {*} Else If ((Phi2>Phir) And (Phi1>Phir) And Not(Correlation)) Then Begin Write(' Calculando lambda con potencia...'); ReadKey; Repeat Lambdant:= Lambdant*v; Phi1:=GetFi(Lambdant); Inc(IJKr,1); Until ((Phi1<=Phir) Or (IJKr=Niterationsr)); If (Phi1<=Phir) Then Begin WriteLn(' Fi con lambda = ',Lambdant,' MENOR que Fi anterior'); WriteLn; WriteLn(' ',Phi1:0:12,' < ',Phir:0:12,' '); ReadKey; Phir:= Phi1; f:= Y_PLUS; IJKr:= 0; b:= bA; {Save parameters' vector} End End Else Begin ID_Lambda(lambdant); MAdditive(A,IDLambda,1); MTrp(R); MMult(R,g); { dT:= gT(A + lambda*I) } Ytemp:= R; { This (Ytemp) is d0[kx1] } {***} MTrp(Ytemp); MMult(R,g); { dT*g } Q:= R.Mtrx[1,1]; { Upper side of the cosine of yamma } MTrp(Ytemp); { dT } MMult(R,Ytemp); { dT . d } Q:= Q/R.Mtrx[1,1]; MTrp(g); MMult(R,g); Q:= Q/R.Mtrx[1,1]; aaa:= 1-sqr (Q); bbb:= sqrt(aaa); ccc:= bbb/Q; yamma:= {ArcCos(x);} ArcTan (sqrt (1-sqr (Q)) /Q); If (yamma >= Pi/4) Then Kr:= 1 Else Kr:= 0.01; MTrp(Ytemp); For I:= 1 To K Do bA.Mtrx[I,1]:= b.Mtrx[I,1]+Kr*R.Mtrx[I,1]; { b:= b + Kr*d } bA:= b; End; {*} {---------------------[C O M P A R I S O N S]---------------------------} {---------------------------------------------} {---------------------------------------------} Inc(IJK,1); Until (IJK = Niterations); End. {=============================================================} {+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++} {=============================================================}