Python洛倫茲是一個基于Python的科學計算庫,它主要用于創建動力系統的三維圖像及其它相應的動力學分析。
import numpy as np from scipy.integrate import odeint import matplotlib.pyplot as plt # 定義洛倫茲系統的微分方程 def lorenz(w, t, p, r, b): x, y, z = w dxdt = p*(y-x) dydt = (r*x)-y-(x*z) dzdt = (x*y)-(b*z) return dxdt, dydt, dzdt # 運行洛倫茲系統并生成結果圖像 def run_lorenz(p, r, b, initial, start=0.0, end=50.0, dt=0.01): t = np.arange(start, end, dt) f = odeint(lorenz, initial, t, args=(p, r, b)) x, y, z = f.T fig = plt.figure() ax = fig.gca(projection='3d') ax.plot(x, y, z, lw=0.5) ax.set_xlabel("X Axis") ax.set_ylabel("Y Axis") ax.set_zlabel("Z Axis") ax.set_title("Lorenz Attractor") plt.show() # 設置參數并運行洛倫茲系統 p = 10 r = 28 b = 8/3 initial = [1.0, 1.0, 1.0] run_lorenz(p, r, b, initial)
上述程序的核心是一個適用于洛倫茲系統的微分方程。在得到微分方程后,我們就可以通過數值積分的方式來求解該方程,進而得到關于洛倫茲系統的三維圖像。在上述代碼中,我們使用了Python科學計算庫中的numpy、scipy和matplotlib等模塊來分別實現微分方程的求解和圖像的繪制。運行代碼后,我們就可以得到一個形狀獨特的洛倫茲吸引子圖像。
下一篇python 派生類