基本函数(docstring)#

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

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

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

参数:

姓名 :结构

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

水平 :内景

返回函数的微分程度;d/dt一次t,两次t等。

假设:

  • 实数(布尔)这用于将dynamicsymbol设置为real,

    默认为False。

  • 阳性(布尔)用于将dynamicsymbol设置为正值,

    默认为False。

  • 交换(布尔)这用于设置

    默认情况下,dynamicsymbol为True。

  • 整数(bool)用于将动态符号设置为整数,

    默认为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)[源代码]#

Dot产品便利包装矢量.dot():两个向量的点积。

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

参数:

其他 :矢量

我们用的矢量

实例

>>> 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)[源代码]#

交叉积便利包装矢量.cross():两个向量的叉积运算符。

返回一个向量,表示为与self相同的引用参数。

参数:

其他 :矢量

我们要穿越的向量

实例

>>> 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)[源代码]#

外部产品便利包装向量.外部():两个向量之间的外积。

一种秩递增运算,从两个向量返回并矢

参数:

其他 :矢量

取外积的向量

实例

>>> 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)[源代码]#

“快速”功能的全局函数。

重新表示给定帧中的向量、标量(可解)或并矢。

具体可参考向量和并矢的局部方法。如果“variables”为真,则向量/标量场或并矢表达式中存在的其他帧的坐标变量(CoordinateSym实例)也将根据该帧的基标量进行替换。

参数:

expr :矢量/并矢/标量(可解释)

要在ReferenceFrame“frame”中重新表达的表达式

框架:参考框架

表示表达式的参考框架

框架2 :参考帧

重新表达式所需的另一帧(仅用于并矢表达式)

变量 :布尔值

指定是否替换expr中存在的坐标变量(根据frame的坐标变量)

实例

>>> 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)[源代码]#

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

参数:

expr :向量/并矢/可聚合

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

框架 :参考帧

计算时间导数的参考系

秩序 :整数

要计算的导数的阶数

实例

>>> 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)

工具书类

https://en.wikipedia.org/wiki/Rotating_reference_frame#Time_derivatives_in_two_框架