计算机强化训练报告

时间:2024.4.30

计算机强化训练报告

课 题: Linux系统基础知识

学 院:

班 级:

姓 名:

学 号:

气 学 院 09 电子 王 成 09020618 常州工学院 电

计算机强化训练报告

课 题: Linux系统基础知识

学 院:

班 级:

姓 名:

学 号:

气 学 院 09 电子 于贝贝 09020632 常州工学院 电


第二篇:计算机上机报告


计算方法上机实验报告

      

        

上课时间:20##-2015学年秋学期,614

一.拉格朗日插值------------------------------------------------------1

二.牛顿插值------------------------------------------------------------3

三.改进欧拉法---------------------------------------------------------5

四.四阶龙格-库塔-----------------------------------------------------7

五.牛顿迭代------------------------------------------------------------9

六.复化Simpson公式------------------------------------------------11

七.Romberg算法------------------------------------------------------14

八.  Seidel迭代法------------------------------------------------------17

九.  Gauss列主元消去法----------------------------------------------20

一.拉格朗日插值

1.程序代码

#include<iostream.h>

void Lagrange()

{

    int i=0;

    double a[10],b[10],L,L1,L2,L3,L4,x;

    cout<<"x=";

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

    {

       cin>>a[i];

    }

       cout<<"y=";

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

    {

       cin>>b[i];

    }

    cout<<"x=";

    cin>>x;

    L1=(x-a[1])*(x-a[2])*(x-a[3])*b[0]/(a[0]-a[1])/(a[0]-a[2])/(a[0]-a[3]);

    L2=(x-a[0])*(x-a[2])*(x-a[3])*b[1]/(a[1]-a[0])/(a[1]-a[2])/(a[1]-a[3]);

    L3=(x-a[0])*(x-a[1])*(x-a[3])*b[2]/(a[2]-a[0])/(a[2]-a[1])/(a[2]-a[3]);

    L4=(x-a[0])*(x-a[1])*(x-a[2])*b[3]/(a[3]-a[0])/(a[3]-a[1])/(a[3]-a[2]);

    L=L1+L2+L3+L4;

    cout<<"L="<<L;

}

void main()

{

    Lagrange();

    cout<<endl;

}                                                                                   

2.例子

3.运行结果

  

二.牛顿插值

1.程序代码

#include <iostream.h>

#include<conio.h>

void main()

{

    int n,i,j;

    double A[50][50],*x,*y;

    cout<<"请输入插值节点数:";

    cin>>n;

    x=new double[n];

    y=new double[n];

    cout<<"请输入这"<<n<<"个插值节点(xi,yi):"<<endl;

    for(i=0;i<=n-1;i++)

        cin>>x[i]>>y[i];

    double K=1,xx,N=0,P;

    for(i=0;i<=n-1;i++)

    {

        A[i][0]=x[i];

        A[i][1]=y[i];

    }

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

        for(i=1;i<=n-1;i++)

        {

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

        }

        for(i=0;i<=n-1;i++)

            cout<<"输出第"<<i+1<<"阶差商为:"<<A[i][i+1]<<endl;

        cout<<"请输入预求值x=";

        cin>>xx;

        for(i=0;i<n-1;i++)

        {

            K*=xx-x[i];

            N+=A[i+1][i+2]*K;

            P=A[0][1]+N;

        }

        cout<<"Newton插值结果为:y="<<P<<endl;

        getch();

}

2.例子

3.运行结果

三.改进欧拉法

1.程序代码

#include<iostream.h>

#include<conio.h>

double fun(double x,double y)

{

    return(-0.9*y/(1+2*x));

}

void main()

{

    double a,b,*y,h,*x,yp,yc;

    int n,k;

    cout<<"常微分方程为y'=-0.9*y/(1+2*x)"<<endl;

    cout<<"其中0<=x<=1"<<endl;

    cout<<"初值为y(0)=1"<<endl;

    cout<<"请输入计算区间(a,b):";

    cin>>a>>b;

    cout<<"请输入步长h:";

    cin>>h;

    cout<<"请输入计算次数:";

    cin>>n;

    y=new double[n];

    x=new double[n];

    cout<<"请输入初值y(0)=";

    cin>>y[0];

    x[0]=a;

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

    {

       yp=y[k]+h*fun(x[k],y[k]);

       yc=y[k]+h*fun(x[k]+h,yp);

       y[k+1]=0.5*(yp+yc);

       x[k+1]=x[k]+h;

    }

    cout<<"迭代结果为:"<<endl;

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

       cout<<"x"<<k<<"="<<x[k]<<'\t'<<"y"<<k<<"="<<y[k]<<endl;

    getch();

}

2.例子

3.运行结果

四.四阶龙格-库塔

1.程序代码

#include<iostream.h>

#include<conio.h>

double fun(double x,double y)

{

    return(x-y);

}

void main()

