Hilfe Nullstellen
-
Servus,
also, nehmen wir mal das Polyn. für eine quadratische Gleichung:
f(x) = a * x^2 + b * x + cNullstellen ermitteln: f(x) = 0
Deswegen heißen sie auch Nullstellen. Bei a=1, b=0 und c=0 besitzt die Funktion z.B. eine doppelte Nullstelle ohne dass sich das Vorzeichen geändert hatHast du alle Nullstellen ermittelt musst du noch angeben, ob es sich um eine einfache oder doppelte Nullstelle handelt.
Tipp: Eine Vorzeichenänderung kann an den Punkten von f'(x) = 0 vorkommen, aber dies ist keine muss Bedingung.
Nachdem kannst du ja noch eine Wertetabelle anfertigen und ausgeben lassen. Damit dürfte der Prof. zufrieden sein. Denn die Nullstellenermitllung auf rein numerischen Wegen ist nicht so einfach, besonders wenn man mit Fließkommazahlen arbeiten muss. Hierzu ein kleines Beispiel:
Nehmen wir mal an wir die Funktion f(x) hat eine Nullstelle bei x=4,84734. Wie ermittle ich diese mit einen Alg. der nur eine Schrittweite von deltaX=0,1 kennt? Ich brauche also eine Alg. der eine erste Schrittweite von deltaXone= fSchritt(a, b, c). Nun benötigen wir eine guten Startpunkt x0=0. Jetzt können wir von diesem nach links und rechts gehen bis wir eine Nullstelle an der Stelle x1 vermuten. Diese Grenzen wir durch die Verkleinerung der Schrittweite weiter ein. Hier musst du darauf achten, dass du mit der Schrittweite nicht die Genauigkeitsgrenze von float unterschreitest. Achja, eine Anpassung der Zahlen wäre nach x Rechenschritten auch nicht schlecht. ...Und so weiter. Aber bevor du das Rad neu erfindest solltest du dir vielleicht mal die numerischen Lösungswegen von den großen Köpfen betrachten. Stichwörter wären hierzu das Tangentenverfahren von Isaac Newton oder die Regula Falis.
ibaxx schrieb:
na wenn du den fehler in der formel gefunden hast, warum sagst du mir nicht was da falsch ist?
Das hat er doch schon längst.
- Bei deinem Beispiel ließt du nur a und b ein. Wo ist c geblieben ?
- Die Berechnung ist absolute Schwachsinig und zeugt von keiner großartigen Erfahrung. z.B.float f = 1.0 if(f == 1) { // dumm, dümmer, ... ;) }
Gruß,
Thomas
-
Siassei schrieb:
- Bei deinem Beispiel ließt du nur a und b ein. Wo ist c geblieben ?
wenn kein c angegeben ist c = 0
also formel a*x*x+b*x+0
da ist doch kein problem
-
ibaxx schrieb:
also formel a*x*x+b*x+0
Dann solltest Du das auch so ausrechnen.
-
Eine Vorzeichenänderung kann an den Punkten von f'(x) = 0
So wie beim Sinus.
Oder bei x*x+1.
Es gibt ganz allgeimein überabzählbar viele völlig sinnlose
"Nicht-Muss-Bestimmungen".
Ich würde eher sagen:Eine Vorzeichenänderung kann an Punkten vorkommen, wo f(x) = 0.
-
flamer schrieb:
Es gibt ganz allgeimein überabzählbar viele völlig sinnlose "Nicht-Muss-Bestimmungen".
ist dazu notwendig, daß du unendlich lange "Nicht-Muss-Bestimmungen" zuläßt?
-
ist dazu notwendig, daß du unendlich lange "Nicht-Muss-Bestimmungen" zuläßt?
Gute Frage...
Bin am Grübeln.
-
ibaxx schrieb:
Siassei schrieb:
- Bei deinem Beispiel ließt du nur a und b ein. Wo ist c geblieben ?
wenn kein c angegeben ist c = 0
also formel a*x*x+b*x+0
da ist doch kein problem
Natürlich nicht. Man sollte es zumindestens Dokumentieren. Da ich in deiner Abfrage auch eine 0 eingeben kann
flamer schrieb:
Eine Vorzeichenänderung kann an Punkten vorkommen, wo f(x) = 0.
Natürlich. Ich wollte mit meiner Aussage (die mehr als schlecht ist) auf die Steigung hinweisen und Ibaxx einen neuen denkanstos geben. Mir erscheint, dass ibaxx an keiner Hilfestellung interessiert ist. Er möchte wahrscheinlich, dass wir die Lösung hier veröffentlichen.
-
was mich irritiert:
habe mit ihr zusammen einen algorithmus entwickelt
ich dachte, der wäre vorgegeben?
du versuchst hier übrigens sowas wie das bisektionsverfahren zu machen. das ist aber für mehr als eine nullstelle im zu untersuchenden bereich ungeeignet.
http://de.wikipedia.org/wiki/Bisektion#Kontinuierlicher_Fall
-
volkard schrieb:
ist dazu notwendig, daß du unendlich lange "Nicht-Muss-Bestimmungen" zuläßt?
Ich befürchte schon.
-
Einen hab ich noch:
Tipp: Eine Vorzeichenänderung kann an den Punkten von f'(x) + C = 0 vorkommen, dies ist eine muss Bedingung.