计算方法上机实习报告5 - 华中科技大学

时间:2024.4.5

计算方法上机实习报告5

一.  提出问题

(1)给出概率积分

的数据表:

试用二次插值计算

(2)已知的函数表

试构造出差商表,利用二次Newton插值公式计算sin1.609(保留五位有效数字)。

(3)求不高于4次的多项式,使它满足并写出余项表达式。

(4)用最小二乘法求一个形如的经验公式,使与下列数据相拟合

二.  分析问题

(1)题目给出概率积分的四个插值节点,要求用二次插值计算,而我们知道二次插值只需要三个插值节点即可,在该题中我们尝试取前三个点作为插值节点。

   该题的重点在求插值基函数而它们由公式

                                

给出。而给出插值公式。

(2)Newton基本插值公式

                

它的各项系数就是函数的各阶差商,每增加一个插值节点,只需要在原来的基础上多计算一项,这一性质被称作承袭性。

(3)该题需要确定一个4次插值多项式,就是要获得其各项系数的解。4次多项式有5个系数,而题目正好给予了5个条件,这样我们会获得关于系数的非奇异五元一次方程组,在运用第三章的选列主元消元法求出各系数。

(4)本题要求用最小二乘法求经验公式。实际上也就是确定拟合曲线的各项系数,关于系数的线性方程组如下:

三.解决问题

   (1)C语言代码如下:

#include"stdio.h"

#include"iostream.h"

#include"math.h"

#define N 3

void Get_l(int k,double x,double xk[N],double L[N]);

void main()

{   int i;

    double l[N],L[N],x,Lx=0;

    double xk[N]={0.46,0.47,0.48};

    double f[N]={0.4846555,0.4937542,0.5027498};

    printf("输入需插值节点x:\n");

    scanf("%lf",&x);

    for(i=0;i<N;i++)

    {   Get_l(i,x,xk,l);

       L[i]=l[i]*f[i];

       Lx+=L[i];

    }

    cout.precision(7);

    cout<<"f(x)="<<Lx<<endl;

}

/*获得基函数lk(x)*/

void Get_l(int i,double x,double xk[N],double l[N])

{   int k;

    double y1=1,y2=1;

    for(k=0;k<N;k++)

       if(k!=i)

       {   y1*=(x-xk[k]);

           y2*=(xk[i]-xk[k]);

       }

    l[i]=y1/y2;

}

结果如下:

(2)C语言代码如下:

#include"stdio.h"

#include"math.h"

#define N 3

#define M 4

void Put_out(int i,double a[N][M]);

double Get_value(double x,double a[N][M]);

void main()

{   int i,j;

    double a[N][M],sinx,x1;

    double x[N]={1.5,1.6,1.7};

    double f[N]={0.99749,0.99957,0.99166};

    for(i=0;i<N;i++)

    {   a[i][0]=x[i];

       a[i][1]=f[i];

    }

    for(i=0;i<N;i++)

       Put_out(i,a);

    printf("k\tf(xk)\t\tf(x0,xk)\tf(x0,x1,xk)\tf(x0,x1,x2,xk)\n");

    for(i=0;i<N;i++)

    {   printf("%d\t",i);

       for(j=0;j<i+2;j++)

       {   printf("%lf\t",a[i][j]);

       }

       printf("\n");

    }

    printf("Putin x:\n");

    scanf("%lf",&x1);

    sinx=Get_value(x1,a);

    printf("sin(%lf)=%lf\n",x1,sinx);

}

/*输出差商表*/

void Put_out(int i,double a[N][M])

{   int j;

    for(j=2;j<M;j++)

    {   if(j<i)

           a[i][j]=(a[i][j-1]-a[0][j-1])/(a[i][0]-a[j-1][0]);

       if(j<i+2)

           a[i][j]=(a[i][j-1]-a[j-2][j-1])/(a[i][0]-a[j-2][0]);

       else

           a[i][j]=0;

    }

}

以上代码仅是主函数和输出差商部分,求值用的是选列主元消元法,前面有所涉及,在这里不再赘述。

