毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 报告 >> 正文

计算方法数值积分含源代码

更新时间:2007-9-26:  来源:毕业论文

一.实验题目

数值积分

二.实验目的

学会使用数值积分的方法

三.实验软件

VC++6.0

四.流程图

   

 

float p,q

float H[1]

int m

输入并储存积分上限及积分下限

输入n节点

q=(log(n-1))/(log(2))

       m=int(q+0.5)

调用longbig函数

调用trapezia函数

输出积分结果

五.源程序[NextPage]

#include<stdio.h>

#include<stdlib.h>

#include<math.h>

#include<string.h>

float x[100];

float f[100];

float a,b;

int n;

 

void trapezia(float y,float *S)

{   int i,t;

    t=(b-a)/y;

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

              x[i]=a+y*i;

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

       {

              f[i]=sin(x[i])/x[i];

              if(x[i]==0)

              f[i]=1;

       }

    (*S)=y*(f[0]+f[t])/2;

       for(i=1;i<t;i++)

        (*S)+=(f[i]*y);

}

void longbig(int l,float *U)

{    float h;

     float *S;

     float T[20],R[20];

     S=R;

     int i,j;

     h=b-a;

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

        {

       trapezia(h/pow(2,i),S);

         T[i]=*S;

        }

      for(j=l;j>0;j--)

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

             T[i]=T[i+1]+((T[i+1]-T[i])/(pow(4,(l-j+1))-1));

     (*U)=T[0];

}

void main()

{   float p,q;

       float H[1];

       int m;

       printf("请输入积分上限\n");

       scanf("%f",&b);

       printf("请输入积分下限\n");

    scanf("%f",&a);

       printf("采用多少节点定步长复化梯形公式?\n");

       scanf("%d",&n);

    q=(log(n-1))/(log(2));

       m=int(q+0.5);

    longbig(m,H);

    p=H[0];

       printf("积分结果为\n");

    printf("%f\n",p);

}

 

六.实验结果

 

 

结果分析:输入积分上限10,下限1,节点5后得出积分结果0.701155,结果与预期相符。

计算方法数值积分含源代码下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。