基本功能 (文档字符串)

sympy.physics.vector.dynamicsymbols(names, level=0, **assumptions)[源代码][源代码]

使用符号和函数表示时间的函数。

创建一个 SymPy 的 UndefinedFunction,然后将其初始化为一个变量的函数,默认变量为 Symbol(‘t’)。

参数:
名称str

您想要创建的动态符号的名称;其工作方式与符号的输入相同

级别整数

返回函数的微分阶数;对 t 求一次导数,对 t 求二次导数,等等。

假设
  • real(bool)这用于将 dynamicsymbol 设置为实数。

    默认值为 False。

  • positive(bool)这用于将动态符号设置为正。

    默认值为 False。

  • commutative(bool)这用于设置交换属性。

    一个动态符号,默认值为 True。

  • 整数(布尔)这用于将 dynamicsymbol 设置为整数。

    默认值为 False。

示例

>>> from sympy.physics.vector import dynamicsymbols
>>> from sympy import diff, Symbol
>>> q1 = dynamicsymbols('q1')
>>> q1
q1(t)
>>> q2 = dynamicsymbols('q2', real=True)
>>> q2.is_real
True
>>> q3 = dynamicsymbols('q3', positive=True)
>>> q3.is_positive
True
>>> q4, q5 = dynamicsymbols('q4,q5', commutative=False)
>>> bool(q4*q5 != q5*q4)
True
>>> q6 = dynamicsymbols('q6', integer=True)
>>> q6.is_integer
True
>>> diff(q1, Symbol('t'))
Derivative(q1(t), t)
sympy.physics.vector.functions.dot(vec1, vec2)[源代码][源代码]

向量点积的便捷包装器:两个向量的点积。

返回一个标量,即两个向量的点积

参数:
其他向量

我们正在点积的向量

示例

>>> from sympy.physics.vector import ReferenceFrame, dot
>>> from sympy import symbols
>>> q1 = symbols('q1')
>>> N = ReferenceFrame('N')
>>> dot(N.x, N.x)
1
>>> dot(N.x, N.y)
0
>>> A = N.orientnew('A', 'Axis', [q1, N.x])
>>> dot(N.y, A.y)
cos(q1)
sympy.physics.vector.functions.cross(vec1, vec2)[源代码][源代码]

向量叉积的便捷包装器,用于 Vector.cross():两个向量的叉积运算符。

返回一个向量,以与自身相同的参考系表示。

参数:
其他向量

我们正在与之叉乘的向量

示例

>>> from sympy import symbols
>>> from sympy.physics.vector import ReferenceFrame, cross
>>> q1 = symbols('q1')
>>> N = ReferenceFrame('N')
>>> cross(N.x, N.y)
N.z
>>> A = ReferenceFrame('A')
>>> A.orient_axis(N, q1, N.x)
>>> cross(A.x, N.y)
N.z
>>> cross(N.y, A.x)
- sin(q1)*A.y - cos(q1)*A.z
sympy.physics.vector.functions.outer(vec1, vec2)[源代码][源代码]

Vector.outer() 的外积便捷包装:两个向量之间的外积。

一个秩增加操作,它返回两个向量的并矢。

参数:
其他向量

要与之进行外积的向量

示例

>>> from sympy.physics.vector import ReferenceFrame, outer
>>> N = ReferenceFrame('N')
>>> outer(N.x, N.x)
(N.x|N.x)
sympy.physics.vector.functions.express(expr, frame, frame2=None, variables=False)[源代码][源代码]

用于’express’功能的全局函数。

在给定框架中重新表达向量、标量(可符号化的)或并矢。

有关详细信息,请参阅 Vector 和 Dyadic 的本地方法。如果 ‘variables’ 为 True,则向量/标量场或并矢表达式中存在的其他框架的坐标变量(CoordinateSym 实例)也会根据此框架的基本标量进行替换。

参数:
表达式向量/并矢/标量(可sympy化)

在参考系 ‘frame’ 中重新表达的表达式

frame: ReferenceFrame

用于表达 expr 的参考框架

frame2参考框架

重新表达所需的另一个框架(仅适用于二元表达)

变量布尔

指定是否在 expr 中替换存在的坐标变量,以帧的坐标变量表示

示例

>>> from sympy.physics.vector import ReferenceFrame, outer, dynamicsymbols
>>> from sympy.physics.vector import init_vprinting
>>> init_vprinting(pretty_print=False)
>>> N = ReferenceFrame('N')
>>> q = dynamicsymbols('q')
>>> B = N.orientnew('B', 'Axis', [q, N.z])
>>> d = outer(N.x, N.x)
>>> from sympy.physics.vector import express
>>> express(d, B, N)
cos(q)*(B.x|N.x) - sin(q)*(B.y|N.x)
>>> express(B.x, N)
cos(q)*N.x + sin(q)*N.y
>>> express(N[0], B, variables=True)
B_x*cos(q) - B_y*sin(q)
sympy.physics.vector.functions.time_derivative(expr, frame, order=1)[源代码][源代码]

计算给定坐标系中矢量/标量场函数或并矢表达式的时间导数。

参数:
表达式向量/并矢/可符号化的

要计算其时间导数的表达式

框架参考框架

用于计算时间导数的参考系

顺序整数

要计算的导数的顺序

参考文献

https://en.wikipedia.org/wiki/Rotating_reference_frame#Time_derivatives_in_the_two_frames

示例

>>> from sympy.physics.vector import ReferenceFrame, dynamicsymbols
>>> from sympy.physics.vector import init_vprinting
>>> init_vprinting(pretty_print=False)
>>> from sympy import Symbol
>>> q1 = Symbol('q1')
>>> u1 = dynamicsymbols('u1')
>>> N = ReferenceFrame('N')
>>> A = N.orientnew('A', 'Axis', [q1, N.x])
>>> v = u1 * N.x
>>> A.set_ang_vel(N, 10*A.x)
>>> from sympy.physics.vector import time_derivative
>>> time_derivative(v, N)
u1'*N.x
>>> time_derivative(u1*A[0], N)
N_x*u1'
>>> B = N.orientnew('B', 'Axis', [u1, N.z])
>>> from sympy.physics.vector import outer
>>> d = outer(N.x, N.x)
>>> time_derivative(d, B)
- u1'*(N.y|N.x) - u1'*(N.x|N.y)