열역학 실험실의 결과를 처리하기 위해 Python (3)을 사용하려고합니다. 그 중 가장 적합한 곡선을 찾고, 지수를 추측해야합니다. SymPy를 사용하여이를 해결하고 내 데이터를 실행 한 후 평균을 구합니다 (상수이어야 함).SymPy 해결 방정식을 함수로 바꾸는 데 문제가 있습니다.
나만 붙어 있습니다. 심피 (SymPy)는 방정식을 훌륭하게 해결하지만, 솔루션을 유용한 형태로 바꾸는 것은 저를 뒤 흔드는 것입니다. SymPy에서 심볼릭이 아닌 다른 것으로 되돌릴 수있는 방법이 있습니까? 이것은 지금까지 시도한 것입니다 :
def Solve_Tao(Td,TC,t):
"""Solves for Decay Constant and Returns Average For Data"""
T = t # Time, Storing so it doesn't become symbolic
Tao, t, Tinf, Tsi, Ts_t = sp.symbols('Tao t Tinf Tsi Ts_t')
sp.init_printing(use_unicode=False)
TaoStrings = sp.solve([(Tinf + (Tsi - Tinf) * sp.exp(-t/Tao))-Ts_t], [Tao])
TaoStrings = sp.sstrrepr(TaoStrings)
TaoS = TaoStrings[6:9] + 'np.'+ TaoStrings[9:-1]
eq = parse(TaoS)
Tinf = Td
Ts_t = TC
Tsi = TC[0]
t = T
tao = eq
print('tao',tao)
return tao
그러나 인쇄 된 tao 값은 0이 아닙니다. 유형 (eq)은 tao '< _ast.Module 객체 (0x10773b3c8>)'를 제공합니다. 내가 이걸로 할 수있는 것이 있습니까? 그렇지 않다면 SymPy에서 해결 된 방정식을 사용할 수있는 방법이 있습니까?
귀하의 도움에 감사드립니다.
감사합니다. 나는 당신이 사전과 반복을 제안했다 .Subs(). 첫 번째는 'Dict'에 attibute 'Subs'가 없다는 것을 알리고 두 번째 시도는 다음과 같습니다. AttributeError : 'Mul'객체에 'Subs'속성이 없습니다. –
대문자 'Subs'를 사용하지 않았 으면합니다. 그렇지 않은 경우 전체 코드를 표시하십시오. –
나는 그랬다! 문제가 해결되어 잘 작동합니다. 고맙습니다! –