基本函数(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_框架