Nullstellenfinder

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.
Antworten
thirdpartycookie
User
Beiträge: 2
Registriert: Donnerstag 5. Dezember 2013, 20:11

Hi Forum,

ich will ein Programm bauen, dass mir eine Nullstelle (y=0) eines Terms ausgibt.
ich bin schon soweit gekommen:

Code: Alles auswählen

print("Funktion eingeben")
Funktion=input()

for x in range (-200,200,1):
    if Funktion!=0:
        continue
    else:
        print(x)
        break
scheine aber was falsch zu machen.
Weiß jemand wie das geht? PS: Das ist keine Hausaufgabe, mache das nur zum Üben.
BlackJack

@thirdpartycookie: Such Dir etwas einfacheres zum üben. Man kann nicht so einfach Funktionen eingeben. Und wenn man das auch noch halbwegs sicher machen können soll, dann wird es *noch* schwieriger. Auch kann man durch durchprobieren von einem Haufen ganzer Zahlen keine Nullstellen finden. Höchstens durch Zufall.
thirdpartycookie
User
Beiträge: 2
Registriert: Donnerstag 5. Dezember 2013, 20:11

gehts auch nicht mit eval () oder ähnlichem?
Benutzeravatar
pixewakb
User
Beiträge: 1412
Registriert: Sonntag 24. April 2011, 19:43

Warum nicht die pq-Formel implementieren und prüfen, ob denn die Eingabe (Gleichung) dazu passt. Man könnte auch die Eingabe runterbrechen :) und so z. B. verhindern, dass was anderes als p und q eingegeben wird...

Nachtrag: Ich schaue es mir jedenfalls mal an. Lief gerade nicht so einfach :)
BlackJack

@pixewakb: Wenn man die Eingabe als Formel interpretieren will und dann auch noch Tests auf Bestandteile dieser Formal machen möchte, muss man eine eingegebene Zeichenkette parsen. Zumindest wenn das vernünftig gemacht werden soll. Da kommt man dann zu so Themen wie regulären Ausdrücken, kontextfreie Grammatiken, Parsern, abstrakte Syntaxbäume, rekursive Funktionen, vielleicht das Visitor-Entwurfsmuster, also objektorientierte Programmierung, und so weiter. Deswegen sagte ich ja das ist nichts für Anfänger, insbesondere welche die Quelltext wie im Eingangsbeitrag von diesem Thema schreiben. Selbst wenn man zum Beispiel Formeln als Python-Code eingibt und die Module aus der Standardbibliothek zum parsen verwendet, ist das alles noch reichlich komplex.

Da kann man irgendwann hin kommen, aber für einen offensichtlich absoluten Anfänger wie thirdpartycookie ist das IMHO ein zu hoch gestecktes Ziel. Da würde ich dringend erst einmal kleinere Brötchen empfehlen. Wenn es was mit Nullstellen suchen sein soll, könnte man zum Beispiel die Art der Formeln einschränken und so etwas für Polynome schreiben. Die liessen sich als Liste von Koeffizienten eingeben, was wesentlich einfacher ist als beliebige Funktionen verarbeiten zu müssen.
Antworten