Я недавно поступил в аспирантуру, и мой ПИ работает с python и хотел, чтобы я научился использовать его с помощью серии упражнений. Мне дали уравнение и сказали заставить его работать. Но я получаю ошибку, и я просто не понимаю, почему. Вот часть кода, которая вызывает проблему (я включил значения каждой функции суммирования и последовательность цифр c в качестве комментариев, поскольку я не включил код для функций):
import scipy.optimize as sciop
import sympy as sp
import math as mt
#Calculates coefficients and builds the function
def Function(x, raw_input, N):
sequence_numeric = sequence_numeric_value_parser(raw_input) #[0, 0, -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, -1, 0, 0, -1, 0, 0, 0, -1, -1, 1, 1, 0, 0, 0, 0, 0, -1, 0, 0, -1, 0, -1, -1, 0, 0, -1, -1, 0, 1, 0]
Q_summation = Q_Summation(sequence_numeric) ##-0.0011654102397665102
O_summation = O_Summation(N) ##-3.7169446884230575
B_summation = B_Summation(N) ##16.674533284328376
FiTC = 3/2 ##1st term constant
STC = ((3/(2*mt.pi))**(3/2))*O_summation ##2nd term constant
TTC = 0.1*((3/mt.pi)**3)*(1/16)*B_summation ##3rd term constant
FoTC = (7.2/3.8)*mt.sqrt(6/mt.pi)*Q_summation ##4th term constant
funct = FiTC*(x-sp.log(x)) + STC*x**(-3/2) + TTC*x**(-3) + FoTC*x**(-1/2)
print ("x = {} , funct = {}".format(x,funct))
return funct
#Minimizes function
def Minimizer():
x = 1.0
result = sciop.minimize(Function, x, args=(raw_input, N))
print("Minima at: ")
print("x = {}, funct = {}".format(result.x, result.funct))
Minimizer()
Я получаю ошибку:
Traceback (most recent call last):
File "C:\Users\Richard Miller\Desktop\A2v0.2.py", line 184, in <module>
Minimizer()
File "C:\Users\Richard Miller\Desktop\A2v0.2.py", line 178, in Minimizer
result = sciop.minimize(Function, x, args=(raw_input, N))
File "C:\Anaconda3\lib\site-packages\scipy\optimize\_minimize.py", line 604, in minimize
return _minimize_bfgs(fun, x0, args, jac, callback, **options)
File "C:\Anaconda3\lib\site-packages\scipy\optimize\optimize.py", line 1003, in _minimize_bfgs
old_fval = f(x0)
File "C:\Anaconda3\lib\site-packages\scipy\optimize\optimize.py", line 327, in function_wrapper
return function(*(wrapper_args + args))
File "C:\Users\Richard Miller\Desktop\A2v0.2.py", line 167, in Function
funct = FiTC*(x-sp.log(x)) + STC*x**(-3/2) + TTC*x**(-3) + FoTC*x**(-1/2)
File "C:\Anaconda3\lib\site-packages\sympy\core\function.py", line 473, in __new__
result = super(Function, cls).__new__(cls, *args, **options)
File "C:\Anaconda3\lib\site-packages\sympy\core\function.py", line 288, in __new__
evaluated = cls.eval(*args)
File "C:\Anaconda3\lib\site-packages\sympy\functions\elementary\exponential.py", line 659, in eval
coeff = arg.as_coefficient(I)
AttributeError: 'ImmutableDenseNDimArray' object has no attribute 'as_coefficient'
Я загрузил полный файл, в который я написал: https://github.com/rmiller415/A2