数值方法
通常所说的龙格-库塔法是指四阶而言的,我们可以仿二阶、三
阶的情形推导出常用的标准四阶龙格-库塔法公式
1.2,算法程序:
#include<iostream> #include<iomanip> #define M 10 using namespace std; int main() {
long double feval(long double ,long double ,long double ); long double feval1(long double ,long double ,long double ); long double f[4],g[4]; long double h,a,b,xa,ya; long double x[M+1],y[M+1],T[M+1]; cout<<"请输入区间左右端点 a,b:"; cin>>a>>b; cout<<endl; //xa,ya 是初值 cout<<"请输入函数在左端点的初值 xa,ya:"; cin>>xa>>ya; cout<<endl; //h 是步长 h=(b-a)/M; x[0]=xa; y[0]=ya; for(int i=0;i<=M;i++) { T[i]=a+h*i; //给 T 赋值
以得出四阶龙格-库塔公式,也就是在工程中应用广泛的经典龙格-
数值计算课程设计
库塔算法:
yi+1=yi+h*( K1+ 2*K2 +2*K3+ K4)/6
K1=f(xi,yi)
K2=f(xi+h/2,yi+h*K1/2)
K3=f(xi+h/2,yi+h*K2/2)
K4=f(xi+h,yi+h*K3)
-8-
1.3,法解线性方程组
2.1 算法说明:
2.高斯列主元法解线性方程组........................... - 9 2.1 算法说明: .................................. - 10 2.2 算法程序: .................................. - 10 2.3 运行结果: .................................. - 13 -
数值方法课程设计说明书
题目: 典型数值算法的 C++语言程序设计
学生姓名: 晏瑞 学 号: 200912010127 院 (系): 理学院 专 业: 数学与应用数学 091 班 指导教师: 刘海峰
2011 年 6 月 15 日
陕西科技大学
数值计算课程设计任务书
理学院 应用数学专业 数学 091 班级 学生: 晏瑞 题目:典型数值算法的 C++语言程序设计 课程设计从 2011 年 5 月 20 日起到 2011 年 6 月 25 日 1、课程设计的内容和要求(包括原始数据、技术要求、工作要求等):
每人需作 10 个算法的程序、必做 6 题、自选 4 题。 对每个算法要求用 C++语言进行编程。 必选题: 1、经典四阶龙格库塔法解一阶微分方程组 2、高斯列主元法解线性方程组 3、牛顿法解非线性方程组 4、龙贝格求积分算法 5、三次样条插值算法(压紧样条)用 C++语言进行编程计算
依据计算结果,用 Matlab 画图并观察三次样条插值效果。 6、M 次多项式曲线拟合,据计算结果,用 Matlab 画图并观察拟合效果。 自选题:自选 4 道其他数值算法题目.每道题目重选次数不得超过 5 次. 2、对课程设计成果的要求〔包括图表、实物等硬件要求〕: 1)提交课程设计报告 按照算法要求,用 C++语言设计和开发应用程序,提交由算法说明;程序 设计说明;系统技术文档 (包括系统各模块主要流程图,软件测试方案与测试记 录、软件调试和修改记录、测试结论、运行情况记录),系统使用说明书,源程 序代码为附录构成的课程设计报告。
4.龙贝格求积分算法 ................................. - 21 4.1 算法说明 ..................................... - 21 4.2 算法程序: .................................. - 21 4.3 运行结果: .................................. - 23 -
3.牛顿法解非线性方程组.............................. - 15 3.1 算法说明 ..................................... - 15 3.2 算法程序: .................................. - 15 3.3 运行结果: ................................... - 19 -
目录
数值计算设计课程设计报告正文
设计体会及今后的改进意见 参考文献(资料)
左边缘装订
3、课程设计工作进度计划:
时间
设计任务及要求
第 16 周 编写和调试程序并按要求撰写设计报告
指导教师:
日期:
教研室主任:
日期:
-3-
陕西科技大学
目录
1.经典四阶龙格库塔法解一阶微分方程 ................... - 6 1.1 算法说明: .................................... - 6 1.2,算法程序: ................................. - 7 1.3,运行结果 .................................... - 9 -
当论文结构复杂,小节以下的标题,左起顶格书写,编号依次用(1)、(2)…… 或 1)、2)……顺序表示。字体为小四号宋体。
对条文内容采用分行并叙时,其编号用(a)、(b)……或 a)、b)……顺序 表示,如果编号及其后内容新起一个段落,则编号前空两个中文字符。 3)设计报告装订顺序与规范
封面
数值计算课程设计任务书
1.经典四阶龙格库塔法解一阶微分方程
1.1 算法说明:
龙格-库塔(Runge-Kutta)方法是一种在工程上应用广泛的高精度 单步算法。由于此算法精度高,采取措施对误差进行抑制,所以其实 现原理也较复杂。该算法是构建在数学支持的基础之上的。对于一精 度的欧拉公式有:
yi+1=yi+h*K1 K1=f(xi,yi) 当用点 xi 处的斜率近似值 K1 与右端点 xi+1 处的斜率 K2 的算 术平均值作为平均斜率 K*的近似值,那么就会得到二阶精度的改进 欧拉公式: yi+1=yi+h*( K1+ K2)/2 K1=f(xi,yi) K2=f(xi+h,yi+h*K1) 依次类推,如果在区间[xi,xi+1]内多预估几个点上的斜率值 K1、 K2、……Km,并用他们的加权平均数作为平均斜率 K*的近似值, 显然能构造出具有很高精度的高阶计算公式。经数学推导、求解,可
5.三次紧压样条插值 ................................. - 23 5.1 算法说明: .................................. - 23 5.2 算法程序: .................................. - 24 5.3 运行结果: .................................. - 25 -
6.M 次多项式曲线拟合 ................................ - 26 -
-4-
6.1 算法说明 ..................................... - 26 6.2 算法程序: .................................. - 27 7.不动点法解非线性方程.............................. - 32 7.1 算法说明 ..................................... - 32 7.3 运行结果: .................................. - 34 8.二分法解非线性方程 ............................... - 35 8.1 算法说明: .................................. - 35 8.4 运行结果: ................................... - 37 9,龙格-库塔法解微分方程............................ - 38 9.1 算法说明: .................................. - 38 9.2 算法程序: .................................. - 39 9.3 运行界面: ................................... - 40 10,递归梯形公式 ................................... - 41 10.1,算法说明: ................................ - 41 10.2,算法程序: ................................ - 41 10.3 运行结果: ................................. - 42 -
数值计算课程设计
2)课程设计报告版式要求 打印版面要求:A4 纸,页边距:上 2cm,下 2cm,左 2.5cm、右 2cm;字