输出差商表如下:

运行结果如图:

(3)C语言代码如下:

#include"stdio.h"

#include"math.h"

#define N 5

void Get_a(double c[2][N],double [N][N]);

void found(double a[N][N],double b[N],int j);

void Gauss(double a[N][N],double b[N],int j);

void Get_root(double a[N][N],double b[N],double x[N]);

void main()

{   int j;

    double a[N][N],x[N];

    double c[2][N]={{1,0,1,0,1},{1,1,2,2,3}};

    double b[N]={-2,4,0,0,2};

    Get_a(c,a);

    for(j=0;j<N-1;j++)

    {   found(a,b,j);     /*寻找第j列主元*/

       Gauss(a,b,j);     /*对第j列进行消元*/

    }

    Get_root(a,b,x);     /*求解*/

    printf("输出各项系数(升序):\n");

    for(j=0;j<N;j++)

       printf("%lf\t",x[j]);

   

}

void Get_a(double c[2][N],double a[N][N])

{   int i,j;

    for(i=0;i<N;i++)

    {   if(c[0][i]==1)

           for(j=0;j<N;j++)

              a[i][j]=pow(c[1][i],double(j));

       if(c[0][i]==0)

           for(j=0;j<N;j++)

              a[i][j]=j*pow(c[1][i],double(j-1));

    }

}

这是主函数和获得关于系数的五元一次方程组部分,解系数采用选列主元消元法。运行结果如下:

也就是说,也就是参考答案中的展开式。

(4)C语言代码如下:

#include"stdio.h"

#include"math.h"

#define N 5

#define M 2

void Get_x(double x[M][M],double flag[M],double xy[N]);

void Get_d(double d[M],double flag[M],double xy[N],double y[N]);

void found(double a[M][M],double b[M],int j);

void Gauss(double a[M][M],double b[M],int j);

void Get_root(double a[M][M],double b[M],double x[M]);

void main()

{   int i,j;

    double ab[M];

    double flag[M]={0,2};

    double x[M][M],d[M];

    double xy[N]={19,25,31,38,44};

    double y[N]={19,32.3,49,73.3,97.8};

    Get_x(x,flag,xy);

    Get_d(d,flag,xy,y);

    for(j=0;j<M-1;j++)

    {   found(x,d,j);     /*寻找第j列主元*/

       Gauss(x,d,j);     /*对第j列进行消元*/

    }

    Get_root(x,d,ab);    /*求解*/

    for(j=0;j<M;j++)

    {   printf("第%d次项系数:%lf\n",int(flag[j]),ab[j]);

    }

}

void Get_x(double x[M][M],double flag[M],double xy[N])

{   int i,j,k;

    double temp;

    for(i=0;i<M;i++)

       for(j=0;j<M;j++)

       {   temp=0;

           if(j<i)

              x[i][j]=x[j][i];

           else

           {   for(k=0;k<N;k++)

              {   temp+=pow(xy[k],flag[i])*pow(xy[k],flag[j]);

              }

              x[i][j]=temp;

           }

       }

}

void Get_d(double d[M],double flag[M],double xy[N],double y[N])

{   int i,j;

    double temp;

    for(i=0;i<M;i++)

    {   temp=0;

       for(j=0;j<N;j++)

       {   temp+=y[j]*pow(xy[j],flag[i]);

       }

       d[i]=temp;

    }

}

这里只给出主函数和获得系数阵部分,运行结果如下:

,计算正确。

四.制作人

   王腾飞、李智明、王磊、胡金龙

   苗盛、刘曦、李林锋、刘衎


第二篇:华中科技大学实习报告-模板


实习报告

中国·武汉

二○一  年  月


一、实习目的

 介绍实习目的和意义及实习要求等。

以第三人称行文。

宋体四号,正文宋体小四,行间距20磅 ,

二、实习内容

(实习内容力求结合生产实际或以具体工作为背景;或按学院教师指定课题开展的内容。)

