數值分析 四階龍格庫塔python復現

2021-10-04 23:35:15 字數 1004 閱讀 9832

python入門,復現《數值分析》中的尤拉、龍格庫塔,這裡以經典四階龍格庫塔來示例。

y_(n+1)=y_n+h/6 (k_1+2k_2+2k_3+k_4 )

k_1=f(x_n,y_n)

k_2=f(x_n+h/2 ,y_n+〖hk〗_1/2)

k_3=f(x_n+h/2 ,y_n+〖hk〗_2/2)

k_4=f(x_n+h ,y_n+hk_3)

下面是python**

#自行更改微分方程

def f

(p,q)

:return(-

1)*q-p*q**

2#把公式拆分更簡潔

def zsj

(m,n,h):k1

=f(m,n)k2=

f(m+h*

0.5,n+h*

0.5*k1)

k3=f(m+h*

0.5,n+h*

0.5*k2)

k4=f(m+h,n+h*k3)

returnk1+

2*k2+

2*k3+

k4#f=

微分方程;求解區間

(a,b);ya=y(

0),h=步長

四階龍格庫塔法

這裡主要講一下如何用c語言程式設計運用四階龍格庫塔法求解微分方程組。對於所舉例子,只是為了說明龍格庫塔法不僅可以解一階線性微分方程,高階非線性也可通過降階後按照經典四階龍格庫塔法公式逐步求解。只要選取合適的步長h,就能夠平衡速度和精度,達到求解要求。至於例子中的一級倒立擺的物理含義沒有提及到,各種方...

四階龍格庫塔法的基本思想 四階龍格庫塔實驗報告

1 三 四階runge kutta法求解常微分方程 一 龍格庫塔法的思想根據第九章的知識可知道,euler方法的區域性截斷誤差是,而當用euler方法估計出再用梯形公式進行校正,即採用改進euler方法得出數值解的截斷誤差為。由lagrange微分中值定理記,得到這樣只要給出一種計算的演算法,就能得...

四階龍格 庫塔(Runge Kutta)方法

簡潔版 code fprintf 請輸入區間下界 n a input fprintf 請輸入區間上界 n b input fprintf 請輸入初值alpha n alpha input fprintf 請輸入最大迭代次數n n n input x0 a y0 alpha h b a n k x1 ...