<pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
    <pre id="vvttv"></pre>

      <p id="vvttv"></p>

          <p id="vvttv"></p>

                <p id="vvttv"></p>

                <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                  <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                    <p id="vvttv"></p>

                    單擺擺動周期的計算?

                    相關文檔: 單擺和雙擺模擬

                    本程序利用odeint和fsolve計算單擺的擺動周期,并且和精確值進行比較。

                    _images/simple_pendulum02.png
                    # -*- coding: utf-8 -*-
                    from math import sin, sqrt
                    import numpy as np
                    from scipy.integrate import odeint
                    from scipy.optimize import fsolve
                    import pylab as pl
                    from scipy.special import ellipk
                    
                    g = 9.8
                    
                    def pendulum_equations(w, t, l):
                        th, v = w
                        dth = v
                        dv  = - g/l * sin(th)
                        return dth, dv
                    
                    def pendulum_th(t, l, th0):
                        track = odeint(pendulum_equations, (th0, 0), [0, t], args=(l,))
                        return track[-1, 0]
                        
                    def pendulum_period(l, th0):
                        t0 = 2*np.pi*sqrt( l/g ) / 4
                        t = fsolve( pendulum_th, t0, args = (l, th0) )
                        return t*4
                        
                    ths = np.arange(0, np.pi/2.0, 0.01)
                    periods = [pendulum_period(1, th) for th in ths]
                    periods2 = 4*sqrt(1.0/g)*ellipk(np.sin(ths/2)**2) # 計算單擺周期的精確值
                    pl.plot(ths, periods, label = u"fsolve計算的單擺周期", linewidth=4.0)
                    pl.plot(ths, periods2, "r", label = u"單擺周期精確值", linewidth=2.0)
                    pl.legend(loc='upper left')
                    pl.title(u"長度為1米單擺:初始擺角-擺動周期")
                    pl.xlabel(u"初始擺角(弧度)")
                    pl.ylabel(u"擺動周期(秒)")
                    pl.show()
                    

                    上一篇文章

                    二次均衡器設計

                    下一篇文章

                    雙擺系統的動畫模擬

                      <pre id="vvttv"><mark id="vvttv"><progress id="vvttv"></progress></mark></pre>
                      <pre id="vvttv"></pre>

                        <p id="vvttv"></p>

                            <p id="vvttv"></p>

                                  <p id="vvttv"></p>

                                  <pre id="vvttv"><cite id="vvttv"><progress id="vvttv"></progress></cite></pre>

                                    <output id="vvttv"><dfn id="vvttv"><th id="vvttv"></th></dfn></output>

                                      <p id="vvttv"></p>

                                      这里只有精品视频