Métodos numéricos (para ODE/PDE) que podrían tomar soluciones aproximadas/buenas conjeturas iniciales y refinarlas aún más hasta cierta precisión

Actualmente estoy jugando con una vieja computadora analógica, que podría resolver ODE/PDEs dependientes del tiempo bastante rápido, sin saltos de tiempo; por lo tanto, no hay problemas de convergencia causados ​​por el paso de tiempo debido a su naturaleza informática. Pero el problema con las soluciones de la computadora analógica es que no son precisas debido a las limitaciones físicas. Tengo mucha curiosidad de que: ¿existe algún método/solucionador numérico que pueda tomar la solución aproximada de la computadora analógica (en el dominio del tiempo) para procesarla y generar una solución más precisa?

Permítanme dar un ejemplo de resolución de ODE de segundo orden que describe el movimiento de un amortiguador de masa-resorte. La ecuación es la siguiente:

X = 0.2 X 0.4 X ; X ( 0 ) = 1 , X ( 0 ) = 0 ; t s t o pag = 60 s .
Para resolver la ecuación anterior en una computadora analógica, necesitamos mapear la ecuación anterior a un sistema eléctrico. Por lo general, una computadora analógica podría realizar varias operaciones aritméticas básicas en el dominio del tiempo continuo, por ejemplo, suma, resta, multiplicación, integración, etc. La salida de un integrador representa una variable de estado de la EDO; la entrada de ese integrador representa la derivada temporal de primer orden correspondiente. Al configurar los bloques básicos de computación en bucles de retroalimentación, podríamos mapear la ecuación de la siguiente manera: (yo uso Simulink)

ODE de segundo orden asignada a una computadora analógica

Después de cargar las condiciones iniciales en los integradores, puede dejar que la computadora analógica funcione y resuelva. Si mide la señal eléctrica a la salida del integrador1, obtendrá la solución de X ( t ) en el dominio del tiempo:

Solución de computadora analógica de x(t)

Pero, debido a las limitaciones físicas (por ejemplo, ruido eléctrico, compensaciones), la solución de X ( t ) no es exacto Lo que estoy buscando es un método numérico que pueda tomar la solución anterior de X ( t ) por computadora analógica, por ejemplo, las soluciones X ( t = 1 s ) , X ( t = 2 s ) , X ( t = 3 s ) , X ( t = 4 s ) . . . X ( t = 60 s ) , comience con estos puntos de solución aproximados y refine aún más estos puntos de solución X ( t = 1 s ) , . . . X ( t = 60 s ) con una precisión mucho mayor.

(Esta ODE de segundo orden es solo un caso simple con fines ilustrativos; tiene una expresión analítica de soluciones. El caso más general sería ODE no lineal sin solución analítica).

¡¡Gracias de antemano!! ¡Cualquier pensamiento y sugerencia es muy bienvenido y apreciado!

Creo que quieres decir que conviertes la ODE en algo sin pasos de tiempo, lo que tendría que ser más o menos un sistema de ecuaciones algebraicas . Existen muchos métodos de este tipo; por ejemplo, los métodos espectrales son de este tipo. (En el contexto PDE, los métodos totalmente espectrales son de este tipo, mientras que los métodos parcialmente espectrales no lo son).
@GiuseppeNegro Agregaré un ejemplo más adelante. Podría publicar cifras porque me acabo de registrar :-)
@Ian Hola Ian, en realidad, las computadoras analógicas convierten la ODE original en el sistema dinámico eléctrico correspondiente, y la respuesta del sistema es la solución de la ODE. No pude agregar cifras a mi hilo ahora debido a mi baja reputación. Aquí hay un enlace que podría brindarle más información sobre computadoras analógicas: analogmuseum.org/library/eaiapproach.pdf
En realidad, es más o menos lo mismo, porque un sistema eléctrico real no tiene un perfil de frecuencia ideal (es imposible diseñar una máquina que transmita todas las frecuencias exactamente por igual), por lo que una solución analógica para, digamos, X + X = pecado ( t ) , X ( 0 ) = 0 , X ( 0 ) = 0 es muy parecida a una solución espectral.
Estoy de acuerdo con Giuseppe en que esta pregunta probablemente sea demasiado general en este momento... ¿estás resolviendo una ODE o una PDE? ¿De qué tipo? Su computadora analógica actúa como un buen preacondicionador para el componente de baja frecuencia de la solución; la mayoría de los métodos numéricos (el apropiado depende del tipo de problema) podrán aprovechar esto.
@Ian Hola Ian, acabo de actualizar mi publicación con cifras. Las computadoras analógicas no convierten las soluciones del dominio del tiempo en el dominio de la frecuencia.
@user7530 Hola, acabo de subir la figura para el ejemplo. Estoy resolviendo ecuaciones diferenciales dependientes del tiempo. En mi opinión, las computadoras analógicas solo brindan soluciones aproximadas en el dominio del tiempo, no precondicionadores para fines de remodelación.
@Nate Internamente no lo hacen, tienes razón. Pero la fuente de su error se describe más directamente en el dominio de la frecuencia: en términos generales, un circuito como el suyo tiene el efecto de un filtro de paso bajo además del proceso real en cuestión. Como resultado, las características cualitativas del error en una solución de computadora analógica y una solución de método espectral son muy similares.
@Ian Gracias por mencionar esto. Tengo poca experiencia con el método espectral para resolver ODE. Necesito estudiarlo más para comentar esto. Pero mis sentimientos iniciales son que son métodos completamente diferentes.

