def function(x):
    return x**2
def ableitung_function(x):
    return 2*x


x = 20
epochen = 15
for i in range(epochen):
    ableitung = ableitung_function(x)
    print(":____:")
    print(ableitung)
    print(x)
    print(":____:")
    lernrate = 0.1
    x_new = x-(lernrate*ableitung)
    x = x_new

Ist mein Gradientenabstieg korrekt? Meiner Meinung nach liefert es gute Ergebnisse, aber wenn ich eine Funktion wie z.b. x^3 und die Ableitung 3*x^2 benutze läuft alles falsch und wo brauche ich meine Funktion 'function'?

LG