Tengo un conjunto de puntos 3D. Siguen un patrón curvo con un diámetro bastante constante como se muestra a continuación. ¿Cuál sería el algoritmo para trazar la línea central aproximada de estos puntos?
Tengo un conjunto de puntos 3D. Siguen un patrón curvo con un diámetro bastante constante como se muestra a continuación. ¿Cuál sería el algoritmo para trazar la línea central aproximada de estos puntos?
Hay un documento llamado "Reconstrucción curvada de Puntos no organizados " de In-Kwon Lee, que busca construir líneas / curvas a partir de un conjunto de puntos sin ningún orden al explotar el Método de mínimos cuadrados en movimiento . Aunque se centra en aplicaciones 2D, menciona la posibilidad de extender esto a dimensiones más altas. La siguiente imagen está tomada del papel:
En ' Capítulo 4 - Extensión 3D ', describe cómo el método no se puede aplicar directamente a 3 dimensiones, pero es posible calcular una curva de regresión cuadrática 3D mediante:
Espero que esto ayude! (¡Un papel bastante interesante!)
Esta pregunta ya ha sido respondida. Aquí está la misma pregunta:
conjunto de datos de ajuste de curva en 3D
Si está buscando herramientas y códigos listos para usar, existen muchos métodos numéricos para resolver este problema, como el enfoque codicioso que se implementa en los paquetes R, descargable desde GAM .
Si está buscando algoritmos puros para implementarlo usted mismo, le sugiero que lo pregunte en la comunidad matemática ( enlace )
Además, esta página wiki está relacionada con su pregunta ( enlace )
Estamos buscando una curva en el espacio 3D, por lo que queremos algún tipo de ecuación paramétrica:
x = f(t)
y = g(t)
z = h(t)
Según la imagen proporcionada, queremos que las funciones f, g y h sean polinomiales de tercer o cuarto orden (es decir, el exponente más grande es 3 o 4). En general, cuanto mayor sea el grado, más preciso será el ajuste, pero más tardará en calcularse.
Para una solución de tercer orden, necesita encontrar números para las variables 'A' a 'L' en estas ecuaciones:
x = A*t^3 + B*t^2 + C*t + D
y = E*t^3 + F*t^2 + G*t + H
z = I*t^3 + J*t^2 + K*t + L
Puede usar Excel y el complemento Solver para encontrar las variables 'A' a 'L' modificando el tutorial aquí: enlace
Necesitará tener cuatro columnas: t, x, y y z. ('t' solo puede ser un número entero creciente a partir de 1.)
Y deberá ingresar tres ecuaciones, y espacio para las variables 'A' a 'L':
x = A*t^3 + B*t^2 + C*t + D
y = E*t^3 + F*t^2 + G*t + H
z = I*t^3 + J*t^2 + K*t + L
Luego, ejecute Excel Solver un par de veces (lo encontré a veces tomé un par de iteraciones antes de establecer una solución), esto le dará las variables de sus ecuaciones paramétricas para describir la línea de mejor ajuste a través de sus datos. .
EDITAR: Bueno, parece que es una respuesta incorrecta, ¡la línea de ajuste es recta! =)