나는 (f(t) * g(t))^a
과 같은 간단한 방정식을 가지고 있는데, 여기서 a
은 매개 변수이고 f
과 g
은 t의 함수입니다. 내가 복제하기 위해 노력하고있어 방법은Sympy가 값을 잘못 대체하는 이유는 무엇입니까?
가
f(t), g(t), f'(t)
으로 표현해야하는t
에 대한 표현을 차별화하고,`g '(t). 최대 위의 간단한 예에서, 그 결과 지금a * (f(t) * g(t))**(a - 1) * (f'(t) * g(t) + f(t) * g'(t))
해야한다, 우리는이 특정 문제에 대한 약간의 지식 하나 개의 특정 정상 상태 값 만에서, 우리가 알고 (경제 문제)를 사용
f(t)
및g(t)
의 값을 갖는다. 그들이f(tss) = 1
이고g(tss) = 100
이라고 가정 해 봅시다. 여기에서tss
은 정상 상태 값이며, 임의로tss = 7
으로 설정합니다. 이들은 이고 f와 g의 일반적인 기능적 형태는 아닙니다입니다.일단이 값으로 대체하면 두 개의 미지수가있는 수식이 있습니다.
f'(tss)
및g'(tss)
의 값입니다. 이 시점에서 파생물인지 아닌지는 중요하지 않습니다. 그들은 단지 미지의 것이고 다른 방정식도 있습니다.이 방정식과 결합하면scipy.optimize.fsolve
또는 sympy의 해법 중 하나를 사용하여 해결할 수있는 비선형 시스템을 제공합니다.
질문은 제가 1 단계와 2 단계에서 멈췄습니다. 아래 코드는 값을 올바르게 대체하지 않는 것 같습니다.
from sympy import *
t = symbols('t')
a = symbols('a')
f, g = symbols('f g', cls=Function)
eq = (f(t) * g(t))**a
eq_diff = eq.diff(t)
output = eq_diff.evalf(subs={f:1, g:100, a:0.5})
output
출력한다. 내가 도대체 뭘 잘못하고있는 겁니까?
다시 말하지만, 이것은 단순한 수학적 예일 뿐이지 만 문제를 잘 보여줍니다.
'd '는 어디에서 왔습니까? – user2357112
@ user2357112 Typo. 나는 그것을 고쳤다. 값은 여전히 올바르게 대체되지 않습니다. –