2ch吧 关注:741,678贴子:21,079,353

【复习计算物理】

只看楼主收藏回复

买了万元神机之后,发现没事干了,所以又重新下载了以前开源的计算物理教科书,准备重新搞一下计算物理方面的一些想法和实践,顺便操练一下新学到的python。


IP属地:浙江1楼2019-07-25 20:08回复
    为了这个项目我们需要matplotlib这个高强度堪称免费matlab的库。安装的方法是在命令行任何工作目录输入
    python -m pip install --user matplotlib
    非常科幻。
    其中--user是不一定需要的。


    IP属地:浙江2楼2019-07-25 20:11
    回复
      2026-10-13 19:30:48
      广告
      不感兴趣
      开通SVIP免广告
      金融生表示我们也经常用,matplotlib真的神器,还有numpy、pandas、sklearn


      来自iPhone客户端3楼2019-07-25 20:13
      回复
        是大佬


        IP属地:湖北来自Android客户端4楼2019-07-25 20:27
        回复
          首先最常拿来练手的就是“解恒定加速度条件下的质点运动”。这种运动的微分方程是d^2y/dt^2=a,简单地积分两次,填入初值就可以知道任何时候物体的运动状态——位置和速度。这种便于验算的性质也方便我们对照计算值和理论值从而建立关于某种微分方程解法的精度的概念。


          IP属地:浙江5楼2019-07-25 20:37
          收起回复
            万元神机刷贴吧


            IP属地:广东来自iPhone客户端6楼2019-07-25 20:41
            回复
              计算物理书直接给我们提供了一种算法:
              vt=v0+a*dt
              yt=y0+vt*dt
              为了进行数值计算,这里的dt不是传统的无穷小量,而是有确定值的小数字。对于建立在米-千克-秒尺度上的运动而言,unity引擎这个数字通常是1/40,有些物理引擎采用1/60等等。
              这个算法用人话说就是“先更新速度,再用更新后的速度更新位置”。传统(过时)的欧拉算法是“先用旧的速度更新位置,再更新速度”。这样在加速运动中就会积累误差。
              除此之外还有一些“先更新一半速度,用新速度更新位置,再更新另一半速度”的中间插值法,但是这些精度都高于我想尝试的“游戏级”精度。


              IP属地:浙江7楼2019-07-25 20:45
              回复
                ?


                IP属地:北京来自Android客户端8楼2019-07-25 20:46
                回复
                  2026-10-13 19:24:48
                  广告
                  不感兴趣
                  开通SVIP免广告
                  上有限元


                  来自Android客户端10楼2019-07-25 20:48
                  回复
                    睡。明天视情况继续。


                    IP属地:浙江12楼2019-07-25 21:37
                    回复
                      继续继续


                      IP属地:河南来自Android客户端13楼2019-07-25 21:44
                      回复
                        一阶改进的(“辛的”)欧拉算法的运算用python表示就是
                        v=v+a*dt
                        y=y+v*dt
                        在此基础上加上必要的变量宣称,循环,输入输出等语句就可以计算出结果。在自由落体计算中,需要在一开始输入a=10。
                        上面虽然吹了很多,但是根据计算,在20s(速度达到200m/s)时误差累积到了0.1m。


                        IP属地:浙江15楼2019-07-26 21:56
                        收起回复
                          妈耶,没事干就学习


                          IP属地:浙江来自Android客户端16楼2019-07-26 22:05
                          回复
                            工程学上常用的经典物理演化算法是四阶龙格-库塔法。假设有微分方程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)


                            IP属地:浙江17楼2019-07-26 22:20
                            收起回复
                              2026-10-13 19:18:48
                              广告
                              不感兴趣
                              开通SVIP免广告
                              隔行如隔山呢,没看懂具体要干什么,好像只是要用python实现算法
                              不过精密计算是不是一般用c++和java比较好啊


                              IP属地:山西来自Android客户端18楼2019-07-27 00:42
                              收起回复