Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » Polynom aus mehreren Punkten erstellen

Polynom aus mehreren Punkten erstellen

Schüler Gymnasium, 10. Klassenstufe

Tags: polynom

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
Xalooz

Xalooz aktiv_icon

10:41 Uhr, 20.12.2016

Antworten


Hallo,

ich habe 10Punkte, also x mit dem dazugehörigen y Wert.

Jetzt will ich eine Funktion erstellen, der diese Kurve beschreibt.
Weiß jemand wie das geht? Gibt es vllt sogar ein Programm der das ausrechnet?

Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert):
"Ich möchte die Lösung in Zusammenarbeit mit anderen erstellen."
Hierzu passend bei OnlineMathe:

Online-Übungen (Übungsaufgaben) bei unterricht.de:
 
Online-Nachhilfe in Mathematik
Antwort
Respon

Respon

10:49 Uhr, 20.12.2016

Antworten
z.B. Trendlinie in Excel.
Oder "TrendPoly" in Geogebra.
Xalooz

Xalooz aktiv_icon

11:19 Uhr, 20.12.2016

Antworten


Kann es sein, dass es auch Funktionen gibt, die man gar nicht beschreiben kann?
Antwort
Edddi

Edddi aktiv_icon

11:27 Uhr, 20.12.2016

Antworten
... zu einer endlichen Anzahl Punkten findest du auch immer eine Polynomfkt. (n-1)-ten Grades auf der diese Punkte liegen!

Dazu setzt du die n Punkte einfach in y(x)=i=0n-1aixi ein und löst das GLS n-ten Grades um die Koeffizienten ai zu bestimmen.

Das heißt aber nicht, dass diese Funktion die von dir gesuchte ist!

Ebenso findest du auch immer eine Überlagerungsfuktion aus mehreren Schwingungen auf der genau deine Punkte liegen.

Willst du aber den Verlauf beschreiben, so ist die Trendlinie nach Art der gewählten Funktion für dich wohl die erste Wahl!

;-)
Xalooz

Xalooz aktiv_icon

11:32 Uhr, 20.12.2016

Antworten

Habe nämlich alle Punkte in Geogebra eingegeben und als Funktion kam nur Schrott raus(Eine Konstante)
Selbst als ich nur 3 Werte verwendet habe, wurde mir nur eine Konstante von 7 angezeigt, obwohl die Kurve, eine Kurve dritten Grades gleicht.

Eingegeben habe ich einfach Polynom[A BC]
Auch mit TrendPoly.. kommt nur eine Konstante als Lösung raus.
Deswegen habe ich gefragt, ob es auch sein kann, dass man mit meinen Punkten keinen Polynom erhalten kann

Ist das falsch was ich gemacht habe?
Antwort
Respon

Respon

11:35 Uhr, 20.12.2016

Antworten
Syntax beachten
( Falls die Punkte schon definiert, Buchstaben verwenden. )

TrendPoly
Antwort
Respon

Respon

11:42 Uhr, 20.12.2016

Antworten
Bei großen Datenmengen Trendlinie verwenden ( geht auch logarithmisch, exponentiell, ...)

Trendlini
Xalooz

Xalooz aktiv_icon

13:14 Uhr, 20.12.2016

Antworten


Habe es jetzt mit Excel versucht. Irgendwie nähert er meine Funktion falsch an.
Ist der 6te Grad der höchste?
Antwort
Atlantik

Atlantik aktiv_icon

16:33 Uhr, 20.12.2016

Antworten
Teile doch mal bitte die Koordinaten dieser Punkte mit.

mfG

Atlantik
Xalooz

Xalooz aktiv_icon

20:36 Uhr, 20.12.2016

Antworten

Meine Punkte

140und 8,249
500 und 9,996
1000 und 13,069
5000 und 14,611
10000 und 14,265
50000 und 14,140
100000 und 14,341
500000 und 12,021
1000000 und 12,260
5000000 und 14,866
10000000und 14,358
20000000und 27,187
30000000und 23,642
35000000und 18,402

Antwort
Roman-22

Roman-22