Respuestas (3)

Si tiene una buena estimación inicial, el método de Newton es difícil de superar. La convergencia cuadrática significa que el número de lugares decimales (binarios) precisos se duplica con cada iteración. Esto supone que la primera derivada cambia lentamente entre su estimación y la solución real, lo que significa que la segunda derivada multiplicada por su error (entre la estimación y la respuesta real) es pequeña en comparación con la primera derivada. A partir de argumentos físicos, sabe que su solución es una onda sinusoidal amortiguada, así que ajústela a A porque ( ω t ) Exp ( λ t ) Lo que realmente necesita para el método de Newton son estimaciones de A , ω , λ , no estimaciones de y ( t ) que es lo que obtienes de tu circuito. A es fácil, es y ( 0 ) . yo tomaría ω desde el último cruce por cero pude identificar fácilmente y λ de la relación del primer pico a la amplitud inicial.

Hola Ross, gracias por tu respuesta. En realidad, esta EDO de segundo orden es un ejemplo simple con expresión analítica de la solución. Lo que busco es un caso general donde no conocemos la solución de antemano: ¿Es posible que tomemos el valor de X ( t ) , por ejemplo, en X ( t = 1 s ) , X ( t = 2 s ) , X ( t = 3 s ) , X ( t = 4 s ) , X ( t = 5 s ) . . . X ( t = 60 s ) como conjeturas iniciales, y alimente estos valores a algún solucionador numérico para que pueda comenzar a partir de estas conjeturas. ¿Existe tal método numérico?
Ciertamente puede ajustar los valores a cualquier forma funcional que desee. Elegir la forma puede ser un arte. Por ejemplo, podrías elegir un polinomio de algún orden. Una vez hecho esto, puede usar un minimizador de función lineal para encontrar los coeficientes del polinomio. Estos se discuten en cualquier texto de análisis numérico. El capítulo 10 de Recetas numéricas tiene una discusión. Si toma los datos a intervalos igualmente espaciados, está listo para un análisis de Fourrier.
Hola Ross, gracias por mencionar ese capítulo del libro. Tomaré lectura cuidadosa. El ajuste de polinomios podría ser una forma de tomar las soluciones de las computadoras analógicas. ¿Cree que habría un método numérico, en el que todavía utiliza la integración numérica clásica para los pasos de tiempo (por ejemplo, el cuarto orden de Runge-Kutta) y puede aprovechar las soluciones aproximadas de las computadoras analógicas? ¡¡Muchas gracias!!
No sabría cómo usar una solución aproximada en una rutina de pasos. Puede tomar la solución aproximada como punto de partida para un método de relajación, que también se analiza en Recetas numéricas como una forma de resolver problemas de dos puntos.
Hola Ross, gracias. Leeré bien el libro Recetas numéricas, para ver si puedo aprovechar las soluciones aproximadas de las computadoras analógicas.
La idea sería que tengas X ( t ) y X ( t ) a intervalos de la computadora analógica. A continuación, puede evaluar qué X ( t ) debe ser de la ecuación y compararlo con el resultado de la computadora analógica. A continuación, puede ajustar X ( t ) , X ( t ) de alguna manera apropiada. No puedo ayudar con cuál sería la forma apropiada, pero tal vez el libro pueda ayudar.
Hola Ross, lo que tenía en mente es algo muy similar al "método de Newton", que puede tomar esos valores de x en diferentes puntos de tiempo y continuar refinando esos puntos de datos usando iteraciones. ¿Quizás esta es una forma de hacer computación paralela para resolver ODE?

Casi con el mismo espíritu que la respuesta de Ross Millikan, déjame suponer que conoces las condiciones iniciales X ( 0 ) = 1 , X ( 0 ) = 0 y que el modelo es algo asi