{

    double a,b,*y,h,x,k1,k2,k3,k4;

    int n,k;

    cout<<"常微分方程为y'=x-y"<<endl;

    cout<<"其中0<=x<=1"<<endl;

    cout<<"初值为y(0)=0"<<endl;

    cout<<"请输入计算区间(a,b):";

    cin>>a>>b;

    cout<<"请输入步长h:";

    cin>>h;

    cout<<"请输入计算次数:";

    cin>>n;

    y=new double[n];

    cout<<"请输入初值y(0):";

    cin>>y[0];

    x=a;

    cout<<"Runge-Kutta迭代法结果为:"<<endl;

    cout<<"x0="<<x<<'\t'<<"y0="<<y[0]<<endl;

    for(k=0;k<=n-1;k++)

    {

       k1=fun(x,y[k]);

       k2=fun(x+h/2,y[k]+k1*h/2);

       k3=fun(x+h/2,y[k]+k2*h/2);

       k4=fun(x+h,y[k]+k3*h);

       y[k+1]=y[k]+(h/6)*(k1+2*(k2+k3)+k4);

       cout<<"x"<<k+1<<"="<<x+h<<'\t'<<"y"<<k+1<<"="<<y[k+1]<<endl;

       x=x+h;

    }

    getch();

}

2.例子

3.运行结果

五.牛顿迭代法

1.程序代码(C++代码)

#include<iostream>

#include<cmath>

using namespace std;

double newtondiedai(double a,double b,double c,double d,double x);

int main()

{

double a,b,c,d;

double x=1.5;

cout<<"请依次输入方程四个系数:";

cin>>a>>b>>c>>d;

x=newtondiedai(a,b,c,d,x);

cout<<x<<endl;

return 0;

}

double newtondiedai(double a,double b,double c,double d,double x)

{

while(abs(a*x*x*x+b*x*x+c*x+d)>0.000001)

{

x=x-(a*x*x*x+b*x*x+c*x+d)/(3*a*x*x+2*b*x+c);

}

return x;

}

2.例子

3.运行结果

六.复化Simpson公式

1.程序代码(C++代码)

#include<iostream.h>

#include<math.h>

double function1(double x)//被积函数

{

    double s;

    s=x/(4+x*x);

    return s;

}

double function2(double x)//被积函数

{

 double s;

 s=sqrt(x);

 return s;

}

double ReiterationOfSimpson(double a,double b,double n,double f(double x))//复化Simpson公式

{

 double h,fa,fb,xk,xj;

 h=(b-a)/n;

    fa=f(a);

 fb=f(b);

 double s1=0.0;

 double s2=0.0;

 for(int k=1;k<n;k++)

 {

  xk=a+k*h;

  s1=s1+f(xk);

 }

 for(int j=0;j<n;j++)

 {

  xj=a+(j+0.5)*h;

  s2=s2+f(xj);

 }

 double sn;//和

 sn=h/6*(fa+fb+2*s1+4*s2);//复化Simpson公式

 return sn;

}

main()

{double a,b,Result,n;

 cout<<"请输入积分下限:"<<endl;

 cin>>a;

 cout<<"请输入积分上限:"<<endl;

 cin>>b;

 cout<<"请输入分割区间数n:"<<endl;

 cin>>n;

 cout<<"复化Simpson公式计算结果:";

 Result=ReiterationOfSimpson(a, b, n,function1);

 cout<<Result<<endl;

}