21:05 Uhr, 20.12.2016

Antworten
Da würd ich doch mal eine halblogarithmische Darstellung wählen, bzw. die x-Werte logarithmieren.

Wie kommst du denn zu dieser Aufgabe? Worum genau geht es und wofür benötigst du die gesuchte Funktionsgleichung?

Ich vermute ja, dass du mit Interpolation, vl auch Spline-Interpolation, in den meisten Fällen gut bedient sein würdest.
Natürlich gibt es auch eine Polynomfunktion 13. Grades, welche durch alle deine 14 Punkte läuft, doch wirst du von ihr wohl enttäuscht sein, denn du würdest bei einigermaßen brauchbarer Skalierung nur nahezu senkrechte Linien durch deine Punkte sehen, weil die Kurve extrem stark oszilliert und große "Amplituden" hat.

Führst du eine Polynominterpolation für die logarithmierten x-Werte durch, oszilliert das Ergebnis zwar immer noch, aber deutlich weniger. Siehe Anhang.

P.S.: Ein gutes Programm für diese Zwecke, vor allem aber für Regressionen, nicht unbedingt Interpolationen, ist CurveExpert Professional.


Bild1
Xalooz

Xalooz aktiv_icon

08:28 Uhr, 21.12.2016

Antworten


Danke für Antwort!

Ich habe es versucht mit deinem Programm zu realisieren. Allerdings klappt es nicht so wie du es gemacht hast. Würdest du bitte Datei hochladen können?
Antwort
Werner-Salomon

Werner-Salomon aktiv_icon

10:10 Uhr, 21.12.2016

Antworten
Hallo Xalooz,

ich habe spaßeshalber mal ein Polynom 3.Ordnung durch die 14 Punkte gelegt (die grüne Kurve). Bis auf das Ende sieht das recht gut aus (s. Skizze - die X-Achse ist logarithmisch).
Ansonsten bin ich völlig Romans Meinung. Mit einem Polynom von 13'ter oder ähnlich hoher Ordnung wirst Du nicht froh!

Daher wäre es auch für Dich hilfreich, wenn Du auf Romans Fragen antworten würdest, statt zu versuchen dieses Polynom zu erzeugen.

Gruß
Werner

SKizze
Xalooz

Xalooz aktiv_icon

10:22 Uhr, 21.12.2016

Antworten

Ich habe die Frage wohl übersehen.
Ich möchte auch y-Werte für andere x-Werte zwischen dem Intervall erhalten(näherungsweise). Dann wird wahrscheinlich das Polynom 3ter Ordnung sehr ungenau sein.
Antwort
Roman-22

Roman-22

10:42 Uhr, 21.12.2016

Antworten
Was spricht dann dagegen, simple lineare Interpolation zu verwenden? Also quasi immer zwei benachbarte Punkte durch ein Geradenstück zu verbinden. Das lässt sich zB auch in irgend eine Steuerung in einen μC einfach einprogrammieren, sollte das dein ziel sein. Wir wissen ja noch immer nicht, was du genau vor hast, wie du die Interpolation verwenden möchtest und was dir zur Verfügung steht.

Beachte bei Werners Polynom dritten Grades, dass dieses bei den Abszissenwerten von den logarithmierten Daten ausgeht. Für deine Originaldaten erhältst du dann eben eine Funktion, die eine Summe Potenzen von lg(x) ist. Sowie ich das im Screenshot für das Polynom 13.Grades gezeigt hatte.

Ich würde also zu linearer Interpolation raten und wenns wirklich "runder" und glatter sein soll, dann eben Splines. Die wären, da du ja relativ wenige Datenpunkte hast, auch nicht so aufwändig zu realisieren, aber da müsstest du dich schon selbst in die zugehörige Theorie einlesen.
Wenn du zB lineare Interpolation verwendest, musst du auch für dich entscheiden, ob du diese für die Originaldaten, oder für die mit den logarithmierten x-Werten durchführen möchtest. Ich denke, dass zweiteres vermutlich sinnvoller ist.

