SymPy को कैसे बताएं कि एक चर समय का एक कार्य है?

Nov 26 2020

मेरे पास एक 3D रोटेशन मैट्रिक्स है जैसे:

R = sp.Matrix([
    [ sp.cos(q1 + q2),  -sp.sin(q1 + q2), 0],
    [-sp.sin(q1 + q2),   sp.cos(q1 + q2), 0],
    [               0,                 0, 1]
])

जहाँ q1 और q2, कोण हैं। उनमें से एक, क्यू 2 (टी) समय का एक कार्य है, यह बदलता है। मैं यह कैसे बता सकता हूं कि सहानुभूति के लिए?

मैं समय के साथ उस मैट्रिक्स को अलग करना चाहूंगा लेकिन मुझे नहीं पता कि यह कैसे करना है।

Thats कैसे मैं सब कुछ घोषित:

q1, q2, t = sp.symbols('q1 q2 t', real=True)


R = sp.Matrix([
    [ sp.cos(q1 + q2),  -sp.sin(q1 + q2), 0],
    [-sp.sin(q1 + q2),   sp.cos(q1 + q2), 0],
    [               0,                 0, 1]
])

sp.diff(R, t)

मैं से प्राप्त उत्पादन Thats sp.diff(R, t):

मैंने हाथ से R (t) से एक अंतर की गणना की और इसलिए मैं SymPy में ऐसा कुछ प्राप्त करना चाहता हूं:

जवाब

1 wsdookadr Dec 04 2020 at 23:15

आपको अपरिभाषित कार्यों की घोषणा करने q1और करने की आवश्यकता है q2, और फिर Rबिंदु पर गणना की गई मैट्रिक्स में उनका उपयोग करें t

import sympy as sp

t = sp.symbols('t', real=True)
q1 = sp.Function('q_1')
q2 = sp.Function('q_2')

R = sp.Matrix([
    [ sp.cos(q1(t) + q2(t)),  -sp.sin(q1(t) + q2(t)), 0],
    [-sp.sin(q1(t) + q2(t)),   sp.cos(q1(t) + q2(t)), 0],
    [               0,                 0, 1]
])

sp.diff(R, t)

यह परिणाम जो SymPy 1.7 देता है वह है: