- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实用标准文案
精彩文档
山西大学计算机与信息技术学院
实验报告
姓 名
学 号
专业班级
课程名称
计算方法
实验日期
成 绩
指导老师
批改日期
实验名称
实验六 数值积分
实验目的:
利用复化梯形公式、复化辛普生公式和龙贝格数值积分公式计算的近似值。
实验方法:
将[a,b]区间n等分,记分点为,并在每个小区间[]上应用梯形公式
在每个小区间[]上,用辛普生公式
式中为[]的中点,即
先用梯形公式计算,然后,将求积区间(a,b)逐次折半的方法,令区间长度
计算,式中。
于是,得到辛普生公式。
柯斯特求积公式。
最后,得龙贝格求积公式。
利用上述各公式计算,直到相邻两次的积分结果之差满足精度要求。
实验内容
利用复化梯形公式、复化辛普生公式和龙贝格数值积分公式计算
的近似值,要求误差为,将计算结果与精确值比较,并对计算结果进行分析(计算量、误差)
实验程序:
复合梯形公式:
#include stdio.h
#include math.h
#define esp 0.5e-7
#define a 1
#define b 2
#define c 0
#define d 1
#define E 2.71828182845904523536
#define f1(x) (x*pow(E,x))
#define f2(x) (4/(1+(x*x)))
void fun1()
{
int i,n,k=0;
double h,q,t,g;
n=1;
h=(double)(b-a)/2;
t=h*(f1(a)+f1(b));
do
{
k++;
q=t;
g=0;
for (i=1;i=n;i++)
g+=f1((a+(2*i-1)*h));
t=(q/2)+(h*g);
n*=2;
h/=2;
}
while (fabs(t-q)esp);
printf(函数1分了%d次:\n,k);
printf(积分结果为:);
printf(%12.8lf\n,t);
}
void fun2()
{
int i,n,k=0;
double h,q,t,g;
n=1;
h=(double)(d-c)/2;
t=h*(f2(c)+f2(d));
do
{
k++;
q=t;
g=0;
for (i=1;i=n;i++)
g+=f2((c+(2*i-1)*h));
t=(q/2)+(h*g);
n*=2;
h/=2;
}
while (fabs(t-q)esp);
printf(函数2分了%d次:\n,k);
printf(积分结果为:);
printf(%12.8lf\n,t);
}
int main()
{
printf(//***********复合梯形公式***********//\n);
fun1();
fun2();
return 0;
}
复合辛普生公式代码:
#include stdio.h
#include math.h
#define esp 0.5e-7
#define a 1
#define b 2
#define c 0
#define d 1
#define E 2.71828182845904523536
#define f1(x) (x*pow(E,x))
#define f2(x) (4/(1+(x*x)))
void fun1()
{
int i,n,k=0;
double f1,f2,f3,h,s0,s;
f1=f1(a)+f1(b);
文档评论(0)