Я хочу решить дифференциальное уравнение, используя sympy на Python3.Мое уравнение относительно простое с двумя переменными.Однако в уравнении есть операторы log, power и exp.Использую ли я np.exp или sym.exp, это дает мне одну из двух ошибок ниже:
TypeError: 'module' object is not callable
AttributeError: 'Mul' object has no attribute 'log'
AttributeError: 'Mul' object has no attribute 'exp'
Я импортирую numpy и sympy отдельно.Я не уверен, что эти две библиотеки конфликтуют.
import math
import sympy as sym
from sympy import symbols, diff, exp, log, power
from sympy import *
data = [3, 33, 146, 227, 342, 351, 353, 444, 556, 571, 709, 759, 836, 860, 968, 1056, 1726, 1846, 1872, 1986, 2311, 2366, 2608, 2676, 3098, 3278, 3288, 4434, 5034, 5049, 5085, 5089, 5089, 5097, 5324, 5389,5565, 5623, 6080, 6380, 6477, 6740, 7192, 7447, 7644, 7837, 7843, 7922, 8738, 10089, 10237, 10258, 10491, 10625, 10982, 11175, 11411, 11442, 11811, 12559, 12559, 12791, 13121, 13486, 14708, 15251, 15261, 15277, 15806, 16185, 16229, 16358, 17168, 17458, 17758, 18287, 18568, 18728, 19556, 20567, 21012, 21308, 23063, 24127, 25910, 26770, 27753, 28460, 28493, 29361, 30085, 32408, 35338, 36799, 37642, 37654, 37915, 39715, 40580, 42015, 42045, 42188, 42296, 42296, 45406, 46653, 47596, 48296, 49171, 49416, 50145, 52042, 52489, 52875, 53321, 53443, 54433, 55381, 56463, 56485, 56560, 57042, 62551, 62651, 62661, 63732, 64103, 64893, 71043, 74364, 75409, 76057, 81542, 82702, 84566, 88682]
n = len(data)
tn = data[n-1]
b, c = sym.symbols('b c', real=True)
f = -(-n +sum(np.log(b*c*np.power(data,(c-1))*exp(-b*np.power(data,c)))))
diff(f,b)
diff(f,c)
Ожидается получение частной производной уравнения 'f' по параметрам 'b' и 'c'
Это неаналогично Что вызывает эту ошибку (AttributeError: объект 'Mul' не имеет атрибута 'cos') в Python? , поскольку причина не в проблеме с пространством имен