Die Idee, EINE Funktion zu finden, die den gesamten Bereich abdeckt, würde ich vergessen. Es gibt sie natürlich und mit meinem Screenshot hab ich dir auch eine gezeigt, aber sie erzeugen idR nicht den glatten Kurvenverlauf, den du vermutlich erwartest.

P.S.: Datei hochladen geht hier nicht, Außerdem hab ich nicht CurveExpert verwendet, sondern Mathcad (und auch da hab ich mir die Datei nicht aufgehoben). In Curveexpert solltest du aber leicht das gleiche Ergebnis erzielen können, wenn du eben anstellen der Original x-Werte die logarithmierten x-Werte eintippst. Außerdem kannst du ja jederzeit die Koeffizienten von meinem Screenshot ablesen und in ein Programm deiner Wahl eintippen. Du siehst aber bereits an meinem Screenshot, dass diese Funktion auch nicht optimal zur Interpolation geeignet ist, obwohl sie exakt durch alle 14 Stützpunkte läuft.

Xalooz

Xalooz aktiv_icon

15:19 Uhr, 21.12.2016

Antworten


Leute ich kriege die krise.
Habe die Kurve anzeigen lassen(Linear Splines) und die x-Achse log eingestellt, aber wie zum teufel kann man die Funktion anzeigen lassen?
Habe CurveExpert benutzt
Antwort
Roman-22

Roman-22

15:30 Uhr, 21.12.2016

Antworten
> wie zum teufel kann man die Funktion anzeigen lassen?
DIE Funktion!!? Gar nicht!
Diese deine Frage zeigt leider, dass du dich weder mit dem bisher geschriebenen, noch mit linearer oder kubischer Spline Interpolation auseinandergesetzt hast.

Es geht nicht um DIE Funktion, sondern um 14 einzelne, unterschiedliche lineare Funktionen! Und eine Geradengleichung kannst doch auch selbst aufstellen, wenn zwei Punkte bekannt sind. Um mehr gehts nicht!

-> de.wikipedia.org/wiki/Spline-Interpolation


Xalooz

Xalooz aktiv_icon

16:12 Uhr, 21.12.2016

Antworten


Ich habs schon gelesen. Trotzdem bin ich davon ausgegangen, dass das Programm selbstständig lösen kann. Kann doch bestimmt auch mit dem Programm alle Geraden bestimmen? Du hast doch nicht alle 14 mit dem Rechner bestimmt
Antwort
Roman-22

Roman-22

20:10 Uhr, 21.12.2016

Antworten
> Trotzdem bin ich davon ausgegangen, dass das Programm selbstständig lösen kann.
Macht es doch, oder?

> Kann doch bestimmt auch mit dem Programm alle Geraden bestimmen?
Wozu?

> Du hast doch nicht alle 14 mit dem Rechner bestimmt
Nein, denn falls es dir bereits aufgefallen ist, habe ich dir gar keine linearen Splines gepostet, sondern ein Polynom von 13. Grad in lg(x). Und dessen Koeffizienten hat selbstverständlich das Programm berechnet.
Da du partout nicht sagen möchtest, worum es hier geht und was genau du machen möchtest (mittlerweile ist da aber auch nicht mehr relevant - wer nicht will, der hat schon), kann man dir auch nicht weiter helfen.

Daher nur eine letzte Bemerkung: Wenn es dir tatsächlich nur darum geht, wie du geschrieben hast, von Zwischenwerten für x Funktionswerte zu bestimmen - das kann jedes bessere Mathe-Programm. Und auch in CurveExpert etwa öffnest du, nachdem du Linear Splines gewählt hast, das Result Fenster und dort den "Analyze" Tab. Jetzt kannst du zu beliebigen x-Werten die zugehörigen y-Werte berechnen lassen. Unter "Table" kannst du dir auch eine umfangreichere Wetetabelle erstellen lassen und exportieren.
Es ist dazu überhaupt nicht nötig, dass dir CurveExpert alle möglichen Geradengleichungen angibt. Wäre auch nicht sonderlich hilfreich und sinnvoll (denke an Datenwolken von mehreren Hundert Werten), wenn dir das Programm doch ohnedies zu jedem Wert den interpolierten Ordinatenwert liefert. Außerdem funkt lineare Interpolation nicht notwendigerweise über die Geradengleichung, sondern verwendet direkt die Ankerpunkte und deren Koordinaten. Aber das hast du ja ohnedies schon nachgelesen.
Im übrigen beherrscht auch das kostenlose Geogebra Splines.

