中北大学 数值分析1-4实验报告(共22页)_第1页
中北大学 数值分析1-4实验报告(共22页)_第2页
中北大学 数值分析1-4实验报告(共22页)_第3页
中北大学 数值分析1-4实验报告(共22页)_第4页
中北大学 数值分析1-4实验报告(共22页)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 实验(shyn)类别:数值(shz)分析 专 业:信息(xnx)与计算科学 班 级:13080241 学 号:1308024120 姓 名:杨燕中北大学理学院 实验(shyn)一 函数(hnsh)插值方法【实验(shyn)内容】给定一元函数的个节点值, 数据如下: 0.4 0.55 0.65 0.80 0.95 1.050.410750.578150.696750.90 1.001.25382求五次Lagrange多项式或分段三次插值多项式或Newton插值多项式,并计,的值。(提示:结果为0.625732, 1.05423)【实验方法与步骤】 利用Lagrange插值公式 ,用C语言编写出

2、插值多项式程序如下:#include #define N 5 float x=0.4,0.55,0.65,0.80,0.95,1.05; float y=0.41075,0.57815,0.69675,0.90,1.00,1.25382; float p(float xx) int i,k; float pp=0,m1,m2; for(i=0;i=N;i+) m1=1;m2=1; for(k=0;k=N;k+) if(k!=i) m1*=xx-xk; m2*=xi-xk; pp+=yi*m1/m2; return pp; main() printf(f(0.596)=%lfn,p(0.596)

3、; printf(f(0.99)=%lfn,p(0.99); 【实验(shyn)结果】 【思考(sko)】1、给出的程序(chngx)求行不行,精度高不高? 2、五次Lagrange多项式与Newton插值多项式是同一个多项式吗? 五次Lagrange多项式与Newton插值多项式是同一个多项式。3、为什么高次插值不能令人满意? 一般来说,节点个数越多,插值函数和被插值函数就有越多的地方相等。但是随着插值节点个数的增加,两个插值节点之间插值函数并不一定能够很好地逼近被插值函数。再次,从舍入误差看,高次插值由于计算量大,可能会产生更严重的误差积累,所以,稳定性得不到保证。此时就会出现龙格现象。

4、实验(shyn)类别:数值(shz)分析 专 业:信息(xnx)与计算科学 班 级:13080241 学 号:1308024120 姓 名:杨燕中北大学理学院 实验二 函数(hnsh)逼近与曲线拟合【实验(shyn)内容】1、编写出Legendre、Chebyshev多项式的程序(chngx);2、从随机的数据中找出其规律性,给出其近似表达式,在生产实践和科学实验中大量存在,通常利用数据的最小二乘法求得拟合曲线。例如在某冶炼过程中,根据统计数据的含碳量与时间关系,试求含碳量与时间的拟合曲线。 (分)051015202530354045505501.72.162.863.443.874.154.

5、374.514.584.024.64111111111111【实验方法与步骤】1、用C编写语言出Legendre多项式的程序如下:#include double p(int n, double x) if(n=0) return 1; else if(n=1) return x; else return (2*n-1)*x*p(n-1,x)-(n-1)*p(n-2,x)/n;int main() int n; double x; double y; printf(input n, x:n); scanf(%d%lf,&n,&x); y=p(n,x); printf(%lfn,y); retur

6、n 0;2、给出表格数据(shj)的近似解析表达式为;,选取(xunq)基函数,则得到(d do),于是得方程组,用C语言编写曲线拟合的程序如下:#include#define Max_N 25main()int i,n;double xMax_N,yMax_N;double a11,a12,a21,a22,d1,d2;double a,b;printf(n Input n value:);doscanf(%d,&n);if(nMax_N)printf(n please re_input n value:); while(nMax_N|n=0);printf(input xi,i=0,.%d:

7、n,n-1);for(i=0;in;i+)scanf(%lf,&xi);printf(input yi,i=0,.%d:n,n-1);for(i=0;in;i+)scanf(%lf,&yi);for(i=0;in;i+)a21+=xi;a22+=xi*xi;d1+=yi;d2+=xi*yi;a12=a21;a11=n;a=(d1*a22-d2*a12)/(a11*a22-a12*a21);b=(d1*a21-d2*a11)/(a21*a12-a22*a11);printf(slove:P(x)=%f+%fxn,a,b);getchar();return 0;3、为作比较(bjio),用MATL

