Dieser Artikel beschreibt die von Java implementierte Kurvenfunktion der N-Ordnung. Teilen Sie es für Ihre Referenz wie folgt weiter:
Im vorherigen Artikel implementiert Java eine Methode zur Lösung eines einzelnen Polynoms der N-Ordnung. Nachdem Sie in der Lage waren, ein Polynom zu lösen, müssen Sie welche Klasse verwenden, um zukünftige Daten auf der Grundlage mehrerer Stichprobenpunktdaten vorherzusagen. Die montierte Matrix wurde im vorherigen Artikel veröffentlicht, daher werde ich hier nicht darüber sprechen. Dieser Artikel konzentriert sich hauptsächlich darauf, wie die Koeffizientenmatrix basierend auf dem Stichprobenpunkt und den Wert des vorhergesagten Punkts berechnet wird.
Das Prinzip ist sehr einfach und die Formel wurde auch im vorherigen Artikel gefunden. Ich werde den Code hier direkt veröffentlichen.
Die Klasse commonAlgorithm.PolynomiaSoluter , die im vorherigen Artikel geschrieben wurde, wird verwendet.
Paket Commonalgorithmus; importieren Sie CommonAlgorithm.polynomialSluter; Import Java.lang.Math; öffentliche Klasse LEINTSQUARE {private double [] [] matrixa; private double [] arrayb; Private Double [] Faktoren; private int order; public leerdSquare () {} / * * Nach der Instanziation müssen Sie vor der Berechnung zuerst Parameter eingeben und den Formel-Arrayx als X-Achsenkoordinaten des Stichprobenpunkts erzeugen und in der Reihenfolge der Anpassung in der Stichprobenreihenfolge * anordnen. Bei Anpassung von Kurven hoher Ordnung mit niedrigen Bestellungen kann es ungenau sein, aber zu hohe Reihenfolge verursacht langsame Berechnungen*/ public boolean generateFormula (double [] arrayx, double [] Arrayy, int order) {if (Arrayx.Length! = Arrayy.Length) return falsch; this.order = order; int len = arrayx.length; // Die X -Matrix und die Y -Matrix in der Anpassungsoperation matrixa = new Double [Order + 1] [Reihenfolge + 1]; ArrayB = neues Double [Order + 1]; // Erzeugen Sie die y -Matrix und den Teil der Leistung <= Reihenfolge in der x -Matrix für (int i = 0; i <order+1; i ++) {double sumx = 0; für (int j = 0; j <len; j ++) {double tmp = math.pow (arrayx [j], i); sumx += tmp; Arrayb [i] += tmp * arrayy [j]; } für (int j = 0; j <= i; j ++) matrixa [j] [i - j] = sumx; } // Generieren Sie den Teil der Power> -reihenfolge in der x -Matrix für (int i = order+1; i <= order * 2; i ++) {double sumx = 0; für (int j = 0; j <len; j ++) sumx+= math.pow (arrayx [j], i); für (int j = i - order; j <order+1; j ++) {matrixa [i - j] [j] = sumx; }} // Instanzpolynomiasuluter und lösen Sie das Gleichungssystem, um Koeffizientensequenzen jeder Ordnung Faktoren Polynomialsuluter Solter = New PolynomialSuluter () zu erhalten; Faktoren = Solter.getResult (matrixa, arrayb); if (faktoren == null) return falsch; sonst kehre wahr; } // Das Ergebnis der Berechnung der angegebenen Koordinaten basierend auf den Eingabekoordinaten und den Koeffizientensequenzfaktoren öffentlich Doppelberechnen (double x) {double result = faktoren [0]; für (int i = 1; i <= order; i ++) Ergebnis+= Faktoren [i] * math.pow (x, i); Rückgabeergebnis; }}PS: Hier sind einige Berechnungswerkzeuge, auf die Sie sich beziehen können:
Online -Polynomkurven und Kurvenfunktionsanpassungswerkzeuge:
http://tools.vevb.com/jisuanqi/create_fun/
Zeichnen Sie Polynom-/Funktionskurven -Diagramm -Tools online:
http://tools.vevb.com/jisuanqi/fun_draw
Online -Berechnungsinstrument der Unarm Function (EQ) Lösung:
http://tools.vevb.com/jisuanqi/equ_jisuanqi
Online -Taschenrechner des Wissenschaftlichen Taschenrechners Online -Taschenrechner Online -Taschenrechner:
http://tools.vevb.com/jisuanqi/jsqkeexue
Online -Rechner_Standard Taschenrechner:
http://tools.vevb.com/jisuanqi/jsq
Für weitere Informationen zu Java -Algorithmen können Leser, die an dieser Website interessiert sind, die Themen "Java -Datenstruktur und Algorithmus -Tutorial", "Zusammenfassung der Java -Operation DOM -Knoten -Tipps", "Zusammenfassung der Java -Datei- und Verzeichnisoperationstipps" und "Zusammenfassung der Java -Cache -Operation Tipps" anzeigen
Ich hoffe, dieser Artikel wird für Java -Programme aller hilfreich sein.