数值分析实验报告指导老师:宛艳萍姓名:班级:学号:实验三复化辛卜生法,龙贝格法实验名称:复化辛卜生法,龙贝格法实验目的1)通过实际计算体会各种方法的精确度。2)会编写用复化辛卜生、龙贝格算法求定积分的程序。)用复化辛卜生法计算积分算法:复化辛卜生公式为Sn=h/6,计算过程为:.。2)龙贝格算法计算算法用事后估计法控制精度。 :1)/*用复化辛卜生公式求积分*/#include""floatfx(floatx){ doublef;f=/(+x*x);returnf;}doublefs(intn){doublea=,b=,h,s,s1,s2=0;inti;h=(b-a)/n;s1=fx(a+h/2);for(i=1;i<n;i++){s1=s1+fx(a+i*h+h/2);s2=s2+fx(a+i*h);}s=(h/)*(fx(a)+fx(b)+4*s1+2*s2);returns;}voidmain(){ printf("实验三 复化辛卜生法计算机112耿向飞学号:112434\n"); printf("s(2)=%lf\ns(4)=%lf\ns(8)=%lf",fs(2),fs(4),fs(8));}2)/*龙贝格法*/#include""#include""#defineE2.//被积函数f(x)doublefx(doublex){ doublef; f=1/(1+x*x); returnf;}//梯形公式求tndoubletx(intn){doubles3=,h,t,b=,a=;inti;h=(b-a)/n;for(i=1;i<n;i++)s3=s3+fx(i*h);t=(h/2)*(fx(a)+fx(b)+2*s3);returnt;}doubles(intn){ doubles; s=tx(2*n)+()*(tx(2*n)-tx(n)); returns; }doublec(intn){ doublec; c=s(2*n)+()*(s(2*n)-s(n)); returnc;}doubler(intn){ doubler; r=c(2*n)+()*(c(2*n)-c(n)); returnr; }voidmain(){doublerr,pp;intn=1;rr=r(n);pp=r(2*n)-r(n);printf("实验三 龙贝格法计算机112耿向飞学号:112434\n"); printf("结果为:%.15lf误差小于等于:%.15lf",rr,pp);})复化辛卜生公式2)龙贝格算法对算法的理解与分析:复化辛卜生公式和龙贝格算法适用于求数值积分,而且都能提高计算积分的精度龙贝格算法其实是在复化辛卜生公式递推的基础之上生成的一种精度高,而且收敛速度也较快的一种算法。对于复化辛卜生算法来说,程序比较容易编写,而龙贝格算法,程序中需要注意用龙贝格算法加速收敛的时候如何处理判断以后生成的返回值才能使龙贝格算法达到预期目的,求得所需要的结果。数值分析实验报告指导老师:宛艳萍姓名:耿向飞班级:计112学号:112434实验四改进欧拉方法、二分法和牛顿迭代法1.
河北工业大学数值分析实验三实验四实验报告 来自淘豆网m.daumloan.com转载请标明出处.