⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 three.cpp

📁 这是我数值分析课程的实习题目的源代码(并附有文档),文档包括对问题进行了描述,并对结果进行分析,希望对大家有所帮助.
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
#include<iomanip.h>
long double f(long double a);
#define  pi  3.1415926 

main()
{
	long double a=0,b=1,m=1;
	long double TRUE =pi/4*1.4142136;
	long double A;//辛蒲生值
	long double B;//梯形值
	long double h;//步长
	do{
		long double X1=f(a)+f(b);
	    long double X0=0;
	    long double Xe=0;
	    h=(long double)(b-a)/(2*m);
		for(int j=1;j<=2*m-1;j++)
		{
			long double X=(long double)a+j*h;
			if(j%2==1)
				X0=(long double)X0+f(X);
			else
				Xe=(long double)Xe+f(X);
			
		}
	    A=(long double)h*(X1+2*Xe+4*X0)/3;
		m=m*2;

	}while((TRUE-A)>=0.00000001||(TRUE-A)<=-0.00000001);
	cout<<"辛蒲生组合公式"<<endl<<"等份数m="<<setprecision(15)<<m/2<<"  "<<"步长h="<<h
		<<"  "<<"真值TRUE="<<TRUE<<"  "<<"计算值A="<<A<<"误差:"<<fabs(TRUE-A)<<endl;
	m=1;
	do{
	    double X2=0;
		double X1=f(a)+(b);
	    h=(long double)(b-a)/(2*m);
	for( int j=1;j<=2*m-1;j++)
		{
			long double X=(long double)a+j*h;
			X2=X2+f(X);
		}
	    B=(long double)h*(X1+2*X2)/2;
		m=m*2;

	}while(fabs(B-TRUE)>0.0000001);
	cout<<"梯形组合公式"<<endl<<"等份数m="<<setprecision(15)<<m/2<<"  "<<"步长h="<<h
		<<"  "<<"真值TRUE="<<TRUE<<"  "<<"计算值B="<<B<<"误差:"<<fabs(TRUE-B)<<endl;
	return 0;
}

long double f(long double x)
{
	return (long double)(1+x*x)/(1+pow(x,4));
}


⌨️ 快捷键说明

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