Lineare Funktionen - endlich!
Verfasst: Freitag 20. April 2018, 13:58
Hii ^.^
Habe mich jetzt endlich hingesetzt und ein Skript geschrieben, das aus zwei gegebenen Punkten eine lineare Funktion errechnet. Ich habe meine Erwartungen allerdings insoweit zurückgeschraubt, als dass ich nicht mehr versuche, beliebig hohe Grade zu implementieren, so nach dem Motto "mein Skript kann Funktionen a'la f(x) = ax^9 + bx^8 + cx^7... ausrechnen". Gerade Striche reichen mir momentan ;p
Übrigens, mein Algorithmus entstammt einer Rechnung auf Papier, völlig ohne numerische Werte, nur mit Variablen. War echt anstrengend, umso mehr freut es mich, dass das seltsame Ergebnis tatsächlich funktioniert.
Habe mich jetzt endlich hingesetzt und ein Skript geschrieben, das aus zwei gegebenen Punkten eine lineare Funktion errechnet. Ich habe meine Erwartungen allerdings insoweit zurückgeschraubt, als dass ich nicht mehr versuche, beliebig hohe Grade zu implementieren, so nach dem Motto "mein Skript kann Funktionen a'la f(x) = ax^9 + bx^8 + cx^7... ausrechnen". Gerade Striche reichen mir momentan ;p
Übrigens, mein Algorithmus entstammt einer Rechnung auf Papier, völlig ohne numerische Werte, nur mit Variablen. War echt anstrengend, umso mehr freut es mich, dass das seltsame Ergebnis tatsächlich funktioniert.
Code: Alles auswählen
# Deklaration Funktionen
def user_input():
while True:
try:
x1 = float(input('Punkt 1, x-Wert: \n'))
except ValueError:
print('Bitte eine Zahl eingeben! \n')
continue
else:
break
while True:
try:
y1 = float(input('Punkt 1, y-Wert: \n'))
except ValueError:
print('Bitte eine Zahl eingeben! \n')
continue
else:
break
while True:
try:
x2 = float(input('Punkt 2, x-Wert: \n'))
except ValueError:
print('Bitte eine Zahl eingeben! \n')
continue
else:
break
while True:
try:
y2 = float(input('Punkt 2, y-Wert: \n'))
except ValueError:
print('Bitte eine Zahl eingeben! \n')
continue
else:
break
return [x1, y1, x2, y2]
def linear_function(points): # erwartet eine Liste/Tupel mit zumindest vier Zahlen. -> [x1, y1, x2, y2], siehe oben
b = (((points[3] * points[0]) / points[2]) - points[1]) / ((-1) + (points[0] / points[2]))
a = (points[1] / points[0]) - (b / points[0])
return "f(x) = {}x + {}".format(a, b)
# ---------------------------
print(linear_function(user_input()))