Я использовал функцию eval для оценки функции. код написан ниже:
import numpy as np
import sympy
from sympy import Symbol, Add
s = sympy.Symbol('s')
x = [ s, s+1, 10*s**2, 5]
a = [1 + 1j, 2 , 3 , 4 , 5]
fun = Add(*x) # Create a function by adding all terms. * is to unpack all the values
def F(fun, v):
return fun.evalf(subs={s: v}) # Evaluate the function at s=v
f_dis = [F(fun, v) for v in a]
print (f_dis)
fit3 = np.asanyarray(f_dis)
print ("fit3 =", fit3)
realpart = fit3.real[0]
print ("real =", realpart)
результат f_dis
равен
[8.0 + 22.0*I, 50.0000000000000, 102.000000000000, 174.000000000000, 266.000000000000]
Суть в том, что код показывает 8.0 + 22.0*I
как действительную часть первого элемента, вместо того, чтобы показывать только 8
.
Что я должен сделать, чтобы решить эту проблему?
Благодаря.