Tengo el modelo .
En lugar de observar el modelo directamente, estoy observando las derivadas del modelo + algo de ruido (e):
A partir de las mediciones de p (x, y y q (x, y) quiero estimar s (x). Digamos que sé que s (0,0) = 0.
Según el teorema del gradiente:
independientemente de qué camino integramos.
Como un pequeño experimento (en Matlab) agregué ruido distribuido normal, N (0,1), a p = 2x y q = 2y. Luego integré primero a lo largo de x seguido de a lo largo de y: SXY. Luego integré primero a lo largo de y seguido de a lo largo de x: SYX.
Los resultados muestran que el teorema del gradiente no se cumple en este caso (debido al ruido):
Los errores de raíz cuadrática media relativos al modelo son:
ErmsXY =
0.1125
ErmsYX =
0.0920
¿Cómo puedo encontrar una mejor estimación (menos error RMS y más suave) de s de py q?
EDITAR:
Por lo que leí; El uso de la curva integral se conoce como integración local. También hay métodos de integración global en los que uno intenta elegir una S (x, y) que minimice:
Se supone que los métodos de integración global dan mejores resultados cuando el gradiente es ruidoso, pero ¿cómo hago esto en la práctica?
EDITAR 2:
Un enfoque que he usado es este:
primero presentamos operadores de derivación lineal: .
El resultado es el siguiente sistema de ecuaciones lineales:
Luego encuentre una solución de Mínimo error cuadrado para estas ecuaciones. Se supone que una solución LSE para estas ecuaciones es equivalente a minimizar la integral desde arriba. ¿Cómo se puede mostrar esto?
Los resultados son buenos:
El error RMS es aproximadamente 1/5 del de SXY y SYX y la solución también es más fluida.
Sin embargo, hay algunos inconvenientes en este enfoque:
es difícil de implementar; debe usar las diferencias centrales y "aplanar" la matriz 2D s en un vector, etc.
Las matrices de derivación son muy grandes y dispersas, por lo que pueden consumir mucha RAM.
Otro enfoque que parece potencialmente más simple de codificar, menos consumo de RAM y más rápido es usar FFT. En el espacio de Fourier, estos pdes se convierten en una ecuación algebraica. Esto se conoce como el algoritmo Frankot-Chellappa, pero desafortunadamente no lo tengo funcionando en mis datos de ejemplo.