数值分析实验报告
指导老师: 宛艳萍
姓名:
班级:
学号:
实验三复化辛卜生法,龙贝格法
实验名称:复化辛卜生法,龙贝格法
实验目的
1)通过实际计算体会各种方法的精确度。
2)会编写用复化辛卜生、龙贝格算法求定积分的程序。
1)用复化辛卜生法计算积分
算法:复化辛卜生公式为Sn=h/6,
计算过程为:
3. 。
2)龙贝格算法计算
算法
用事后估计法控制精度。
:
1)/* 用复化辛卜生公式求积分*/
#include ""
float fx(float x)
{
double f;
f=/(+x*x);
return f;
}
double fs(int n)
{
double a=,b=,h,s,s1,s2=0;
int i;
h=(b-a)/n;
s1=fx(a+h/2);
for(i=1;i<n;i++)
{
s1=s1+fx(a+i*h+h/2);
s2=s2+fx(a+i*h);
}
s=(h/)*(fx(a)+fx(b)+4*s1+2*s2);
return s;}
void main()
{
printf("实验三 复化辛卜生法计算机112 耿向飞学号:112434\n");
printf("s(2)=%lf\ns(4)=%lf\ns(8)=%lf",fs(2),fs(4),fs(8));
}
2)/* 龙贝格法*/
#include ""
#include ""
#define E
//被积函数f(x)
double fx(double x)
{
double f;
f=1/(1+x*x);
return f;
}
//梯形公式求tn
double tx(int n)
{
double s3=,h,t,b=,a=;
int i;
h=(b-a)/n;
for(i=1;i<n;i++)
s3=s3+fx(i*h);
t=(h/2)*(fx(a)+fx(b)+2*s3);
return t;
}
double s(int n)
{
double s;
s=tx(2*n)+()*(tx(2*n)-tx(n));
return s;
}
double c(int n)
{
double c;
c=s(2*n)+()*(s(2*n)-s(n));
return c;
}
double r(int n)
{
double r;
r=c(2*n)+()*(c(2*n)-c(n));
return r;
}
void main()
{
double rr,pp;
int n=1;
rr=r(n);
pp=r(2*n)-r(n);
printf("实验三 龙贝格法计算机112 耿向飞学号:112434\n");
printf("
河北工业大学数值分析实验三实验四实验报告 来自淘豆网m.daumloan.com转载请标明出处.