2.例子   (

3.运行结果

七.Romberg算法

1.程序代码(C++代码)

#include<iostream>

#include<cmath>

using namespace std;

#define f(x) (4/(1+x*x)) 

#define epsilon 0.0001 

#define MAXREPT 10  

double Romberg(double aa,double bb)

{   int m,n;

    double h,x;

    double s,q;

    double ep;

    double *y =new double[MAXREPT];

    double p;

    h=bb-aa;

    y[0]=h*(f(aa)+f(bb))/2.0;

    m=1;

    n=1;

    ep=epsilon+1.0;

    while((ep>=epsilon)&&(m<MAXREPT))

    {   p =0.0;

        for(int i=0;i<n;i++)

        {   x=aa+(i+0.5)*h;

            p=p+f(x);

        }

        p=(y[0] + h*p)/2.0;    

        s=1.0;

        for(int k=1;k<=m;k++)

        {   s=4.0*s;

            q=(s*p-y[k-1])/(s-1.0);

            y[k-1]=p;

            p=q;

        }

        p=fabs(q-y[m-1]);

        m=m+1;

        y[m-1]=q;

        n=n+n;h=h/2.0;

    }

    return (q);

}

int main()

{double a,b;

 cout<<"Romberg积分,请输入积分范围a,b:"<<endl;

 cin>>a>>b;

 cout<<"积分结果:"<<Romberg(a,b)<<endl;

 system("pause");

 return 0;

}

2.例子(

3.运行结果

八.Seidel迭代法

1.程序代码(C++代码)

# include <math.h>

# include <stdio.h>

# define max 100

# define EPS 1e-6

float a[3][3]={{10,-1,-2},{-1,10,-2},{-1,-1,5}};

float b[3]={7.2,8.3,4.2};

float x[3]={0,0,0};

float y[3];

float S(int m)

{int n;

 float S=0;

 float y;

 for(n=0;n<3;n++)

 {if(m==n){}

  else

  {S+=a[m][n]*x[n];

  }

 }y=(b[m]-S)/a[m][m];

 return y;

}

void main()

{int i;

 int F,T=1,k=1;

 do

{F=0;

 if(T)

{T=0;}

 else

{k++;

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

{x[i]=y[i];

}

}

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

{y[i]=S(i);

}

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

{if(fabs(x[i]-y[i])>EPS)

{F=1;

}

}printf("%d\n",k);

}while(((F==1)&&k!=max));

 printf("迭代次数:%d\n",k);

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

{printf("x[%d]=%1.6f\n",i,y[i]);

}

}

2.例子(

3.运行结果

九.Gauss列主元消去法

1.程序代码(C++代码)

#include <stdio.h>

#include<conio.h>

#include <math.h>

#define max_dimension 20

int n;

static float a[max_dimension][max_dimension];

static float b[max_dimension];

static float x[max_dimension];

void main()

{int i;

int j;

int d;

int row;

float temp;

float known_items;

float l[max_dimension][max_dimension];

printf("请输入阶数:");

scanf("%d",&n);

printf("\n");

printf("请输入系数矩阵的值: ");

printf("\n");

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

{  printf("输入第%d行的值:",i+1);

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

   {

    scanf("%f",&a[i][j]);

   }

printf("\n");

}

printf("请输入常数项的值: ");

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

   scanf("%f",&b[i]);

printf("\n");

for(d=0; d<n-1; d++)

{row=d;

for(i=d+1; i<n; i++)

{if(fabs(a[i][d])>fabs(a[row][d]))

row=i;

}

if(row!=d)

{for(j=d; j<n; j++)

{temp=a[row][j];

 a[row][j]=a[d][j];

 a[d][j]=temp;

}

temp=b[row];

b[row]=b[d];

b[d]=temp;

}

for(i=d+1; i<n; i++)

{l[i][d]=-a[i][d]/a[d][d];

 for (j=d; j<n; j++)

 {a[i][j]=a[i][j]+a[d][j]*l[i][d];

 }

 b[i]=b[i]+b[d]*l[i][d];

}

}

printf("\n");

for (i=n-1; i>-1; i--)

{known_items=0;

 for(j=1; j<n-i; j++)

 {known_items=known_items+a[i][i+j]*x[i+j];

 }

 x[i]=(b[i]-known_items)/a[i][i];

}

printf("方程组的根为:\n\n");

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

printf("%.5f   ",x[i]);

printf("\n\n");

getch();

}

2.例子

3.运行结果

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

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

计算机实训总结范文

[实习目的]通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。[实习任务]对计算机在人事管理方面的应用进行…

计算机专业实习报告范文

今年暑假我来到了上海酷扬计算机科技有限公司售后服务部实习,短短1个月的工作过程使我受益匪浅。不仅计算机专业知识增长了,最主要是懂得了如何更好的为人处事。当今社会一直处在加速的发展变化中,所以对人才的要求也越来越…

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

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

计算机实习报告范文

实习目的:通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计专题的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。实习任务:对计算机在学生信息管理方面的应用进行…

计算机软件专业实习报告范文

计算机软件专业实习报告范文目录一实习计划1二实习目的1三实习内容2四实习总结2五实习日志5一实习计划3月5日参观单位的基本设施并且通过资料和领导介绍了解单位的文化史和发展史对单位结构和运作进行一定的了解3月6日...

计算机专业实习报告范文

二计算机专业实习报告范文今年暑假我来到了上海酷扬计算机科技有限公司售后服务部实习短短1个月的工作过程使我受益匪浅不仅计算机专业知识增长了最主要是懂得了如何更好的为人处事当今社会一直处在加速的发展变化中所以对人才...

《大学计算机基础》实验报告格式(实验5-2)

《大学计算机基础》实验报告格式(实验5-2),内容附图。

计算机系实习报告范文

计算机系实习报告范文计算机专业毕业实习报告随着时间的推移不知不觉上来大学已经两年了距离毕业的时间不多了回想过去自己在这两年里究竟学到了什么得到了什么结果得到的答案吓了我一跳原来自己并没有学到什么很快就要踏入社会...

计算机专业毕业设计实习报告范文

实习报告实习目的:通过理论联系实际,巩固所学的知识,提高处理实际问题的能力,了解设计客房管理系统的主要内容,为毕业设计的顺利进行做好充分的准备,并为自己能顺利与社会环境接轨做准备。实习任务:这段时间主要学习了与…

计算机公司大学生实习报告范文

计算机公司大学生实习报告范文在大学里我一直在不断的努力我相信我可以做的更好的可是一直以来我没有很大的进步我好像进入了瓶颈期我学习的是计算机技术专业现实的情况是只有计算机技术十分好在社会上才可以做的更好我需要更多...

20xx计算机实习报告范文

20xx计算机实习报告范文一实习时间20Xx年X月18日到X月10日二实习地点中远三楼时空电脑宏图三胞边上三实习目的通过理论联系实际巩固所学的知识提高处理实际问题的能力为顺利毕业进行做好充分的准备并为自己能顺利...

计算机实训报告范文(31篇)