Aufeinander folgende Zahlen¶
Bei dieser Aufgabe geht es um das Lösen einer Summengleichung.
Aufgabe:
Betrachtet wird eine Folge von aufeinander folgenden,
ganzzahligen Werten
.
Die Summe der ersten
Zahlen sei
um einen Differenzwert
kleiner als die Summe
der restlichen Zahlen. Wie lässt sich diese Aufgabe mathematisch
formulieren? Welche Lösung ergibt sich für
,
und
?
Lösung:
Damit die obige Bedingung erfüllt ist, muss folgende Gleichung gelten:
Um diese Aufgabe mit sympy
zu lösen, können beide Summen in der obigen
Gleichung auch in folgender Form dargestellt werden:
Hierbei ist der zu bestimmende Initialwert um
kleiner als
der erste Wert der Zahlenreihe. Diese Darstellung hat den Vorteil, dass die
Summen leichter formuliert werden können und die Gleichung nur noch eine
Unbekannte aufweist. Der Quellcode zur Lösung der Gleichung mittels Sympy kann beispielsweise so aussehen:
import sympy as sy
# Sympy-Variablen initiieren:
n,m1,d = sy.symbols('n m1 d')
x,i = sy.symbols('x i')
# Terme festlegen
s1 = sy.summation(x + i, (i,1,m1))
s2 = sy.summation(x + i, (i,m1+1,n))
# Gleichungen formulieren:
equation = sy.Eq( s1 + d , s2)
equation_concrete = equation.subs({n:5,m1:2,d:42})
# Gleichung(en) lösen:
sy.solve(equation, x, 'dict')
sy.solve(equation_concrete, x, 'dict')
# Ergebnisse:
# Allgemein:
# [{x: (-d - m1**2 - m1 + n**2/2 + n/2)/(2*m1 - n)}]
# Konkret:
# [{x:33}]
Beim Lösen der Gleichung wurde hierbei explizit die Variable als
gesuchte Variable angegeben; ebenso könnte die Gleichung beispielsweise nach
für einen gegebenen Startwert
aufgelöst werden.
Das Ergebnis für die konkrete Aufgabe lautet . In diesem Fall sind
die
Zahlen also gleich
, die Summe der
ersten
Zahlen ist
, die Summe der weiteren
Zahlen ist gleich
.