【复习计算物理】
2ch吧
全部回复
仅看楼主
level 13
买了万元神机之后,发现没事干了,所以又重新下载了以前开源的计算物理教科书,准备重新搞一下计算物理方面的一些想法和实践,顺便操练一下新学到的python。
2019年07月25日 12点07分 1
level 13
为了这个项目我们需要matplotlib这个高强度堪称免费matlab的库。安装的方法是在命令行任何工作目录输入
python -m pip install --user matplotlib
非常科幻。
其中--user是不一定需要的。
2019年07月25日 12点07分 2
level 11
金融生表示我们也经常用,matplotlib真的神器,还有numpy、pandas、sklearn
2019年07月25日 12点07分 3
level 15
是大佬[喷]
2019年07月25日 12点07分 4
level 13
首先最常拿来练手的就是“解恒定加速度条件下的质点运动”。这种运动的微分方程是d^2y/dt^2=a,简单地积分两次,填入初值就可以知道任何时候物体的运动状态——位置和速度。这种便于验算的性质也方便我们对照计算值和理论值从而建立关于某种微分方程解法的精度的概念。
2019年07月25日 12点07分 5
我先马了等更新。。。 话说大佬可以排版更清晰点?
2019年07月25日 13点07分
哦哦,后面排版清楚了,忽略我
2019年07月25日 13点07分
level 13
万元神机刷贴吧
2019年07月25日 12点07分 6
level 13
计算物理书直接给我们提供了一种算法:
vt=v0+a*dt
yt=y0+vt*dt
为了进行数值计算,这里的dt不是传统的无穷小量,而是有确定值的小数字。对于建立在米-千克-秒尺度上的运动而言,unity引擎这个数字通常是1/40,有些物理引擎采用1/60等等。
这个算法用人话说就是“先更新速度,再用更新后的速度更新位置”。传统(过时)的欧拉算法是“先用旧的速度更新位置,再更新速度”。这样在加速运动中就会积累误差。
除此之外还有一些“先更新一半速度,用新速度更新位置,再更新另一半速度”的中间插值法,但是这些精度都高于我想尝试的“游戏级”精度。
2019年07月25日 12点07分 7
level 14
[滑稽]
2019年07月25日 12点07分 8
level 9
上有限元
2019年07月25日 12点07分 10
level 13
睡。明天视情况继续。
2019年07月25日 13点07分 12
level 13
继续继续[滑稽]
2019年07月25日 13点07分 13
level 13
一阶改进的(“辛的”)欧拉算法的运算用python表示就是
v=v+a*dt
y=y+v*dt
在此基础上加上必要的变量宣称,循环,输入输出等语句就可以计算出结果。在自由落体计算中,需要在一开始输入a=10。
上面虽然吹了很多,但是根据计算,在20s(速度达到200m/s)时误差累积到了0.1m。
2019年07月26日 13点07分 15
上述误差与dt的尺度成反比。
2019年07月26日 14点07分
如果运用上面提到的高阶辛欧拉算法,误差尺度会更小。
2019年07月26日 14点07分
level 12
妈耶,没事干就学习[喷]
2019年07月26日 14点07分 16
level 13
工程学上常用的经典物理演化算法是四阶龙格-库塔法。假设有微分方程dy/dt=f(t,y),龙格库塔算法的表示法是:
y=y+(dt/6)*(k1+2*k2+2*k3+k4)
四个调整系数k分别是:
k1=f(t,y)
k2=f(t+dt/2,y+dt*k1/2)
k3=f(t+dt/2,y+dt*k2/2)
k4=f(t+dt,y+dt*k3)
2019年07月26日 14点07分 17
这算法的缺点是误差会累积。优点是有些情况下会很快。
2019年07月26日 14点07分
level 8
隔行如隔山呢,没看懂具体要干什么,好像只是要用python实现算法
不过精密计算是不是一般用c++和java比较好啊
2019年07月26日 16点07分 18
土豪,万元机撸代码~~
2019年08月21日 13点08分
1 2 尾页