Resolver numéricamente un difícil sistema de ecuaciones

10

Tengo un sistema de ecuaciones no lineales que quiero resolver numéricamente:n

f = ( f 1 , , f n )

f(x)=a
f=(f1,,fn)x=(x1,,xn)

Este sistema tiene una serie de características que lo hacen particularmente difícil de manejar. Estoy buscando ideas sobre cómo lidiar con el sistema de manera más efectiva.

¿Por qué es difícil el sistema?

  • Las funciones son similares a esta (pero, por supuesto, en múltiples dimensiones):

    Gráficos de Mathematica

    Tienen mesetas planas separadas por una región de cambio suave. En 2D, se puede imaginar algo como esto para una :fi

    Gráficos de Mathematica

    Generalmente, cada tiene dos mesetas separadas por cambio suave alrededor de un n - 1 hiperplano dimensional.fin1

    fin=1

  • Las funciones son muy lentas de calcular. Estoy buscando un método que pueda obtener una aproximación razonable de la raíz en la menor cantidad de iteraciones posible.

  • Las funciones se calculan con un método de Monte Carlo. Esto significa que cada vez que se calculan, obtengo un valor aleatorio ligeramente diferente. Los derivados son difíciles de estimar. Una vez que estemos lo suficientemente cerca de la raíz, el ruido comenzará a dominar, y es necesario usar el promedio para aumentar la precisión. Idealmente, debería ser posible generalizar el método a una versión de aproximación estocástica equivalente (por ejemplo, Newton → Robbins-Monro).

  • nn=2f1(x1,x2)=0f2(x1,x2)=0

¿Qué más sé sobre el sistema?

  • Hay precisamente una raíz (de los resultados teóricos).

  • fii

  • fixifi(,xi,)xixji

Szabolcs
fuente
¿Conoces los límites inferior y superior de todas las variables, dentro de las cuales debe encontrarse la solución? Cuanto más estrictos sean esos límites, mejor. ¿Puede dar un ejemplo determinista, en la dimensión más alta que desee, que ilustra sus mesetas y dificultades, pero no requiere la simulación de Monte Carlo y no tiene errores aleatorios en las funciones (puntos de bonificación si se pueden calcular los derivados)? El propósito de un ejemplo tan determinista es comprender las dificultades del problema, no decir que la evaluación de Monte Carlo no se utilizará en la solución definitiva de su problema real.
Mark L. Stone el
f
Espero verlo,
Mark L. Stone

Respuestas:

1

Dado que hay una sola raíz y no hay restricciones, es posible que tenga la suerte de plantearla como un problema de optimización: minimice la suma (a lo largo de cada dimensión) de los cuadrados de su función original.

Los métodos de optimización clásicos probablemente fracasarán, pero los métodos heurísticos como los algoritmos genéticos o CME-ES (adaptación de matriz covariante, etc. - estrategia evolutiva) podrían funcionar.

MattKelly
fuente
Ese es de hecho el enfoque a seguir. En particular, miraría el algoritmo SPSA que se desarrolló específicamente para su propósito y es bastante robusto.
Wolfgang Bangerth
2
El OP menciona que la función es muy costosa de evaluar (aplicando la simulación Monte Carlo para una evaluación de la función). ¿No plantea eso un problema muy grande para los algoritmos genéticos y otros algoritmos evolutivos? Son "trivialmente paralelos" (y generalmente también es MC), por lo que la computación paralela masiva podría ser posible, pero ¿son la mejor manera de llegar aquí?
GertVdE
@WolfgangBangerth Gracias, como dices, suena como la solución correcta. Veré SPSA.
Szabolcs
1
Con respecto a las evaluaciones de funciones costosas: es cierto que los algoritmos genéticos y los métodos heurísticos relacionados tienden a requerir un mayor número de evaluaciones de funciones que los métodos tradicionales. El beneficio es que los métodos heurísticos a menudo pueden resolver problemas que 1) de otro modo requerirían un método específico del problema o 2) fallarían debido a problemas numéricos. Para este ejemplo, es probable que los métodos tradicionales tengan problemas debido a la naturaleza estocástica de la función objetivo y los pequeños gradientes a lo largo de algunas dimensiones. SPSA parece un excelente método candidato para este problema.
MattKelly