求一个数值分析 龙贝格积分的C语言程序的代码.
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/02 03:34:59
![求一个数值分析 龙贝格积分的C语言程序的代码.](/uploads/image/z/14534951-23-1.jpg?t=%E6%B1%82%E4%B8%80%E4%B8%AA%E6%95%B0%E5%80%BC%E5%88%86%E6%9E%90+%E9%BE%99%E8%B4%9D%E6%A0%BC%E7%A7%AF%E5%88%86%E7%9A%84C%E8%AF%AD%E8%A8%80%E7%A8%8B%E5%BA%8F%E7%9A%84%E4%BB%A3%E7%A0%81.)
求一个数值分析 龙贝格积分的C语言程序的代码.
求一个数值分析 龙贝格积分的C语言程序的代码.
求一个数值分析 龙贝格积分的C语言程序的代码.
这个程序,我正好在学计算方法的时候写过,直接贴代码
C++实现如下:
#include
#include
using namespace std;
const int MAXRepeat = 100; //最大允许重复
double function(double x)//被积函数,根据自己的需要手工输入
{
double s;
s = 1.0 / (1 + x);
return s;
}
void Romberg(double a,double b,double epsion,double f(double x))
{
int m = 1;
int n = 1;
int k;
double h;
double ep;
double p;
double xk;
double s;
double q;
double T[MAXRepeat];
h = b - a;
T[0] = 0.5 * h * (f(a) + f(b));
ep = epsion + 1.0;
while ((ep >= epsion) && (m < MAXRepeat))
{
p = 0.0;
for (k = 0; k < n; k++)
{
xk = a + (k + 0.5) * h; // n-1
p = p + f(xk); //计算∑f(xk+h/2),T
} // k=0
p = (T[0] + h * p) / 2.0; //T`m`(h/2),变步长梯形求积公式
s = 1.0;
for (k = 1; k