Zernike FittingIch habe einen Kunden, der nach Zernike Fitting in der JMP Non-Linear Model Library fragt. Ich bin nicht mit der Methode der Polynomanpassung vertraut. Kennt jemand diese Methode und / oder die Fähigkeit, diese Art von Analyse (oder eine Problemumgehung) in JMP durchzuführen? Vielen Dank.
Re: Zernike FittingNach dem, was ich im Web gelesen habe, wäre es schwierig, die Mathematik dahinter in Nonlinear zu implementieren. Für die 2D- oder 3D-Anpassung würde ich mir die Gaußsche Prozessplattform ansehen. Es verwendet Gaußsche Zufallsfunktionen, um zwischen Datenpunkten zu interpolieren, und erledigt eine anständige Arbeit beim Anpassen holpriger Oberflächen. Es kann als ähnlich wie Kriging angesehen werden. Der Nachteil von GP ist, dass es für sehr große Probleme nicht gut skalierbar ist (eine schnelle GASP-Methode wurde vor einigen Versionen hinzugefügt, daher ist sie viel besser geworden). Letztendlich hängt es davon ab, was sie tun möchten.
Re: Zernike FittingIch werde zweitens @ DonMcCormack über den Gaußschen Prozess-Ansatz, schlagen aber auch neuronale Netze vor. Sie sind sehr flexibel und Sie können die verschiedenen Aktivierungsfunktionen (Pro) verwenden, um ein besseres Vorhersagemodell zu erstellen.
Re: Zernike FittingVon Anfang an hörte ich, dass nur in Optik- oder Augengesundheitssituationen Wellenfronten besser angepasst werden. Es gibt einige benutzerdefinierte Implementierungen in MATLAB, die ich kenne:
https://de.mathworks.com/matlabcentral/answers/408242-toolbox-for-zernike-polynomial-surface_fitting
Dort sehen Sie auch, wie sie implementiert wurden. Um alle möglichen Zernike-Polynome zu erfassen, müssen viele verschiedene Einstellungen, Berechnungen und Fälle behandelt werden. Dann bin ich mir nicht sicher, ob JSL sehr schnell alle Matrixoperationen abwickeln würde.
Ich bin mir nicht sicher, ob Gauß und nn gute Alternativen sind, da Sie normalerweise Zernike-Polynome verwenden, da es sich um gekrümmte Oberflächen handelt, nicht um planare, auf denen Sie ein schönes Gitter haben könnten. Einige verwenden Convolutionary nn und versuchen, sie zu verallgemeinern, um die erforderliche Orthogonalität aufrechtzuerhalten.