Meine Vorgehensweise ist relativ einfach, indem ich ein Intervall vorgebe - wo ich mir sicher seine kann, dass es dort Nullstellen gibt. Dieses Intervall wird dann in k-Schritte aufgeteilt. Dann soll mein Programm dieses Intervall durchlaufen und jedesmal testen, ob die if-Bedingung erfüllt ist. Falls sie erfüllt ist, soll das entsprechende i zu einer leeren Liste hinzugefügt werden. Nun können es hier auch mehrere Kandidaten sein, welche diese Bedingung erfüllen. Deshalb nehme ich nur das mittlere Element aus der Liste, im k-Schritt.
Nun tritt leider folgende Ereignis ein, was man ganz einfach schon bei einer quadratischen Gleichung y = i**2 merken kann, wenn man dieses Programm ausführt. Für die Eingabe u = -1 , o = 1 und y = 2 wird mir nur eine Lösung angeben, statt zwei. Warum? Wo ist in meinem Programm der Fehler. Ich finde ihn einfach nicht. :K
Code: Alles auswählen
from math import *
u = float(input('Untergrenze u = '))
o = float(input('Obergrenze o = '))
y0 = float(input('gewünschter Wert y = '))
L = [] # Kandidatenliste im k-ten Schritt
K = [] # Finale Kandidatenliste aller k-ten Schritte
k = 0
i = u+k
while i <= o:
while i <= u+k+0.1:
y = i**2
if y < 0.00001+y0 and y > -0.00001+y0 or y == y0 :
L.append(i)
i = i+0.000001
y = i**2
else :
i = i+0.000001
y = i**2
k = k+0.1
i = u+k
K.append(L[len(L)//2])
print(K)
Würde mich sehr über eine ANtwort mit konstruktiven Tipps freuen.
Danke!
Gruß
hallo97