数值方法课程设计--典型数值算法的C++语言程序设计
《数值方法课程设计--典型数值算法的C++语言程序设计》由会员分享,可在线阅读,更多相关《数值方法课程设计--典型数值算法的C++语言程序设计(35页珍藏版)》请在毕设资料网上搜索。
1、数值计算课程设计 1 典型数值算法的典型数值算法的 C+C+语言程序设计语言程序设计 1 1. .经典四阶龙格库塔法解一阶微分方程组经典四阶龙格库塔法解一阶微分方程组 1.11.1 算法说明算法说明 龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度单步算法。 由于 此算法精度高,采取措施对误差进行抑制,所以其实现原理也较复杂。该算法是构建 在数学支持的基础之上的。 4 阶龙格-库塔方法(RK4)可模拟 N=4 的泰勒方法的精度。这种算法可以描述为,自初 始点 00 (,)ty开始,利用下面的计算方法生成近似序列 1.21.2 经典四阶龙格库塔法解一阶微分方程组经典四阶龙格
2、库塔法解一阶微分方程组算法流程图算法流程图 图 1-1 算法流程图 经典四阶龙格库塔法解一阶微分方程组 2 1.31.3 经典四阶龙格库塔法解一阶微分方程组经典四阶龙格库塔法解一阶微分方程组程序调试程序调试 将编写好的代码放在 VC6.0 环境中编译,直接执行程序便可以得到求解微分方程 () / 2 dy ty dt ,并且(0)1y的结果。如图: 将这些点进行插值或者拟合后就可以得到微分方程的解。 1.41.4 经典四阶经典四阶龙格库塔法解一阶微分方程组龙格库塔法解一阶微分方程组代码代码 #include #include using namespace std; /f 为函数的入口地址,x
3、0、y0 为初值,xn 为所求点,step 为计算次数 double Runge_Kuta( double (*f)(double x, double y), double x0, double y0, double xn, long step ) double k1,k2,k3,k4,result; double h=(xn-x0)/step; if(stepx0y0; coutb; /double x0=0,y0=1; double x,y,step; long i; coutN; A=(double*)calloc(N*(N+1),sizeof(double); coutAi; syst
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中设计图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数值 方法 课程设计 典型 算法 C+ 语言程序设计
