Gebrochenrationale Funktionen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Jaga
User
Beiträge: 64
Registriert: Mittwoch 21. August 2013, 13:18

Nehmen wir mal als Beispieldie Funktion 1/x.
Startwert: -5
Endwert: 5
Genauigkeit: 0.1

Wenn ich mir die x-Werte ausgeben lasse, erhalte ich ja die oben schon erwähnte Matrix mit allen Werten für x im Abstand von 0.1.
Also -5.0 -4.9-4.8 usw.
Man sollte dann ja auch davon ausgehen, dass man bei 0 auch 0 erhält und nicht -1,77*10**-14.
Dementsprechend verunstaltet sind dann die y-Werte auch.

Gibt es keine Möglicheit die gesamte Matrix im Prinzip zu runden?
Bei einzelnen floats ist das ja mit format möglich.
FASTER! HARDER! LOUDER!
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@Jaga: dass Du für x keine exakten Werte bekommst, ist nicht Dein Problem. Abweichungen von 10^-14 spielen gerade bei der Darstellung von Funktionen keine Rolle.
Jaga
User
Beiträge: 64
Registriert: Mittwoch 21. August 2013, 13:18

@ Sirius3 und wie das eine Rolle spielt va für Polstellen usw.
@ BlackJack und wie das geht! Problem ist gelöst und zwar so:


self.x = np.around(self.x, 10)

Hier werden alle Werte in der Matrix einfach auf 10 Dezimalstellen gerundet und alles ist wunderbar!! :!: :!:
FASTER! HARDER! LOUDER!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

Jaga hat geschrieben:@ Sirius3 und wie das eine Rolle spielt va für Polstellen usw.
Das spielt gar keine Rolle, dir ist nur nicht klar, wie klein 10^(-14) ist. Auf 10^(-14) Meter passen zum Beispiel etwa ein halbes Dutzend Protonen. Wenn du deine Graphen nicht gerade unter einem Elektronenmirkoskop anschaust, dann wirst du das schwerlich erkennen können.
Das Leben ist wie ein Tennisball.
Sirius3
User
Beiträge: 17754
Registriert: Sonntag 21. Oktober 2012, 17:20

@EyDu: da sich der Fragensteller mit seiner scheinbar richtigen Lösung des Problems zufrieden gibt, hier trotzdem die Auflösung des Rätsels, damit andere Threadleser nicht dumm sterben:
Durch die kleine Abweichung von 0 wird 1/x nicht zu »inf« sonder zu einem sehr großen Wert.
Matplotlib passt beim Plotten die y-Achse entsprechend an, so dass es aussieht, als ob alle anderen y-Werte 0 wären. Ist x dagegen exakt null, ist 1/x=inf und der Wert wird beim Plotten ignoriert, die y-Achse geht also von -10 bis +10 und der Dau sieht die typischen 1/x-Kurven.
Antworten