值试验题
f一、问题:写出一个如下的计算∫fxdx的子程序:先将区间ab细分成
个相等的子区间,然后使用经过修改的适用于
个不同子区间的三点高斯Gauss公式,并用下面的题目测试你所编的程序。15∫0xdx
1210
二、引言:
何使用三点Gauss公式求解数值积分的问题
三、
数学模型
以
,分别对每个区x5dx为例,将(0,1)区间分成
份(
1,2,10)
间使用三点Gauss公式,再将结果相加,算法如下:(1)输入
值,将区间分为
份(2)做变量替换,将区间转化为(1,1)(3)在每份中使用Gauss公式(4)将每份结果相加,得出积分结果用Matlab编写区间N等分的复化三点Gauss公式的Matlab程序Fu
ctio
IG_quadfu
abNGaussLege
der求积公式。其中ab为积分区间的端点。要求abN为等份区间数hbaNI0
四、
数据流向图:
入
变量替换,将区间分成
段
将小区间的
段积分值相加
f五、
模块关系图和模块流程图
控制
自适应值
小区间值
比较
将小区间值相加,计算积分值
六:源程序和截图:方法1:用C语言源程序:i
cludeiostreamhi
cludemathhdoublegdoublex1doublex2x2x1x1x1x1x1retur
x2
fdoublehdoubleadoublebdoublekkba205555555556gab2ba207745966692gab2ba20774596669208888888889gab2retur
k
doublefi
t
doubleadoublebcoutprecisio
16doublesa1b1i
tia1ab1bs0if
1shabelseif
2forb1aba2i0i2idoubles1s1ha1b1a1a1ba2b1b1ba2ss1elseif
10forb1aba10i0i10idoubles1s1ha1b1a1a1ba10b1b1ba10ss1elsecout