Polynomkoeffizienten berechnen mit solve()
Verfasst: Donnerstag 25. Juli 2024, 00:30
Hallo zusammen,
ich habe folgendes Programm zu Berechnung der Koeffizieten eines Polynoms achten Grades aus markanten Punkten geschrieben:
Allerdings bekomme ich nur zwei leere Klammern als Ausgabe, ein empty set. Ich verstehe leider nicht, wo dass Problem liegt. Wenn ich die f.subs weg lasse, wird eine Lösung berechnet. Ebenso, wenn ich die sp.diff weg lasse.
ich habe folgendes Programm zu Berechnung der Koeffizieten eines Polynoms achten Grades aus markanten Punkten geschrieben:
Code: Alles auswählen
import sympy as sp
# Extrempunkte: (-6, 5), (-2, -1), (6, 5)
# Sattelpunkt: (2, 3)
# Wendepunkte: (-4, 2), (0, 1), (4, 4)
# Flachpunkt: (8, 4)
# Variablen definieren
x = sp.symbols('x')
a8, a7, a6, a5, a4, a3, a2, a1, a0 = sp.symbols('a8 a7 a6 a5 a4 a3 a2 a1 a0')
# Polynom definieren
f = a8*x**8 + a7*x**7 + a6*x**6 + a5*x**5 + a4*x**4 + a3*x**3 + a2*x**2 + a1*x + a0
# Bedingungen aufstellen
equations = [
f.subs(x, -6) - 5,
f.subs(x, -2) + 1,
f.subs(x, 6) - 5,
f.subs(x, 2) - 3,
f.subs(x, -4) - 2,
f.subs(x, 0) - 1,
f.subs(x, 4) - 4,
f.subs(x, 8) - 4,
sp.diff(f, x, 1).subs(x, -6),
sp.diff(f, x, 1).subs(x, -2),
sp.diff(f, x, 1).subs(x, 6),
sp.diff(f, x, 1).subs(x, 2),
sp.diff(f, x, 1).subs(x, 8),
sp.diff(f, x, 2).subs(x, 2),
sp.diff(f, x, 2).subs(x, -4),
sp.diff(f, x, 2).subs(x, 0),
sp.diff(f, x, 2).subs(x, 4),
sp.diff(f, x, 2).subs(x, 8),
sp.diff(f, x, 3).subs(x, 8)
]
# Gleichungssystem lösen
solution = sp.solve(equations, (a8, a7, a6, a5, a4, a3, a2, a1, a0))
print(solution)