Python 3.6.6 |Anaconda custom (64-bit)| (default, Jun 28 2018, 11:27:44) [MSC v.1900 64 bit (AMD64)] on win32
windows10
sympy
'1.2'
積分計算で、定数部分がくくりだされない理由がわかりません。
python
1import sympy as sym 2 3i = sym.Symbol("i", real=True) 4a=sym.Symbol("a") 5x=sym.Symbol("x") 6f = sym.Function("f") 7 8oo=sym.oo 9 10func_1 = sym.integrate((x-a)**2*f(x), (x,-oo,oo)) 11 12func_2 = sym.diff(func_1, a) 13 14# func_2=func_2.expand().subs(sym.integrate(2*a*x(i), (i, -oo, oo)),2*a*sym.integrate(x(i), (i, -oo, oo))).subs(sym.integrate(-2*i*x(i), (i, -oo, oo)),-2*sym.integrate(i*x(i), (i, -oo, oo))) 15func_2=func_2.expand() 16 17# func_2=func_2.subs(func_2.args[0],2*a*sym.integrate(x(i), (i, -oo, oo))).subs(func_2.args[1],-2*sym.integrate(i*x(i), (i, -oo, oo))) 18 19 20# func_3 = sym.solve(func_2) 21func_2
結果
Integral(2af(x), (x, -oo, oo)) + Integral(-2xf(x), (x, -oo, oo))
この積分において、2とかaの部分がくくりだされてほしいいわけです。
以下ではうまくいきます。
python
1import sympy as sym 2 3x = sym.Symbol("x") 4f_x = sym.Symbol("f_x") 5t = sym.Symbol("t") 6oo = sym.oo 7e = sym.Symbol("e") 8r = sym.Symbol("r") 9d = sym.Symbol("d") 10 11M_t = sym.integrate(e**(t*x)*f_x, (x, -oo, oo)) 12# mu = sym.integrate(x*f_x, (x, -oo, oo)) 13# target = sym.integrate(((x-mu)/d)**r, (x, -oo, oo)) 14M_t
結果
f_xIntegral(e**(tx), (x, -oo, oo))
なぜ前者ではうまくいかないのか。違いを教えてください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。