c++采用辛普生法_《C++教学资料》设计采用梯形法和辛普生法求定积分.doc

这篇博客介绍了如何使用C++编程实现梯形法和辛普生法来求解定积分,并进行了精度比较。通过定义函数指针,程序能够分别对两个数学函数进行计算,并在不同区间数下展示结果。测试数据涵盖了多种n值,展示了两种方法在不同情况下的积分效果。
摘要由CSDN通过智能技术生成

河北工业大学计算机软件技术基础(VC)课程设计报告

学院 信息工程学院 班级 姓名 _ 学号 _ 成绩 __ ____

一、题目:

设计采用梯形法和辛普生法求定积分(36)

二、设计思路

1、总体设计

1)分析程序的功能

本题目的功能是对梯形法和辛普生法,在不同区间数下计算所得的定积分的值,进行精度比较。

2)系统总体结构:设计程序的组成模块,简述各模块功能。

该程序共分为以下几个模块

模块一:各函数原型的声明。

模块二:主函数。

模块三:各函数的定义。

包括两个数学函数y1=1+x*x、y2=1+x+x*x+x*x*x的定义和两个函数指针

double integralt(double ,double ,int ,double(*f)(double))

double integrals(double ,double ,int ,double(*f)(double))

的定义。

2、各功能模块的设计:说明各功能模块的实现方法

模块一:对各种函数进行声明。

模块二:求梯形法和辛普森法,在不同区间数下计算所得的定积分的值。

模块三:将各函数写出来。

3、设计中的主要困难及解决方案

在这部分论述设计中遇到的主要困难及解决方案。

困难:函数指针的应用。解决方案:仔细阅读课本,以及与同学之间的讨论,和向老师求助。

4、你所设计的程序最终完成的功能

1)说明你编制的程序能完成的功能

在数学上求一个函数与x轴在一定范围内所围的面积即求定积分,对梯形法和辛普森法求定积分的比较。

2)准备的测试数据及运行结果

三、程序清单

#include

double integralt(double ,double ,int ,double(*f)(double));//用梯形法求定积分的声明.

double integrals(double ,double ,int ,double(*f)(double));//用辛普森法求定积分的声.明.

double f1(double x);//函数y1=1+x*x的声明.

double f2(double x);//函数y2=1+x+x*x+x*x*x的声明.

void main()

{

double a,b,intesum1,intesum2,intesum3,intesum4;//对求定积分的定义.

cout<

cin>>a>>b;

int n[7]={2,10,100,1000,5000,20000,50000};//n的不同取值.

//下面是对第一行不同n的值的输出.

cout<

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

cout<

cout<

//下面是对n取不同值时,用梯形法对f1求定积分.

cout<

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

{

intesum1=integralt(a,b,n[i],f1);

cout<

}

cout<

//下面是对n取不同值时,用梯形法对f2求定积分.

cout<

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

{

intesum2=integralt(a,b,n[i],f2);

cout<

}

cout<

//下面是对n取不同值时,用用辛普森法对f1求定积分.

cout<

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

{

intesum3=integrals(a,b,n[i],f1);

cout<

}

cout<

//下面是对n取不同值时,用用辛普森法对f2求定积分.

cout<

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

{

intesum4=integrals(a,b,n[i],f2);

cout<

}

cout<

}

double f1(double x) //定义函数y1=1+x*x.

{

double y1;

y1=1+x*x;

return y1;

}

double f2(double x) //定义函数y2=1+x+x*x+x*x*x.

{

double y2;

y2=1+x+x*x+x*x*x;

return y2;

}

double integrals(double a,doubl

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值