Domanda

Questa è una cosa in relazione con la matematica pure. Ma questo è utile nel calcolare pure.

Diciamo che avere 10 coordinate. (X1, y1) (x2, y2) ..... in 2D spazio. (Cioè su un X-Y Plane). Possiamo trovare una sola curva regolare che attraversa l'ciascuna coordinata.

Durante l'espansione della domanda, se lo spazio è 3D, allora possiamo troviamo un'equazione di una superficie liscia che andare in un dato insieme di coordinate spaziali?

Ci sono biblioteche (qualsiasi lingua) \ strumenti per eseguire questi calcoli?

È stato utile?

Soluzione

Che cosa si dovrebbe essere alla ricerca di alcuni è NURBS libreria che implementa (o non Uniform Rational B-Spline). Questo risolverà il vostro problema sia in 2D che in 3D, dal momento 2d è solo un caso speciale del 3d.

In parole povere, non siete interessati nell'equazione reale, si è interessati solo a ottenere i punti approssimata con curve morbide o superfici. Questo viene fatto trovando "punti di controllo" nello spazio 2D o 3D, che vengono moltiplicati con funzioni base B-spline. Una biblioteca NURBS farà questo per voi.

Cheers!

Modifica:

Dai un'occhiata alla questo uno

Altri suggerimenti

è sempre possibile montare un polinomio di ordine-10 attraverso i punti. che non è necessariamente quello che si vuole fare, anche se - montare una curva regolare attraverso una serie di scanalature vi darà un risultato più bello. curva-montaggio articolo su wikipedia si offre una buona panoramica delle diverse opzioni.

Nel caso in 2D che stai chiedendo curve fitting. Questo in realtà esiste in Excel, in cui si traccia i punti (di solito uso dispersione XY se avete x e y quotata) e quindi fare clic destro sulla curva. Seleziona Aggiungi linea di tendenza. Ci si può scegliere quale tipo di funzione che si desidera per adattarsi a e si può chiedere Excel per visualizzare nell'immagine (scheda denominata Opzioni, selezionare la casella "equazione di visualizzazione sul grafico" scatola). Bello e veloce.

In caso contrario, è possibile utilizzare MATLAB e utilizzare il lsqr (metodo dei minimi quadrati). Se si vuole trovare il polinomio più vicino che meglio descrive i dati è possibile utilizzare la funzione polyfit. Esso utilizza il metodo dei minimi quadrati, ma restituisce coefficienti. Matlab ha tutta una serie di altri algoritmi per la soluzione di / trovare "migliori" approssimazioni di sistemi di equazioni lineari. Cito lsqr perché è uno dei più semplici da implementare da soli se non si dispone di MATLAB. D'altra parte è per la risoluzione di insiemi di equazioni lineari - Io non so nulla circa i vostri dati.

Dai un'occhiata alle scanalature

Cerca per 'biblioteca interpolazione spline' potrebbe dare alcuni consigli utili per le implementazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top