sympy质点模型

2024-01-10 10:23:21

质点

粒子,或者说质点,堪称经典物理中的核心模型了,其所具备的重要物理量,包括质量、能量、动量、角动量之类,也早已从经典力学蔓延出去,成为内涵更加深刻的物理概念。

在mechanics中定义了Particle和Point类,其中Point中包括粒子的位置、速度以及加速度信息。二者的构造方式如下。

from sympy.physics.mechanics import Particle, Point
from sympy import Symbol
m = Symbol('m')
pt = Point('pt')
p = Particle('p', pt, m)
print(p.mass)   # m
print(p.point)  # pt

即粒子 p p p的质量为 m m m,位置在pt。

动能和动能

作为经典物理对象,粒子除了质量与位置之外,还有能量、动量以及角动量,而能量又分为动能和势能。而经典物理中,动能可表示为

E = 1 2 m v 2 E=\frac{1}{2}mv^2 E=21?mv2

空间点对象Point可设置速度,但在设置速度之前,需要先设置一个坐标框架,相应地,其动能也是相对于某个坐标框架下的动能

from sympy.physics.mechanics import ReferenceFrame
v = Symbol('v')
N = ReferenceFrame('N')
p.point.set_vel(N, v * N.y)
p.kinetic_energy(N) # m*v**2/2

同理,其动量可表示如下,其N.y表示速度方向。

p.linear_momentum(N)    # m*v*N.y

p ? = m v ? \vec p=m\vec v p ?=mv

势能

相比之下,重力势能并不是物体内在的性质,而与所在引力场有关,所以需要手动指定其表示形式。

g, h = Symbol('g'), Symbol('h')
p.potential_energy = m * g * h
P.potential_energy  # g*h*m

V = m g h V=mgh V=mgh

角动量

和线动量相比,角动量需要设置一个旋转中心,即需要设置另一个Point,而角动量可表示为

L ? = r ? × p ? \vec L=\vec r\times \vec p L =r ×p ?

其中, p ? \vec p p ? r ? \vec r r 分别为其动量和到旋转中心的距离,sympy模拟如下

r = Symbol('r')
O = pt.locatenew("O", r*N.x)
p.angular_momentum(O, N)    # - m*r*v*N.z

其含义是,定义一个点 O O O,距离p点为 r ? \vec r r r ? \vec r r 是沿着 x ? \vec x x 方向,而 v ? \vec v v 是沿着 y y y方向,最后得到的角动量方向沿着 z z z轴,说明sympy的计算是正确的。

在这里插入图片描述

文章来源:https://blog.csdn.net/m0_37816922/article/details/135416176
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。