python 物理仿真 动画_换个姿势学物理!用Python和Matplotlib进行模拟

本文介绍了如何使用Python和Matplotlib进行物理仿真,包括向量类的实现、粒子类的定义、交互场的创建以及可视化粒子运动和向量场的方法。通过模拟电磁场中的粒子运动,展示了向量运算、距离计算和粒子加速等概念。
摘要由CSDN通过智能技术生成

全文共4206字,预计学习时长8分钟

觉得物理太难了?本文将模拟N维空间中的某些向量场(例如电磁场),以便你更清晰地理解这些概念。

理论基础

向量

任何物理场景的基本元素都是向量。我们需要什么?需要向量的算术运算、距离、模块以及一些技术层面的东西。从列表中得到向量。下面是它初始化的样子:

class Vector(list): def __init__(self, *el): for e in el: self.append(e)

现在,创造一个向量:

v = Vector(1, 2, 3)

再进行加法算术运算:

class Vector(list):... def __add__(self, other): if type(other) is Vector: assert len(self) == len(other), "Error 0" r = Vector() for i in range(len(self)): r.append(self[i] + other[i]) return r else: other = Vector.emptyvec(lens=len(self), n=other) return self + other

结果:

v1 = Vector(1, 2, 3)v2 = Vector(2, 57, 23.2)v1 + v2>>> [3, 59, 26.2]

同样需定义所有的算术运算(向量的完整代码放在最后)。现在需要一个距离函数。创建dist (v1, v2)并不难—但也并不美观,因此重新定义 %运算符。

class Vector(list):... def __mod__(self, other): return sum((self - other) ** 2) ** 0.5

结果:

v1 = Vector(1, 2, 3)v2 = Vector(2, 57, 23.2)v1 % v2>>> 58.60068258988115

还需要一些方法来快速生成向量并且完美地输出。这没有什么棘手的

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值