Por lo tanto, nunca he resuelto este tipo de problema, pero sentí que intentaría encontrar una solución, ya que es un desafío divertido. Así que mi primer paso fue escribir la siguiente expresión, dada la forma de ecuación matricial que mostraste. Llegué a allí siendo esta ecuación:
[matemáticas] r_ {i, j} a_ {j} + b_ {j} – c_ {i} = 0 [/ matemáticas]
[matemáticas] \ forall i \ en [1, N] [/ matemáticas]
[matemáticas] \ forall j \ en [1, M] [/ matemáticas]
donde N y M son las dimensiones de la matriz. Obviamente, esto da como resultado N * M ecuaciones para resolver. Un enfoque para resolverlos es utilizar el algoritmo de búsqueda de raíces Newton-Raphson. Asumiendo que sus ecuaciones son de la forma:
[matemáticas] \ vec {f} (\ vec {x}) = \ vec {0} [/ matemáticas]
- ¿Es posible resolver la ecuación [matemáticas] x ^ 3 – 6 x ^ 2 + 3x + 10 = 0 [/ matemáticas] sin la ayuda del método hit-and-trial?
- ¿Cómo demostrar que [matemáticas] x ^ 2 + y ^ 2 – 2xy (\ cos 2 \ varphi) ^ 2 = A ^ 2 (\ sen 2 \ varphi) ^ 2 [/ matemáticas] es una ecuación de elipse? ¿Cómo puedes saber la longitud de los ejes?
- ¿Cuál es la razón para conectar valores especiales en una ecuación funcional de dos variables?
- Cómo resolver esta secuencia cuadrática: 4, 7, 14, 25, 40 con an2 + bn + c
- ¿Qué significa que un flujo cumpla con la ecuación de continuidad?
El algoritmo es:
[matemáticas] \ vec {x} ^ {k + 1} = \ vec {x} ^ {k} – \ left [\ frac {d \ vec {f}} {d \ vec {x}} \ right] ^ {-1} \ vec {f} (\ vec {x} ^ {k}) [/ math]
En este caso, podría definir que el vector x sea:
[matemáticas] \ vec {x} ^ {T} = [\ vec {a} ^ {T}, \ vec {b} ^ {T}, \ vec {c} ^ {T}] [/ matemáticas]
Ahora puede preguntarse qué es [math] \ vec {f} [/ math], y puede considerarse como la ecuación escrita anteriormente que desea igualar a 0. Entonces, los componentes N * M de [math] \ vec { f} [/ math] son:
[matemáticas] f_ {i, j} (\ vec {x}) = r_ {i, j} a_ {j} + b_ {j} – c_ {i} [/ matemáticas]
Dado esto, puede encontrar que los derivados son los siguientes:
[matemáticas] \ frac {df_ {i, j}} {da_ {k}} = r_ {i, k} [/ matemáticas]
[matemáticas] \ frac {df_ {i, j}} {db_ {k}} = 1 [/ matemáticas]
[matemáticas] \ frac {df_ {i, j}} {dc_ {k}} = -1 [/ matemáticas]
Esto da como resultado una forma trivial para [matemáticas] \ left [\ frac {d \ vec {f}} {d \ vec {x}} \ right] [/ math]. En el caso de que no desee invertir una matriz, puede convertir el problema en lo siguiente:
Suponga que tiene una función de costo que desea minimizar con la siguiente expresión de:
[matemáticas] J = \ frac {1} {2NM} \ sum_ {i = 1} ^ {N} \ sum_ {j = 1} ^ {M} (f_ {i, j}) ^ {2} [/ matemáticas ]
Tomar las derivadas parciales con respecto a [matemáticas] a_ {k}, b_ {k}, c_ {k} [/ matemáticas] le proporciona lo siguiente:
[matemáticas] \ frac {\ partial J} {\ partial a_ {k}} = \ frac {1} {NM} \ sum_ {i = 1} ^ {N} r_ {i, k} \ sum_ {j = 1 } ^ {M} f_ {i, j} [/ matemáticas]
[matemáticas] \ frac {\ partial J} {\ partial b_ {k}} = \ frac {1} {NM} \ sum_ {i = 1} ^ {N} \ sum_ {j = 1} ^ {M} f_ {i, j} [/ matemáticas]
[matemáticas] \ frac {\ partial J} {\ partial c_ {k}} = \ frac {-1} {NM} \ sum_ {i = 1} ^ {N} \ sum_ {j = 1} ^ {M} f_ {i, j} = – \ frac {\ partial J} {\ partial b_ {k}} [/ math]
También tenga en cuenta que las derivadas parciales con respecto a byc no tienen ninguna dependencia de k en el lado derecho. Esto significa que, por ejemplo, [matemáticas] \ frac {\ partial J} {\ partial b_ {1}} = \ frac {\ partial J} {\ partial b_ {2}} = \ dots = \ frac {\ partial J} {\ parcial b_ {M}} [/ matemáticas]. Esto simplifica mucho el cálculo, especialmente porque [matemáticas] \ frac {\ partial J} {\ partial b_ {k}} = – \ frac {\ partial J} {\ partial c_ {l}} \ forall k, l [/ matemáticas].
Dadas las derivadas parciales que se muestran arriba, puede usar estos resultados en un método como Descenso de degradado o Gradiente conjugado no lineal, que son simples de implementar y hacen que se repita hacia la solución. El beneficio de este problema es que las ecuaciones resultantes son convexas, lo que significa que el mínimo de la función de costo que alcanza es el mínimo global. Y dado que los dos métodos que puede usar siempre iterarán hacia un mínimo local, esta es una buena manera de resolver su problema. ¡Esto también significa que puede elegir cualquier suposición aleatoria para [matemáticas] \ vec {a}, \ vec {b}, \ vec {c} [/ matemáticas] y aún así terminar con la solución correcta a su problema!
Si tiene otras restricciones sobre este problema, no dude en hacérmelo saber. Hay algunos trucos que puede usar en el Descenso de gradiente, como obtener un tamaño de paso óptimo, que puede permitir una convergencia más rápida en el caso de que el cálculo de la matriz de Hesse de la función de costo esté bien para usted.