8、AB进行曲线拟合,编写的程序(chngx)如下:x=0 5 10 15 20 25 30 35 40 45 50 55;y=0 1.27 2.16 2.86 3.44 3.87 4.15 4.37 4.51 4.58 4.02 4.64;p=polyfit(x,y,1);disp(num2str(p(1),*x+,num2str(p(2);xx=linspace(0,60,60);yy=polyval(p,xx);plot(x,y,rx,xx,yy)【实验(shyn)结果】1、C语言(yyn)编写的Legendre多项式的程序(chngx)结果如下: 2、C语言拟合的曲线结果如下: MATLA

9、B拟合的曲线结果和误差分析结果如下:拟合(n h)的方程为:【思考(sko)】1、最佳一致(yzh)逼近与最佳平方逼近的区别是什么?最佳一致逼近中的范数取的是无穷大范数,公式为:。最佳平方逼近中的范数取的是二范数,公式为:。2、曲线拟合与最佳平方逼近的区别是什么?曲线拟合中的是上的一个列表函数,公式为:。最佳平方逼近中的是一个未知函数,公式为:。3、能用什么方法确定最小二乘法的拟合函数?拟合的方法除了最小二乘法外,还有拉格朗日插值法、牛顿插值法、区间二分法、雅克比迭代法和牛顿科特斯数值积分法等,都可以确定拟合函数。 实验(shyn)类别:数值(shz)分析 专 业:信息与计算(j sun)科学

10、 班 级:13080241 学 号:1308024120 姓 名:杨燕中北大学理学院 实验(shyn)三 数值积分与数值微分【实验(shyn)内容】选用复合梯形(txng)公式,复合Simpson公式,Romberg算法、高斯算法计算 (1) (2) (3)【实验方法与步骤】1、用C语言编写Romberg算法数值积分的程序如下:#include#include#define epsilon 0.0001 /*求基函数*/float f(float x)return (sqrt(4-sin(x)*sin(x); /*梯形公式 */float Romberg(float a,float b)int

11、 k=1;float S,x,T1,T2,S1,S2,C1,C2,R1,R2,h=b-a;T1=h/2*(f(a)+f(b); while(1)S=0;x=a+h/2;doS+=f(x);x+=h;while(xb);T2=(T1+h*S)/2.0;if(fabs(T2-T1)epsilon) return(T2);S2=T2+(T2-T1)/3.0;if(k=1)T1=T2;S1=S2;h/=2;k+=1;continue;if(fabs(S2-S1)epsilon)return(S2);C2=S2+(S2-S1)/15.0;if(k=2)C1=C2;T1=T2;S1=S2;h/=2;k+=

12、1;continue;if(fabs(C2-C1)epsilon)return(C2);R2=C2+(C2-C1)/63.0;if(k=3)R1=R2;C1=C2;T1=T2;S1=S2;h/=2;k+=1;continue;if(fabs(R2-R1)epsilon)return(R2);R1=R2;C1=C2;T1=T2;S1=S2;h/=2;k+=1; main()int i;float a,b,S;printf(n Input begin and end:);scanf(%f%f,&a,&b);S=Romberg(a,b);printf(Solve is:%f,S);scanf(%,S

13、);2、再用复合(fh)Simpson公式(gngsh)计算同一个积分,并比较其结果,且用C语言(yyn)编写的程序如下:#include#includefloat f(float x)return (sqrt(4-sin(x)*sin(x); float Simpson(float a,float b)int k=1,n=20;float s,x1,x2,h=(b-a)/n,c=a+h/2;s=h/6*(f(a)+f(b)+4*f(c); for(k=1;k=n-1;k+)x1=a+k*h;x2=x1+h/2;s=s+(2*h/3)*f(x2)+(h/3)*f(x1);return(s);

14、main()int i;float a,b,s;printf(请输入(shr)a,b:);scanf(%f%f,&a,&b);s=Simpson(a,b);printf(解为:%f,s);scanf(%,s);3、分别(fnbi)取不同步长,试比较(bjio)计算结果(如等); 4、给定精度要求,试用变步长算法,确定最佳步长。【实验结果】1、所给三个定积分的结果如下: 2、对第一个定积分用Romberg算法和复合Simpson公式计算的结果分别如下: 3、步长为时,所给三个定积分(jfn)的结果如下: 4、步长为时,所给三个定积分的结果(ji gu)如下: 【思考(sko)】1、复合求积公式的

15、优点是什么?复合求积公式通过把区间分成若干个子区间,再在每个子区间上用低阶求积公式来提高求积的精度。2、Romberg算法与与牛顿-柯特斯求积算法的联系是什么?Romberg算法与与牛顿-柯特斯求积算法的节点都是等距选取均匀分布的,且的牛顿-柯特斯公式因为误差太大而不能使用。3、高斯算法的求积节点如何确定?以这些节点为零的多项式与任何次数不超过的多项式带权正交,即:。4、牛顿-柯特斯求积与高斯算法的节点分布有什么不同?牛顿-柯特斯求积的节点是等距选取均匀分布的,而高斯算法的节点是满足以这些节点为零的多项式与任何次数不超过的多项式带权正交,即是不均匀分布的。 实验(shyn)类别:数值(shz)

16、分析 专 业:信息与计算(j sun)科学 班 级:13080241 学 号:1308024120 姓 名:杨燕中北大学理学院 实验(shyn)四 线性方程组的直接解法【实验(shyn)内容】 (用追赶(zhugn)法)【实验方法与步骤】1、对上述方程组用追赶法求解,用C语言编程如下:#include#include#include#define N 5main()float aN=0,0,-1,-2,-2;float bN=0,2,3,4,5;float cN=0,-1,-2,-2,0;float dN=0,3,1,0,-5;float xN=0,0,0,0;float rN=0,0,0,0

17、;float yN=0,0,0,0;float q;int k;r1=c1/b1;y1=d1/b1;for(k=2;k=1;k-) xk=yk-rk*xk+1;for(k=1;kN;k+)printf(x%d=%lfn,k,xk);2、将结果与精确(jngqu)值进行比较; 3、分析(fnx)数值解误差的原因。【实验(shyn)结果】1、追赶法求解结果: 2、追赶法求解结果与精确值进行比较: 因为此方程组的精确解为,;与追赶法求解结果一样。3、分析数值解误差的原因: 此方程组用追赶法求解时没有出现误差,但如果出现误差,我觉得就是在计算过程中的舍入误差逐步累积导致的。【思考】1、列主元消去法为什么选主元?由高斯消去法知道,小主元可能产生麻烦,应避免采用绝对值小的主元素,最好每一步选取隶属矩阵中绝对值最大的元素作为主元素,以使高斯消去法具有较好的数值稳定性。2、全主元消去法与列主元消去法各自的优缺点是什么?全主元素(yun s)消去法就是找所有元素的最大值放在顺序(shnx)主子阵左上角,它的优点是计算(j sun)值的误差较小,缺点是计算量太大;列主元素消去法就是找一列中元素的最大值放在顺序主子阵左上角,它的优点是计算量较全主元素消去法来说要小很多,缺点是计算值的误差比用全主元素消去法计算出来的值得误

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论