8 votos

Optimización-como pregunta

Digamos que tengo una fórmula como $ax + by + cz = N$. $a, b, c$, y $N$ son conocidos y no se puede cambiar. $x, y$, e $z$ son conocidas y pueden ser cambiados.

El problema es que la ecuación no es cierto! Mi problema (para un programa que estoy escribiendo) es: ¿cómo puede $x, y$, e $z$ ser cambiado lo suficiente para que ellos la igualdad de $N$ mientras que la diferencia de sus valores anteriores como poco como sea posible?

8voto

Stephan Aßmus Puntos 16

EN CASO DE QUERER LAS VARIABLES A SER NÚMEROS ENTEROS:

Esto se llama el "más cercano vector problema". También el más cercano "celosía". Dada una solución de $X_0 = (x_0, y_0,z_0)$ $ax+by+cz = N,$usted obtiene un "entramado" tomando $X-X_0$ por cada solución de $X.$

Usted tiene un nonsolution, llame a $Y = (x_1, y_1,z_1).$ desea Que el más cercano de celosía punto de $X-X_0$$Y-X_0,$, de modo que $X-Y$ es menor.

Hay un montón de investigación sobre este, y probablemente algunos de los libros de texto tienen buenos métodos en las dimensiones 2 y 3 para el menor vector problema y los relacionados con el vector más cercano problema. https://en.wikipedia.org/wiki/Lattice_problem

EDIT: la celosía dado es de dos dimensiones. Esto significa que la búsqueda de una reducción de la base es sólo de reducción de Gauss (positivo) de un binario de forma cuadrática. Una vez que haya una reducción de la base, se convierte en sencillo para producir una lista limitada de celosía vectores que debe contener la mejor solución, entonces se les echa.

6voto

charlestoncrabb Puntos 1469

El espacio de la solución de la ecuación de $ax+by+cz=N$ es un plano en tres dimensiones, por lo tanto para cualquier determinado punto, dicen, $(x_0,y_0,z_0)$, se puede calcular fácilmente la distancia entre este punto y el plano de soluciones reales (esto es equivalente a la que posiblemente familiar "método de los cuadrados mínimos", que creo que es la respuesta que usted está después?)

5voto

Eli Rose Puntos 1256

Deje $x_0, y_0, z_0$ ser el valor actual de $x, y, z$.

Una ecuación de la forma $ax + by + cz = N$ especifica un plano en el espacio. Deje que su avión se $P$. Así que el problema es equivalente a la siguiente: en el espacio, dado un punto de $(x_0, y_0, z_0)$ y un avión $P$, encontrar el punto en $P$ que es la más cercana a $(x_0, y_0, z_0)$.

El punto más cercano será el punto que se obtiene por la caída de una línea perpendicular de $(x_0, y_0, z_0)$ $P$y ver a donde las tierras. (Este debe ser el más cercano debido a que una línea recta es la distancia más corta entre dos puntos cualquiera!)

Lo que acabo de describir se llama también la proyección ortogonal de un punto sobre un plano. Es solucionado por ejemplo, aquí.

Como charlestoncrabb menciona, esto es equivalente al método de mínimos cuadrados porque medimos la distancia en el espacio por $\sqrt{(x_1 - x_0)^2 + (y_1 - y_0)^2 + (z_1 - z_0)^2}$. Así que ese es el "default", que significa "cerca" en este contexto, por extraño que parezca. Si desea medir "cerca" de alguna otra manera, usted puede utilizar más general de los métodos de optimización (como multiplicadores de Lagrange).

2voto

Fei Wang Puntos 90

Definir $A = [a,b,c]$$X=[x, y, z]^T$, por lo que su ecuación es $A*X = N$. Asumir su punto conocido a $ \bar X = [x_0, y_0,z_0]^T$. Definir el residual a ser $R = N - A*\bar X$, puesto que la ecuación no es cierto. La pregunta es $$\min|| X- \bar X ||,s.t. A*X = N$$

La solución de $X^*$ que minimizar la distancia es de $X^* = \bar X + A^+R$ donde $A^+$ es el Moore_Penrose pseudo inversa de a $A$ e este caso desde $A$ ha linealmente independientes filas, $A^+ = A^T(AA^T)^{-1}$. La distancia es de $||X^* - \bar X || = || A^+R||$, usted puede escoger cualquier norma que te gusta.

Esto también es cierto si $A$ es una matriz en lugar de un vector de fila supongamos que tenemos un sistema de ecuaciones lineales.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X