में मैट्रिक्स अभिव्यक्ति का विस्तार कैसे करें हाय मैं मैट्रिक्स गुणा करने की कोशिश कर रहा हूं और इसे बाद में विस्तारित कर रहा हूं। हालांकि, sympy
मैट्रिक्स समीकरणों के विस्तार का समर्थन नहीं करता है। उदाहरण के लिए मैट्रिक्स के लिए Runge-Kutta 4:sympy
from sympy import init_session
init_session()
from sympy import *
A = MatrixSymbol('A', 3, 3)
x = MatrixSymbol('x', 3, 1)
dt = symbols('dt')
k1 = A*x
k2 = A*(x + S(1)/2*k1*dt)
k3 = A*(x + S(1)/2*k2*dt)
k4 = A*(x + k3*dt)
final = dt*S(1)/6*(k1 + 2*k2 + 2*k3 + k4)
final.expand()
परिणाम के साथ
Traceback (most recent call last)
<ipython-input-38-b3ff67883c61> in <module>()
12 final = dt*1/6*(k1+2*k2+2*k3+k4)
13
---> 14 final.expand()
AttributeError: 'MatMul' object has no attribute 'expand'
मुझे आशा है कि अभिव्यक्ति सिर्फ अदिश संस्करण की तरह विस्तारित किया जा सकता:
A,x,dt = symbols('A x dt')
k1 = A*x
k2 = A*(x+k1*dt*S(1)/2)
k3 = A*(x+k2*dt*S(1)/2)
k4 = A*(x+k3*dt)
final = x+dt*(S(1)/6)*(k1+k2+k3+k4)
collect(expand((final)),x)
परिणाम के साथ
:
x*(A**4*dt**4/24 + A**3*dt**3/8 + A**2*dt**2/3 + 2*A*dt/3 + 1)
क्या मैट्रिक्स अभिव्यक्ति को भी बदलना संभव है?
निकोगुआरो का जवाब त्रुटि लेता है, लेकिन पूरी अभिव्यक्ति को एक मैट्रिक्स में फैलाता है। जैसा कि स्केलर उदाहरण के साथ सचित्र है, मैं
से नीचे अतिरिक्त पंक्ति देखें, इसे काम करना चाहिए। मैंने https://github.com/sympy/sympy/issues/10360 खोला। – asmeurer