X ( t ) = mi α t ( A porque ( β t ) + B pecado ( β t ) )
y de puntos de datos ( t i , X i ) tomado de la computadora analógica, desea refinar los valores de los cuatro parámetros A , B , α , β que aparecen en el modelo.

Esto se puede considerar como un problema de regresión no lineal y la cuestión clave es obtener estimaciones "razonables".

La primera condición da A = 1 y este es un valor definitivo (ya no es un parámetro a ajustar).

Ahora, mirando la derivada

X ( t ) = mi α t ( porque ( β t ) ( β B α A ) pecado ( β t ) ( A β + α B ) )
da β B α A = 0 lo que significa que podemos imponer B = α β .

Todo lo anterior hace que el modelo sea

X ( t ) = mi α t ( α pecado ( β t ) β + porque ( β t ) )
y solo nos quedan dos parámetros α , β para lo cual necesitamos estimaciones. Mirando a
X ( t ) = ( α 2 + β 2 ) mi α t pecado ( β t ) β
vemos que el primer mínimo de X ( t ) corresponderá a β t = π ; esto da una estimación de β . En este punto, tenemos
X ( t ) = mi π α β = mi α t
de donde la estimación de α se extrae fácilmente.

Ahora, tenemos todos los elementos necesarios para iniciar el ajuste por mínimos cuadrados no lineal de los datos.

Solo mirando la trama en la publicación, usando el hecho de que el primer mínimo corresponde más o menos a t = 5 , X = 0.6 , obtenemos como estimaciones β 0 = π 5 0.628319 y α 0 = 1 5 registro ( 5 3 ) 0.102165 mientras que los valores exactos deben ser β = 39 10 0.624500 y α = 1 10 . La regresión no lineal converge en un par de iteraciones.

Estimado Claude, ¡gracias por su detallada respuesta! Estoy de acuerdo con su método para este ejemplo, donde conocemos la expresión analítica para la solución. Para un caso más general, la EDO sería no lineal y no tendría expresión analítica. ¿Existe algún método numérico que pueda tomar directamente los valores de X ( t ) , por ejemplo, en X ( t = 1 s ) , X ( t = 2 s ) , X ( t = 3 s ) , X ( t = 4 s ) , X ( t = 5 s ) . . . X ( t = 60 s ) como conjeturas iniciales, y puede refinar la solución a una precisión mucho mayor, sin "cálculo humano" en el ciclo? ¡Gracias!
@Nate. Estoy totalmente de acuerdo con tu punto: si conocemos la forma de la solución, este método es fácil de aplicar (trabajé este tipo de problemas cuando usé computadoras analógicas en los años 60). En el caso de que no tengamos idea, las splines de suavizado están muy bien.
Wow, me sorprende que hayas usado una computadora analógica:-) Pensé que esta era una herramienta de simulación muy antigua que muy pocas personas conocían. Las computadoras analógicas tienen una característica que me gusta mucho: la verdadera integración en tiempo continuo. En realidad, estoy pensando en aprovechar esta característica, tratando de encontrar una manera de acelerar los solucionadores numéricos ODE convencionales. Pero parece que los solucionadores numéricos son bastante autosuficientes; las soluciones aproximadas de las computadoras analógicas no podrían acelerarlas directamente...
¿Miraste mi perfil? Empecé hace 55 años con las computadoras. Las computadoras analógicas son maravillas para esta clase de problemas. Ha sido un crimen matarlos como han sido. Salud
¡Bien! ¡En los años 50 y 60, a la gente se le enseñaba a usar computadoras analógicas para la simulación! Leí que hubo muchos debates sobre "computadora analógica versus computadora digital" en los años 70, pero no se llegó a conclusiones claras de que las computadoras digitales son superiores a las analógicas en todos los aspectos. Luego, toda la comunidad abrazó las computadoras digitales desde entonces. Creo que las computadoras analógicas aún pueden hacer mejores trabajos en la simulación de sistemas dinámicos debido a la naturaleza inherente de tiempo continuo.

Consulte este artículo de Columbia U. https://www.cs.columbia.edu/2016/back-to-analog-computing-columbia-researchers-merge-analog-and-digital-computing-on-a-single- chip/

Parecen estar tratando de hacer casi lo mismo que usted estaba pensando, usar computación analógica para obtener una buena estimación inicial y luego usar tecnología digital (básicamente técnicas numéricas estándar) para llegar a una respuesta final aceptable, y todo esto en un chip de computadora real. Muy bien si me preguntas.