资源描述:
《数值课程设计---典型数值算法的c++语言程序设计》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、数值计算课程设计说明书题目:典型数值算法的C++语言程序设计院(系):理学院专业班级:学号:学生姓名:指导教师:2012年6月21日目录1、经典四阶龙格库塔法解一阶微分方程组2、高斯列主元法解线性方程组3、牛顿法解非线性方程组4、龙贝格求积分算法5、三次样条插值算法6、M次多项式曲线拟合1、经典四阶龙格库塔法解一阶微分方程组例:x(t)=x+2y,y(t)=3x+2y,x(0)=6,y(0)=4的龙格库塔解法(数值方法课本p400例9.15)C++程序为:#include#includeusingn
2、amespacestd;floatf(floatt,floatx,floaty)//定义f函数{floatf;f=x+2*y;return(f);}floatg(floatt,floatx,floaty)//定义g函数{floatg;g=3*x+2*y;return(g);}intmain(){floath,n,k,t1,t2,x1,x2,y1,y2,f1,f2,f3,f4,g1,g2,g3,g4;cout<<"pleaseinputt1,x1,y1,h,n";cin>>t1>>x1>>y1>>h>>n;for(k=0;k3、+){f1=f(t1,x1,y1);g1=g(t1,x1,y1);f2=f(t1+h/2,x1+h*f1/2,y1+h*g1/2);g2=g(t1+h/2,x1+h*f1/2,y1+h*g1/2);f3=f(t1+h/2,x1+h*f2/2,y1+h*g2/2);g3=g(t1+h/2,x1+h*f2/2,y1+h*g2/2);f4=f(t1+h,x1+h*f3,y1+h*g3);g4=g(t1+h,x1+h*f3,y1+h*g3);x2=x1+h*(f1+2*f2+2*f3+f4)/6;y2=y1+h*(g1+2*g2+2*g3+
4、g4)/6;t2=t1+h;cout<<"("<5、76532)(0.16,9.29021,9.6746)(0.18,9.88827,10.6561)(0.2,10.5396,11.7158)Pressanykeytocontinue若是求解其他相似的微分方程组,可修改f函数和g函数,主函数不变。2、高斯列主元法解线性方程组试验原理:1.高斯消去法是一个古老的求解线性方程组的方法,但它的改进、变形得到的主元素消去法仍然是计算机上常用的计算方法。2.列主元消去法a.构造增广矩阵设系数矩阵为A=设增广矩阵为B=b.找到每列的绝对值的最大的数c.行变换(重复b-c)d.消去e.回代实验过程
6、:#include#include#include#defineN100#defineepsilon1e-6floata[N][N+1];voidmain(){inti,j,k,n;floatt,s=0;printf("Inputjuzhenjieshu:");scanf("%d",&n);printf("");for(i=0;i7、一次性输入,数之间用空格格开,输完后回车确定*/for(j=0;jabs(a[k][k]))for(j=k;j8、'tbedurable,breakat%d!",k+1);return;}for(i=k+1;i