main.txt

来自「计算机数值方法中Newton-Cotes公式积分算法的演示算法」· 文本 代码 · 共 61 行

TXT
61
字号
#include <stdio.h>
#include <iostream>
#include <math.h>
//using namespace std;

double fx(double x)
{
	double y;
	y=1/x;
	return y;
}

int main()
{
	double a,b;
	int c;
	printf("input a:\n");
	cin>>a;
	printf("input b:\n");
	cin>>b;
	printf("输入计算次数:\n");
	cin>>c;
	double h;
	h=b-a;
	double T[10][10]={0};
	T[0][0]=h*(fx(a)+fx(b))/2;
	int l=0,k,m;
	double f,n;
	while(l<c)
	{
		h=b-a;
		l++;
		n=pow(2.0,l-1);
		h=h/n;
		f=0;

		for(k=0;k<=n-1;k++)
		{
			f=f+fx(a+(2*k+1)*h/2);
		}

		T[0][l]=T[0][l-1]/2+h*f/2;

		for(m=1;m<=l;m++)
		{
			for(k=1;k<=l-m+1;k++)
			{
				T[m][k-1]=(pow(4.0,m)*T[m-1][k]-T[m-1][k-1])/(pow(4.0,m)-1);
 			}
		}

		//if(abs(T[l][0]-)
		
		printf("T[%d][0]=%f \n",l,T[l][0]);
	


	}
	return 0;

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?