Kreisgleichung und andere Gleichungen plotten

mit matplotlib, NumPy, pandas, SciPy, SymPy und weiteren mathematischen Programmbibliotheken.
Antworten
Nupsi
User
Beiträge: 2
Registriert: Dienstag 28. Mai 2019, 09:40

Hallo Leute,

ich wollte mal fragen, ob es in Python die Möglichkeit gibt, einen Plot zu erstellen, der mit Hilfe einer Gleichung, beispielsweise mit der Kreisgleichung x^2+y^2=r^2 einen Plot zu erstellen, der mir die eingegebene Gleichung darstellt.

Ich kenne das von der Seite wolframalpha.com... Wenn ich dort x^2+y^2 eingebe, wird mir ein Contour-Plot gezeigt, welcher diese Gleichung darstellt.

Ich weiß leider gerade nicht wie ich diese Frage präziser stellen kann und hoffe jemand versteht was ich damit meine :? ...

Vielen Dank für jede Hilfe im Vorraus!
Üpsilon
User
Beiträge: 225
Registriert: Samstag 15. September 2012, 19:23

Da sonst noch niemand geantwortet hat, bin ich mal so frei:
Wenn du die Punkte plotten willst, die eine Gleichung erfüllen, dann ist das Wort dafür "impliziter Plot".
Am naheliegendsten wäre es da natürlich, die impliziten Funktionen händisch auszurechnen, das heißt hier x^2+y^2=r^2 nach y auflösen: y = +/- sqrt(r^2-x^2). Und dann halt diese beiden Funktionen plotten. Dabei können halt aus einer Gleichung prinzipiell viele Funktionen werden, hier sind es 2 (+ und -).

Wenn das nicht geht, könntest du ein Programm schreiben, was für feste x-Werte numerisch näherungsweise Lösungen für y berechnet. Nachteil dabei ist, dass es für einen x-Wert mehrere y-Werte geben kann und man irgendwie dafür Sorge tragen muss, dass man dann auch alle findet.
Oder du könntest ein Array von x-Werten und eins von y-Werten in geeigneten Intervallen nehmen, und für jede Kombination davon im Programm nachrechnen, ob sie die Gleichung ungefähr erfüllen, d.h. hier ob x^2+y^2 weniger als eine gewisse Schranke von r^2 wegliegen. Nachteil dabei ist dass bei zu großer Schranke viele Punkte mitgeplottet werden, die man gar nicht sehen wollen würde, und bei zu kleiner Schranke Punkte die auf dem Graphen zu liegen hätten, aber denen man mit den x- und y-Werten aus dem Array nicht nahe genug kommt, nicht geplottet werden
Und beide Verfahren können rechenzeitaufwändig werden.
PS: Die angebotene Summe ist beachtlich.
Nupsi
User
Beiträge: 2
Registriert: Dienstag 28. Mai 2019, 09:40

Vielen Dank für deine Antwort!

Habe es jetzt auch erst mal so gemacht, wie du es als erstes vorgeschlagen hast, also mit auflösen nach y und dann die Punkte durch x und y plotten lassen. Das funktioniert auch weitgehend. Aber der andere Ansatz den du vorgeschlagen hast finde ich auch sehr interessant. Werde es die Tage auch mal ausprobieren und dann sehen, was in meinem Fall besser funktioniert.

Hast mir auf jeden Fall erstmal ein ganzes Stück weiter geholfen!
Antworten