积分问题数值分析上机实验报告.docx
- 文档编号:10169233
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:14
- 大小:78.29KB
积分问题数值分析上机实验报告.docx
《积分问题数值分析上机实验报告.docx》由会员分享,可在线阅读,更多相关《积分问题数值分析上机实验报告.docx(14页珍藏版)》请在冰豆网上搜索。
积分问题数值分析上机实验报告
数值分析上机报告
姓
名:
学
号:
专
业:
学
院:
授课教师:
胡杰
昆明理工大学
2012.01.01
数值分析》实验报告
数值积分问题
一、问题的提出
在微积分中,积分值是通过原函数的解析式求得的,即依据人们所熟知的微积分基本定
b
理,对于积分:
If(x)dx,只要找到被积函数f(X)的原函数F(X),便有下列a
b
牛顿莱布尼茨(Newton-Leibniz)公式:
f(x)dxF(b)F(a)。
然而有的原
a函数寻找往往比较困难,许多积分函数甚至找不到用初等函数表示的原函数。
为此研究数值积分问题是非常必要的。
数值积分的至今普遍应用主要有五种:
梯形公式、Simpson公式
及其两种算法的复化公式、高斯求积公式。
本实验只要选用复合Simpson公式及高斯求积
公式对特定某个积分,例如:
exydxdy,D={0 D种算法的结果,理解数值积分法的意义,明确数值积分精度和步长之间的关系等。 二、目的和意义 1、深刻理解数值积分的意义: 在微积分中,积分值是通过原函数的解析式求得的,然而原函数的寻找往往比较困难, 许多积分函数甚至找不到用初等函数表示的原函数;另外,当f(x)是由测量或者数值计算 给出的一张数据表时,牛顿—莱布尼茨公式也不能直接运用,为此研究数值积分问题是非常必要的。 2、明确数值积分的精度与步长的关系: 复化的求积方法对提高精度是行之有效的,但是在使用求积之前必须给出合适的步长, 并且高斯求积公式具有比复化求积公式更高的精度,步长取得太大精度难以保证,步长太小则会导致计算量的增加。 3、根据定积分的计算方法,可以考虑二重积分的计算问题: 在微积分中,二重积分的计算是用化为累次积分的方法进行的。 计算二重数值积分也同样采用累次积分的计算过程。 利用二重积分的复化梯形公式设计如下: f(x,y)dydx a,b,c,d为常数,f在D上连续。 将它变为化累次积分 再将y作为常数,在x方向,计算上式的每一项的积分 系数,在积分区域的四个角点为1/4,4个边界为1/2,内部节点为1。 1 f(Xm,yj) m1 f(Xi,y°)f(Xi,yn)f(x°,yj) i1i1j1j m1n1m1 f(Xi,yj)}hkCi,jf(Xi,yj) 、计算公式 关于复化辛普森(Simpson)公式及高斯求积公式在以下给出。 1)复化辛普森(Simpson)公式 nh S二[f(Xk1) k16 4f(xk1)f(xQ] k. 2 n1n1 -[f(a)4f(xk1)2f(xQf(b)] 6k1k2k1 为了便于编程可写成 各ba{f(a) 3n2 f(b) n [2f(xk1) k1k2 f(xk)]} 2)高斯求积公式 四、结构程序设计 /复化Simpson算法 #include #include doubleFUTX(double,double,int); doubleFunc(double); voidmain() { doublea1,b1,x; intn1; a仁0.0; b1=1.0; n仁20;//可设定具体的分段数n=10或者20 printf("%.10f\n",SIMP1(a1,b1,n1)); printf("%.10f\n",FUTX(a1,b1,n1)); //printf("\ntime=%f\n",Atime/60); } doubleFunc(doublex) { return(log(1+x)/(1+x*x)); } doubleSIMP1(doublea1,doubleb1,intn1) { inti; doubleh,s; h=(b1-a1)/(2*n1); s=0.5*(Func(a1)-Func(b1)); for(i=1;i<=n1;i++) s+=2*Func(a1+(2*i-1)*h)+Func(a1+2*i*h); return((b1-a1)*s/(3*n1)); } doubleFUTX(doublea1,doubleb1,intn1) { inti; doublet,h; h=(b1-a1)/n1; t=Func(a1)+Func(b1); for(i=1;i<=n1;i++) t+=2*Func(a1+i*h); return((t*h/2)); } //高斯求积公式 #include #include #include doubleROMBG(double,double,double,double,double,double); doubleFunc(double); voidmain() { doublea,b,eps,al,ma,mi; //intn1; a=0.0; b=1.0; eps=1e-5; al=10; ma=10; mi=3; printf("%.10f\n",ROMBG(a,b,eps,al,ma,mi)); //printf("%.10f\n",FUTX(a1,b1,n1)); //printf("\ntime=%f\n",Atime/60); } doubleFunc(doublex) { return(log(1+x)/(1+x*x)); } doubleROMBG(doublea,doubleb,doubleeps,doubleal,doublema,doublemi){ intj,q; doublel,h,r,s,k,l0,m,n; double*t; t=(double*)calloc(11,sizeof(double));if(t==NULL) exit (1); l=b-a; h=l; t[0]=(Func(a)+Func(b))*l*0.5; for(q=0;q<=ma-1;q++) { r=h; h*=0.5; k=h; s=Func(a+k); do { k+=r; if(fabs(k) (1)) s+=Func(a+k); }while(fabs(k) (1));t[q+1]=t[q]*0.5+h*s;l0=1; for(j=q;j>=0;j--) { l0*=0.25; m=(t[j+1]-t[j])/(1-l0);t[j]+=m; } n=t[0]; if(fabs(n)>=al) m/=n; if(fabs(m) { r=t[0]; free(t); return(r); } } r=t[0]; free(t); return(r); } 五、结果讨论和分析 结果分析可得到以下结论: 1、两者虽然都需要调用f相同的次数,工作量基本相同,但是精度却差别很大,复化 Simpson相对较高,故复化Simpson公式是一种精度较高的求积公式; 2、从n的不同设定值,我们可以看出细分求积分区间可以提高该两类算法的计算精度,由于Simpson算法在n=10时就有较高的精度,故对其影响并不是很大。 3、高斯求积公式算法的计算精度明显高于上述算法,它的基本方法就是运用在变步长求积的过程中运用加速公式,将梯形法则的积分值逐步加工成为精度较高的结果,是利用外推法构造出一种计算积分的方法,适用于求积分而很难求出其精确表达式的那些复杂函 数。 综上所述,上述三种方法都是数值积分问题行之有效的办法。 复化梯形和复化Simpson 必须给出合适的步长;步长过大精度难保,步长过小计算量增加。 要想事先给出一个合适的 步长却是非常困难的。 在实际计算中通常采用变步长的求积方案, 即在步长逐次折半(步长 二分)的过程中,反复利用复化求积公式进行计算,直到二分前后的两次积分精度近似值相 当符合为止。 Simpson在梯形面积近似积分值的基础上,增加中点构造出三点公式,又不断二分思想构造出复化Simpson和变步长Simpson的数值积分。 高斯求积公式算法运用在变步长求积的过程中运用加速公式,采取事后估计法,将梯形法则的积分值逐步加工成为精度较高的结果。 曲线拟合的最小二乘法 一、目的和意义 在科学实验的统计方法研究中,往往要从一组实验数据xi,yii0,1,2,L,m中, 寻找自变量x与因变量y之间的函数关系yFx。 由于观测数据往往不准确,因此不要 求yFx经过所有点x,yi,而只要求在给定点xi上误差而只要求所在所有给定点xi 上的误差iF(xi)yii0,1,2,L,m按某种标准最小。 若记0,1,2丄,mT,就是要求向量的范数||最小。 如果用最大范数,计算上困难较大,通常采用欧式范数||2 作为误差度量的标准。 Fx的函数类型往往与实验的物理背景以及数据的实际分布有关, 它一般含有某些待定参数。 如果Fx是所有待定参数的线性函数,那么相应的问题称为线性最小二乘问题,否则称为非线性最小二乘问题。 最小二乘法还是实验数据参数估计的重要 工具。 这是因为这种方法比其他方法更容易理解,即使在其他方法失效的情况下,用最小二 乘法还能提供解答,而且从统计学的观点分析,用该方法求得各项估计具有最优统计特征,因此这一方法也是系统识别的重要基础。 线性最小二乘问题可以借助多元微分学知识通过求 解法方程组得到解答。 用最小二乘法求拟合曲线时,首先要确定Sx的形式。 这不单纯是数学问题,还与所研究问题的运动规律以及所得观测数据x,yi有关;通常要从问题的运动规律以及给定数据描图,确定Sx的形式,并通过实际计算选出较好的结果。 为了使问题的提法更有一般 2 性,通常把最小二乘法中的I12都考虑为加权平方和 xiSxi Xi 这里x0是a,b上的加权函数,它表示不同点xi,f处的数据比重不同。 、计算方法 在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量 y与时间t的拟合曲 线。 t(分) 05101520253035404550 55 y104 01.272.162.863.443.874.154.374.514.584.02 4.64 3 ast对曲线进行拟合 这里 a1ta2t2 m11,1t, t2 2t,3 t3,故 11 11 1,1 ti12650,1,22,1 t3544500, i0 i0 11 11 2, 2t 4 i24983750,1,33,1 4 ti24983750, i0 i0 11 11 3,2 2,3 5 ti1193362500,3,3 t-58593218750 i0 i0 1111 1,y 2 X1365.55,2,y1) 人54350.75, i0i0 本题要求我们用 11 3,yt;%2379846.25 i0 n 由于k,jajdjk0,1,L,n,可以利用此式算出拟合曲线的ai,即 j0 2,1 2, 2 2,3 a2 2,y2 3,1 3, 2 3,3 a3 3,y3 所以 求 得 a1 2.66 10 5 a2 5.29 107 t2.66 10 5t 5.29 107 t2 3.52 9,3 10t, 误差为 iy 1,1 1,2 1,3 112 a33.5210 tii0,1丄 11 max 0.455,而均方误差为 i0.51293892 i0 F图可见实际测出值与拟合值的差别,下表可见拟合出的每一点的误差以及均方误差。 t y 拟合值 误差 误差平方 0 0 0 0 0 5 1.27 1.20215 -0.06785 0.004603623 10 2.16 2.1662 0.0062 3.844E-05 15 2.86 2.91855 0.05855 0.003428103 20 3.44 3.4856 0.0456 0.00207936 25 3.87 3.89375 0.02375 0.000564063 30 4.15 4.1694 0.0194 0.00037636 35 4.37 4.33895 -0.03105 0.000964102 40 4.51 4.4288 -0.0812 0.00659344 45 4.58 4.46535 -0.11465 0.013144622 50 4.02 4.475 0.455 0.207025 55 4.64 4.48415 -0.15585 0.024289222 均方误差 0.51293892 三、结果讨论与分析 最小二乘法如果想将曲线拟合的比较完美,必须应用适当的模拟曲线,如果模拟曲线选择不够适当,那么用最小二乘法计算完后,会发现拟合曲线误差比较大,均方误差也比较大,而如果拟合曲线选择适当,那么效果较好。 因此,需要对已知点根据分布规律选取多个可能的近似拟合曲线,算出后比较误差与均方误差,得到最佳拟合曲线。 但是如果已知点分布非常不规律,无法观察或是无法正确观察出其近似曲线,那么根本无法使用最小二乘法进行曲线拟合,我们只能使用其它方法进行逼近,如最佳一致逼近多项式。 如果本题我们错误的使用ya0a1t对本题进行模拟,那样误差与均方误差都非常大,23肯定无法得到好的效果,相比较而言,本题所选取的ta1ta2t2a3t3可以达到预期效果。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 积分 问题 数值 分析 上机 实验 报告