计算机与信息工程学院数值分析实验报告计科专业2013级2班姓名:_________学号:________注:实验平台为VS2013实验一:Lagrange插值法一、实验目的(1)通过实验掌握Lagrange插值法;(2)学会用编程语言求解具体插值问题。二、实验题目:给出f(x)的函数表如下:x0.40.550.650.80.91.05f(x)0.410750.578150.696750.888111.026521.25382按Lagrange插值算法编程求出f(0.596)的近似值;三、实验原理若给定两个插值点),(),,(1100yxyx,其中10xx,在公式中取1n,则Lagrange插值多项式为:)()()()()()(001010010110101xxxxyyyxxxxyxxxxyxp是经过),(),,(1100yxyx的一条直线,故此法称为线性插值法。若函数给定三个插值点2,1,0),,(iyxii,,其中ix互不相等,在公式中取1n,则Lagrange插值多项式为:))(())(())(())(())(())(()(1202102210120120102102xxxxxxxxyxxxxxxxxyxxxxxxxxyxp这种插值法称为二次插值或抛物插值。四、实验内容与步骤五、实验程序六、实验结果及其分析教师评语:实验成绩:_____计算机与信息工程学院数值分析实验报告实验二:最小二乘法一、实验目的(1)掌握最小二乘法的基本思路和拟合步骤;(2)培养编程与上机调试能力。二、实验题目已知一组数据如下,求它的线性拟合曲线。ix12345iy44.5688.5iw21311三、实验原理已知数据对,1,2,,jjxyjn,求多项式0()()miiipxaxmn使得20110(,,,)nminijjjiaaaaxy为最小,这就是一个最小二乘问题。四、实验内容与步骤已知一组数据如下,求它的线性拟合曲线。ix12345iy44.5688.5iw21311用线性函数()pxabx为例,拟合给定数据,,1,2,,iixyim。算法描述:步骤1:输入m值,及,,1,2,,iixyim。步骤2:建立法方程组TAAXAY。步骤3:解法方程组。步骤4:输出()pxabx。五、实验程序六、实验结果及其分析教师评语:实验成绩:_____计算机与信息工程学院数值分析实验报告实验三:复化梯形公式逐次分半求积法一、实验目的(1)掌握复化梯形公式逐次分半求积法的流程图的画法;(2)通过数值实验,掌握基本的数值积分方法;(3)编程并以教材中数据检验程序正确性。二、实验题目复化梯形公式逐次分半求积法计算积分值dxxxI10sin。三、实验原理求积分值dxxfIba)(的梯形公式是:)]()([2)(bfafabdxxfIba;复化梯形公式:])()(2)([2)]()([211110nkkkknknbfxfafhxfxfhT;实际计算中常采用变步长的计算方案,即在步长逐次减半(即步长二分)的过程中,反复利用复化求积公式进行计算,直到所求得的积分值满足精度要求为止。设将求积区间],[ba分为n等分,则一共得到1n个等分点khaxk,nabh,nk,,1,0。用nT表示复化梯形法求得的积分值,其下标n表示等分数。递推公式如下:10212)(221nkknnxfhTT,其中nabh代表二分前的步长,hkaxk)21(21。四、实验内容与步骤1.给出积分dxxxI10sin。2.编程实现积分求值。五、实验程序#includestdio.h#includemath.h#includestringdoubleintegral(doublea,doubleb,double(*f)(double),doubleeps){doublen=1;doubleh=(b-a)/2;doubleTn=h*(f(a)+f(b));doubleT2n=0;while(1){doublesumf=0;inti;for(i=1;i=n;++i){sumf+=f(a+(2*i-1)*h);}if(fabs(T2n-Tn)3*eps)break;T2n=Tn/2+h*sumf;Tn=T2n;n*=2;h/=2;}returnT2n;}doublefunc(doublex){if(!x){return1;}else{return(sin(x)/x);}}intmain(void){printf_s(%s%.7f\n,sin(x)/x在[0,1]的积分值为:,integral(0,1,func,1e-8));system(pause);return0;}六、实验结果及其分析教师评语:实验成绩:_____计算机与信息工程学院数值分析实验报告实验四:数值微分一、实验目的1.通过数值实验,掌握基本的数值微分方法;2.提高编程实现数值计算的能力。二、实验题目实验测得一组数据如下,求0.8x处的导数。x00.10.20.30.40.50.60.70.80.91.0)(xf0.480.380.310.330.360.410.510.430.350.290.28所给数据为等距节点,采用插值型数值求导中的三点公式,编程求导。三、实验原理四、实验内容与步骤1.实验内容实验测得一组数据如下,求0.8x处的导数。x00.10.20.30.40.50.60.70.80.91.0)(xf0.480.380.310.330.360.410.510.430.350.290.28所给数据为等距节点,采用插值型数值求导中的三点公式,编程求导。2.实验内容(1)编程实现导函数的构造;(2)将相关数据代入求得数值求导的值。五、实验程序clearx=0:0.1:1;y=[0.480.380.310.330.360.410.510.430.350.290.28];h=0.1;fori=2:(length(x)-1);dy(i)=(y(i+1)-y(i-1))/2/h;enddy(1)=(2*y(2)-1.5*y(1)-0.5*y(3))/h;%dy(length(x))=(1.5*y(length(y))-2*y(length(y)-1)+0.5*y(length(y)-2))fprintf('\n%s\t\t%s\t\t%s','No','f(x)','dy/dx')fprintf('\n---------------------------')fori=1:length(x)fprintf('\n%d\t\t%.2f\t\t%.2f',i,y(i),dy(i))end六、实验结果及其分析教师评语:实验成绩:_____计算机与信息工程学院数值分析实验报告实验五:求解微分方程的龙格-库塔方法一、实验目的(1)掌握四阶Runge-Kutta方法的编程;(2)实现求解常微分方程初值问题。二、实验题目用四阶龙格-库塔公式解初值问题:1)0(2'yyxyy)10(x,2.0h三、实验原理求解初值问题'0()(,)()()yxfxyaxbyay对上述给定的(,)fxy,用四阶龙格-库塔法求解常微分方程初值问题112341213243(22)6(,)11(,)2211(,)22(,)nnnnnnnnnnhyykkkkkfxykfxhyhkkfxhyhkkfxhyhk四、实验内容与步骤用四阶龙格-库塔公式解初值问题:1)0(2'yyxyy)10(x,2.0h五、实验程序六、实验结果及其分析教师评语:实验成绩:_____计算机与信息工程学院数值分析实验报告实验六:牛顿迭代法求方程的根一、实验目的(1)掌握用牛顿迭代法的程序设计;(2)解决收敛加速问题。二、实验题目用牛顿法求方程013xx在5.1x附近的一个根。三、实验原理给定初始值0x,为根的容许误差,为()fx的容许误差,N为迭代次数的容许值。①如果'0()0fx或迭代次数大于N,则算法失败,结束;否则执行②;②计算010'0()()fxxxfx;③若10xx或1()fx,则输出1x,程序结束;否则执行④;④令01xx,转向①四、实验内容与步骤①如果'0()0fx或迭代次数大于N,则算法失败,结束;否则执行②;②计算010'0()()fxxxfx;③若10xx或1()fx,则输出1x,程序结束;否则执行④;④令01xx,转向①五、实验程序#includemath.h#includestdio.h#includestringintmain(void){floatx,x0,f,f1;x=1.5;do{x0=x;f=2*x0*x0*x0-4*x0*x0+3*x0-6;f1=6*x0*x0-8*x0+3;x=x0-f/f1;}while(fabs(x-x0)=1e-5);printf_s(x=%f\n,x);system(pause);return0;}六、实验结果及其分析教师评语:实验成绩:_____计算机与信息工程学院数值分析实验报告实验七:高斯消去法一、实验目的(1)掌握高斯消去法的基本思路和迭代步骤;(2)培养编程与上机调试能力二、实验题目解方程组1231231230.1012.3043.5551.1831.3473.7124.6232.1372.8351.0725.6433.035xxxxxxxxx三、实验原理(1)高斯消去法基本思路设有方程组Axb,设A是可逆矩阵。高斯消去法的基本思想就是僵局真的初等行变换作用于方程组的增广矩阵BAb,将其中的A变换成一个上三角矩阵,然后求解这个三角形方程组。(2)列主元高斯消去法计算步骤将方程组用增广矩阵(1)ijnnBAba表示。步骤1:消元过程,对1,2,,1kn(1)选主元,找,1,,kikkn使得,maxkikikkinaa(2)如果,0kika,则矩阵A奇异,程序结束;否则执行(3)。(3)如果kik,则交换第k行与第ki行对应元素位置,kkjijaa,,,1jkn。(4)消元,对,,ikn,计算/,ikikkklaa对1,,1jkn,计算.ijijikkjaala步骤2:回代过程:(1)若0,nna则矩阵奇异,程序结束;否则执行(2),1/;nnnnnxaa对1,,2,1in,计算,11/niinijjiijixaaxa四、实验内容与步骤解方程组1231231230.1012.3043.5551.1831.3473.7124.6232.1372.8351.0725.6433.035xxxxxxxxx高斯消去法的算法Step1消元:对k=1,2,…,n-1若0)(kkka则停止计算对i=k+1,k+2,…,n计算因子)()(/kkkkikikaam;对j=k+1,k+2,…,n计算)()()1()()()1(kkikkikikkjikkijkijbmbbamaa;Step2回代:对i=n,n-1,…,1)(1)()(iiinijjiijiiiaxabx五、实验程序#includestdio.h#includestdlib.h#includestring#defineN10floatgetm(floata[N][N],floatx[N],inti,intn){floatm=0;intr;for(r=i+1;rn;r++){m+=a[i][r]*x[r];}returnm;}floatgetx(floata[N][N],floatb[N],