日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

龙格库塔法基本C程序

發布時間:2025/4/14 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 龙格库塔法基本C程序 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


數值分析中,龍格-庫塔法(Runge-Kutta methods)是用于非線性常微分方程的解的重要的一類隱式或顯式迭代法。
龍格-庫塔(Runge-Kutta)方法是一種在工程上應用廣泛的高精度單步算法,其中包括著名的歐拉法,用于數值求解微分方程。由于此算法精度高,采取措施對誤差進行抑制,所以其實現原理也較復雜。

? ? 我還不了解什么是高精度單步算法,只知道是用來求微分方程數值解的;

對于Matlab的Simulink的解法器有如下描述;

? ??解法器
? ? 針對變步長和定步長分別有不同的解法器。
? ? 變步長模式解法器有:ode45,ode23,ode113,ode15s,ode23s,ode23t,ode23tb和discrete。
? ? 1)ode45:缺省值,四/五階龍格-庫塔法,適用于大多數連續或離散系統,但不適用于剛性(stiff)系統。它是單步解法器,也就是,在計算y(tn)時,它僅需要最近處理時刻的結果y(tn-1)。一般來說,面對一個仿真問題最好是首先試試ode45;
? ? 2)ode23:二/三階龍格-庫塔法,它在誤差限要求不高和求解的問題不太難的情況下,可能會比ode45更有效。也是一個單步解法器;

? ? 。。。。。。

? ? 我還不太了解什么是解法器;

下面來看一下龍格庫塔基本C程序;VC6.0版本;

輸出如下;我還不理解此程序;

?

代碼;

void CLgktView::OnDraw(CDC* pDC) {CLgktDoc* pDoc = GetDocument();ASSERT_VALID(pDoc);// TODO: add draw code for native data heredouble a,b,x0,y0,k1,k2,k3,k4,h;int n,i;a=0;b=5;x0=0;y0=2;n=20;CString str1, str2;int row=0;for(h=(b-a)/n,i=0;i!=n;i++){k1=f(x0,y0);k2=f(x0+h/2,y0+k1*h/2);k3=f(x0+h/2,y0+k2*h/2);k4=f(x0+h,y0+h*k3);str1.Format("%lf %lf %lf %lf %lf %lf",x0,y0,k1,k2,k3,k4);pDC->TextOut(50,20+row*25,str1);y0+=h*(k1+2*k2+2*k3+k4)/6;x0+=h;row=row+1;}str2.Format("xn=%lf yn=%lf", x0, y0);pDC->TextOut(500,20,str2); }

?

?

總結

以上是生活随笔為你收集整理的龙格库塔法基本C程序的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。