# -*- coding: utf-8 -*-
"""created on sun dec 24 15:29:08 2017
@author: www
"""#本程式是用四階龍格庫塔法求解課本(數值計算方法 馬東昇)p242頁的例7-3
#fun為指定的導數的函式
#rf4為四階龍格庫塔法
def fun(x,y):
f = y - (2 * x / y)
return f
#input
# x0,y0:初始給出的x0值,y0值
# h :步長
# n :迭代次數
#print
# x1,y1:每次迭代輸出的結果
def rf4(x0,y0,h,n):
n = 1
while(n != n):
x1 = x0 + h
k1 = fun(x0, y0)
k2 = fun(x0+h/2, y0+h*k1/2)
k3 = fun(x0+h/2, y0+h*k2/2)
k4 = fun(x1, y0+h*k3)
y1 = y0 + h * (k1 + 2* k2 + 2 * k3 + k4) / 6
print("%.2f, %.6f" %(x1, y1))
n = n + 1
x0 = x1
y0 = y1
def main():
rf4(0,1,0.2,5)
main()
四階龍格庫塔法
這裡主要講一下如何用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 ...