文档详情

实验4_数值积分与数值微分(完成版).doc

发布:2018-02-26约1.92千字共4页下载文档
文本预览下载声明
数值分析实验报告四 数值积分与数值微分实验(2学时) 一 实验目的 1.掌握复化的梯形公式、辛扑生公式等牛顿-柯特斯公式计算积分。 2. 会用高斯公式计算积分。 3. 掌握数值微分的计算方法。 二 实验内容 1.分别用复化的梯形公式和辛扑生公式计算积分。 M=4 2.用高斯公式(n=3) 3.给定下列表格值 X 50 55 60 65 Y 1.6990 1.7404 1.7782 1.8129 利用四点式(n=3)的值。 三 实验步骤(算法)与结果 1.计算积分 1.1 复化梯形公式 利用C语言编程,程序源代码如下: #include stdio.h #include math.h float f(float x) { return(sqrt(x)); } void main() { float a,b,h,x[10],sum; int i,m; printf(input a:); scanf(%f,a); printf(input b:); scanf(%f,b); printf(input m:); scanf(%d,m); h=(b-a)/m;x[0]=a;x[m]=b; for(i=1;im;i++) x[i]=a+h*i; for(sum=0,i=0;im;i++) sum=sum+(f(x[i])+f(x[i+1]))*h/2; printf(the result is %f,sum); getch(); } 得出结果如下图: 所以:=17.368643 1.2 复化辛扑生公式 利用C语言编程,程序源代码如下: #include stdio.h #include math.h float f(float x) { return(sqrt(x)); } void main() { float a,b,h,x[10],sum=0,sum1=0,sum2=0,sum3=0; int i,m; printf(input a:); scanf(%f,a); printf(input b:); scanf(%f,b); printf(input m:); scanf(%d,m); h=(b-a)/m;x[0]=a;x[m]=b; for(i=1;im;i++) x[i]=a+h*i; sum1=f(x[0])+f(x[m]); for(i=1;i=m-1;i++,i++) sum2=sum2+f(x[i]); for(i=2;i=m-2;i++,i++) sum3=sum3+f(x[i]); sum=(sum1+4*sum2+2*sum3)*h/3; printf(the result is %f,sum); getch(); } 得出结果如下图: 所以:=17.726210 2 3. 利用四点式(n=3)的值 利用C语言编程,程序源代码如下: #include stdio.h #include math.h void main() { float h=5,f1,f2,x[10],y[10]; int i; printf(input x:); for(i=0;i4;i++) scanf(%f,x[i]); printf(input y:); for(i=0;i4;i++) scanf(%f,y[i]); f1=(-11*y[0]+18*y[1]-9*y[2]+2*y[3])/(6*h); f2=(12*y[0]-30*y[1]+24*y[2]-6*y[3])/(6*h*h); printf(the result is:f(1)(50)=%f,f(2)(50)=%f,f1,f2); getch(); } 得出结果如下图: 所以: 四 实验收获与教师评语 1. 实验收获: 对于这次实验,我可以锻炼到上机实验的能力,并且感受到数学知识在现实生活中还是挺多应用,现在比较熟悉的运用计算机解决数学问题。 另外,正是因为这次上机实验,让我重温了有些遗忘的编程知识。 2.教师评语 4
显示全部
相似文档