基本功能 (文档字符串)¶
- 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)