2016-11-18 16 views
3

SymPy에서 함수 기호와 관련하여 테일러 확장을 수행하려면 어떻게해야합니까? 예를 들어SymPy 함수 기호에 대한 테일러 확장

from sympy import * 
ode = f(x).diff(x, 2) - sin(f(x)) 

우리는

f(x).diff(x, 2) - f(x) 

같은 것을 얻기 위해

ode.series(f, 0, 1) 

같은 것을 수행하여 미분 방정식을 선형화하고 싶습니다하지만 난 그것을 알아낼 수 없습니다 SymPy에서이 작업을 수행하는 방법을 설명합니다. 맥시마, 나는

depends(y, x); 
ode: diff(y, x, 2) - sin(y); 
taylor(ode, y, 0, 8); 

같은 종속성을 정의 할 수 있으며

'diff(y,x,2) - y + y^3/6 - y^5/120 + y^7/5040 + ... 

에서이 비선형 미분 방정식 또는 섭동 이론을 선형화 정말 유용 할 수 초래할 것이다.

답변

2

f(x)을 임시로 y과 같은 기호로 바꾸고 해당 기호와 관련하여 확장을 수행 한 다음 뒤로 바꿀 수 있습니다. 그 결과,

from sympy import * 
var('x y') 
f = Function('f') 
ode = f(x).diff(x, 2) - sin(f(x)) 
ode_linear = series(ode.subs(f(x), y), y, 0, 2).removeO().subs(y, f(x)) 
ode_cubic = series(ode.subs(f(x), y), y, 0, 4).removeO().subs(y, f(x)) 

ode_linear-f(x) + Derivative(f(x), x, x)이고 ode_cubicf(x)**3/6 - f(x) + Derivative(f(x), x, x)

이다 : 여기 독립된 예제