Вы можете сделать это, используя Sum
и Indexed
:
https://docs.sympy.org/latest/modules/concrete.html
https://docs.sympy.org/latest/modules/tensor/indexed.html
In [34]: x = IndexedBase('x')
In [35]: i, n = symbols('i, n', integer=True)
In [36]: Sn = Sum(100*(x[2*i-1]**2 - x[2*i])**2 + (x[2*i-1] - 1)**2, (i, 1, n))
In [37]: Sn
Out[37]:
n
____
╲
╲
╲ ⎛ 2⎞
╱ ⎜ 2 ⎛ 2 ⎞ ⎟
╱ ⎝(x[2*i - 1] - 1) + 100⋅⎝x[2*i - 1] - x[2*i]⎠ ⎠
╱
‾‾‾‾
i = 1
In [38]: Sn.subs(n, 2).doit()
Out[38]:
2 2
2 ⎛ 2 ⎞ 2 ⎛ 2 ⎞
(x[1] - 1) + 100⋅⎝x[1] - x[2]⎠ + (x[3] - 1) + 100⋅⎝x[3] - x[4]⎠
Вы можете делать что-то с Sn
, но есть ограничения на то, какие операции вы можете использовать, не заменяя n
конкретным целым числом.