三、实习总结

    实践是检验真理的标准,在本次实习实践中,本人获益良多,为总结经验、吸取教训,将从专业知识的应用、实习过程中的心得体会、不足和努力方向三个方面进行归结。

3.1专业知识的应用

说明:专业知识在实习过程中的应用对用人单位岗位需求的适应情况。

3.2实习心得体会

说明:是对实习的体会和最终的、总体的结论,不是正文中各段小结的简单重复;

3.3不足与努力方向

更多相关推荐:
计算机专业实习报告

山东科技大学班级:姓名:实习单位:实习时间:计算机10-1班北京电信分公司20xx.3.1-20xx.4.1一、实习目的通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,为顺利毕业进行做好充分的准备,并…

计算机专业毕业实习报告

学院专业学生学指导毕业实习报告名称信息科学与工程学院班级计算机科学与技术专业20xx-1班姓名马超号20xx01050316教师沙静二O20xx年x月成绩评定页评定意见毕业实习成绩:指导教师对毕业实习的评语:毕…

计算机毕业实习报告

毕业实习报告题目名称计算机网络管理与维护院系名称计算机学院班级网络092学号20xx00824226学生姓名刘砺锋指导教师潘恒20xx年3月2中原工学院毕业实习报告专用纸毕业实习报告1实习题目计算机网络维护2实...

计算机专业实习报告范文大全

计算机专业实习报告范文一暑假已经结束我在xxxxxxxxxx的实习也划上了一个完美的句号第一次感觉到暑假过得这么的快也是第一次感觉到暑假过得是这样的充实已经习惯了早上7点起床不再是因为假期而生活懒散赶车上班感觉...

计算机实训报告

实训地点:陕西国防学院信息楼一、实训主要内容Word排版,表格制作与编辑。Powerpoint的制作,初步认识计算机办公应用OFFICE。二、实训过程第一天:初步熟悉计算机的性能和认识Word;第二天:练习Wo…

计算机专业实习报告范文大全

计算机专业实习报告范文一暑假已经结束我在xxxxxxxxxx的实习也划上了一个完美的句号第一次感觉到暑假过得这么的快也是第一次感觉到暑假过得是这样的充实已经习惯了早上7点起床不再是因为假期而生活懒散赶车上班感觉...

计算机基础实训报告

广东轻工职业技术学院实训报告课程名称计算机基础实训项目计算机在办公自动化中的综合应用班级营销091姓名陈俊学号20xx0403000321指导教师:成绩:周次一、实训目的通过为一周的实训,巩固本学期所学习的知识…

计算机专业实习实习报告模板

HEBEIUNITEDUNIVERSITY计算机专业实习实习报告班级11计算机班学号20xx14600112姓名张伟指导教师卢朝辉专业名称计算机科学与技术信息工程学院20xx年6月27日河北联合大学实习报告An...

计算机组成原理实习报告

福建农林大学计算机与信息学院课程名称实习题目姓名系专业年级学号指导教师职称计算机类课程实习报告计算机组成原理简单模型机设计计算机计算机科学与技术张旭玲讲师20xx年06月25日1福建农林大学计算机与信息学院计算...

计算机专业实习报告

HEBEIUNITEDUNIVERSITY计算机专业实习实习报告班级学号姓名指导教师专业名称信息工程学院20xx年6月27日河北联合大学实习报告反恐系列小游戏1概述11设计目的通过设计反恐系列小游戏项目让自己更...

20xx年计算机系大学生暑假实习报告

20xx年计算机系大学生暑假实习报告20xx年计算机系大学生暑假实习报告一实习目的这次实习本着融入社会提升自我的宗旨我踏踏实实的度过每一天争取在这有限的时间里面学到终生受用的知识这次实习的目的在于提高我的计算机...

计算机毕业实习报告

实习报告姓名学号班级计算机科学与工程学院20xx年4月20日目录一实习目的二实习单位的基本情况三实习单位的实习安排四实习单位安排的工作任务及本人完成工作任务情1实习任务2实习内容四实习中所发现的问题五实习总结体...

计算机实习报告(44篇)