Xalooz

Xalooz aktiv_icon

21:39 Uhr, 21.12.2016

Antworten
Danke für die Antwort. Ich habe es ausprobiert, eigentlich das was ich will x-Wert eingeben und y-Wert erhalten, aber ich brauche eine Funktion, also eine die ich unabhängig vom Programm anwenden kann. Im Prinzip genauo eine wie in deinen ersten Beitrag. Klar kann ich die Abschreiben, möchte aber selbst ausprobieren.
Ich glaube du hast es mit Mathcad gemacht. Die Installation macht Probleme. Gibs bestimmt noch ein anderes Programm das so präzise arbeitet

Das sind Messwerte an bestimmten Punkten. Ich will wie bereits gesagt die bestmöglichste Funktion, mit der ich näherungsweise auch andere Werte berechnen kann.

Ich denke die lineare Verbindung ist schon ganz gut. Besser wäre, wenn es vllt bisschen runder wäre, aber nicht so extrem wie bei kubische Spline, sondern nur ganz schwach, aber nicht so wichtig. Wäre froh, wenn ich es überhaupt irgendwie noch hinkriege.
Xalooz

Xalooz aktiv_icon

12:51 Uhr, 24.12.2016

Antworten

Wenn ich lineare Interpolation verwende, kann ich ja 14 Geraden bestimmen, aber wie verbindet man es zu einer Funktion oder geht das nicht?

Am liebsten hätte ich immer noch die Kurve, die Roman in seinem ersten Beitrag gezeigt hat. Weiß denn keiner ob es mit einer anderen Software als MathCad geht?
Geogebra, CurveExpert,Excel alle fallen weg
Antwort
Roman-22

Roman-22

14:41 Uhr, 24.12.2016

Antworten
> Wenn ich lineare Interpolation verwende, kann ich ja 14 Geraden bestimmen, aber wie verbindet man es zu einer Funktion

Programmiertechnisch gesprochen mit Verzweigungen:
Wenn x im Bereich (xi;xi+1), dann gilt diese Funktion, etc.

Mathematisch handelt es sich um eine stückweise definierte Funkion. Natürlich kann man sie nicht einfach durch einen einzigen Funktionsterm beschreiben.

Wie du das nun konkret realisierst kannst nur du wissen, da du hier der einzige bist, der weiß (wissen sollte) worum es hier konkret geht und was genau du eigentlich wie und wo realisieren möchtest. Uns wolltest du es ja partout nicht verraten und wie schon gesagt, interessiert es mittlerweile auch nicht mehr.

> Geogebra, CurveExpert,Excel alle fallen weg
Warum denn?. Alle drei beherrschen meines Wissens die einfache Polynomregression. Bei Excel bin ich mir nicht sicher, ob der Grad bis auf 13 einstellbar ist, Geogebra kann das vermutlich sehr wohl und Curveexpert kann es ganz sicher. Natürlich musst du die x-Werte erst logarithmieren, dann die Polynomregression durchführen und im Ergebnispolynom die x durch die Logarithmen von x ersetzen. Dann kommst du genau auf die von mir gepostete Funktion, die aber vor allem für die kleineren x-Werte keine gute Lösung darstellt. Ich habs in Mathcad damals jedenfalls auch nicht anders gemacht.

Frohes Fest und schöne Feiertage

R

Xalooz

Xalooz aktiv_icon

16:02 Uhr, 25.12.2016

Antworten

Du hast geschrieben:

Natürlich musst du die x-Werte erst logarithmieren, dann die Polynomregression durchführen und im Ergebnispolynom die x durch die Logarithmen von x ersetzen.

Logarithmiere ich die x-Werte, wenn ich die Achse auf log einstelle?
Was meinst du mit "im Ergebnispolynom die x durch die Logarithmen von x ersetzen"
Das verstehe ich irgendwie nicht
Antwort
Roman-22

Roman-22

20:45 Uhr, 25.12.2016

Antworten
Du ersetzt die x-Werte durch ihre logarithmierten Werte (zB mit dem dekadischen Logarithmus lg). Das geht, weil alle dein x>0 sind. Wenn du nun plottest kommst du auf ein Bild wie von Werner gepostet. Beachte, dass im Unterschied zu meinen Bildern, bei denen ich schon wieder die Originalwerte für x verwendet habe, bei ihm die x-Achese ganz normal linear geteilt ist und an seiner Achsenbeschriftung/-skalierung siehst du ja, das es hier nicht um die Original-x-Werte geht.

Nun führst du mit einem Programm deines Vertrauens (sofern du nicht das lineare Gleichungssystem für die 14 Variablen per Hand lösen möchtest) die Polynomregression durch und solltest in etwa die Koeffizienten aus meinen Bild bekommen.
Da das aber nun ein Polynom für die logarithmierten x-Werte ist, musst du für die Interpolation mit deinen Original-x-Werten diese erst logarithmieren, bevor du sie in die Polynomfunktion einsetzt. Das entspricht einem Ersetzen von x durch lg(x) im Polynom.

Ob diese, wie schon früher geschrieben, immer noch recht oszillierende Funktion für deine Bedürfnisse reicht, musst du natürlich selbst entscheiden. Siehe dazu auch im Anhang drei leicht unterschiedliche Spline-Interpolationen im Vergleich mit der Polynomregression.
Und bevor du frägst - NEIN, auch bei den Splines gibts nicht EINE Funktionsgleichung. Vielmehr stückelt sich der Graph aus 13 Polynomen dritten Grades (die je zwei Nachbarpunkte verbinden) so zusammen, dass auch erste und zweite Ableitung (speziell auch an den Übergangsstellen) stetig sind.


splines
Xalooz

Xalooz aktiv_icon

21:47 Uhr, 30.12.2016

Antworten


Hallo,

ich war einige Tage im Urlaub.
Danke, ich habe es verstanden. Ich brauche nicht EINE Funktion bzw. es geht auch wenn es 13 Polynome werden in den jeweiligen Abschnitt. Kann man das irgendwie berechnen/bestimmen?
Antwort
Roman-22

Roman-22

22:07 Uhr, 30.12.2016

Antworten
> Kann man das irgendwie berechnen/bestimmen?
Natürlich kann man. Dazu müsstest du dich eben in die Theorie der Splines einlesen.
Aber da es dir ja bereits zu aufwändig war, die 13 Geradengleichungen für die lineare Interpolation aufzustellen ...
Denn bei der linearen Interpolation ist jede Gerade nur von den beiden Punkten abhängig, die sie verbindet - einfacher gehts eigentlich nicht mehr. Bei den kubischen Splines ist aber die Kubik ganz links auch noch (geringfügig) von den Punkten ganz rechts abhängig. Da ist dann zur Bestimmung der Koeffizienten ein größeres Gleichungssystem zu lösen.
Es gibt viele Programme, die Spline-Interpolationen durchführen können, aber ich kenne eigentlich keines, das dir auf Knopfdruck sämtliche Funktionsgleichungen liefert. Allerdings habe ich auch nie danach gesucht, weil ich nie das Bedürfnis hatte, diese Gleichungen zu kennen.

Aber OK, hier ein paar Links (und du findest genügend weitere bei Interesse:
de.wikipedia.org/wiki/Spline-Interpolation
http//www.zebresel.com/wp-content/uploads/2012/07/ModMA_SoSe12_Tobias_Schwandt.pdf
http//www.arndt-bruenner.de/mathe/scripts/kubspline.htm
Frage beantwortet
Xalooz

Xalooz aktiv_icon

09:41 Uhr, 17.01.2017

Antworten


Danke für die Hilfe!