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

📄 js1.cpp

📁 改程序为积分计算器
💻 CPP
字号:
// JS1.cpp: implementation of the JS class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "JSQ.h"
#include "JS1.h"
#include "math.h"

#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif

//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

JS::JS()
{

}

JS::~JS()
{

}
double JS::tixing(double m_up,double m_down)
{
	int i,j=0,n=1;
	double a,b;
	double c,Tn1=0,Tn2=0;
    double fa,fb,h,sum=0;
	b=m_down;
	a=m_up;
	c=0.001;
	fa=a*c;
	fb=b*b;
	if(a == 0 || b == 0)
	{
		 Tn2 = 1 ;
		 return Tn2;
	}
	else
		do
		{
			Tn1=Tn2;
			h=(b-a)/n;
			for(i=1;i<n;i++)
			{
				sum=sum+sin(a+i*h)/(a+i*h);
			}
			Tn2=(h/2)*(fa+fb+2*sum);
			n=2*n;
			sum=0;
			j=j+1;
		}
	
	while(fabs(Tn2-Tn1)>1e-4);
	return Tn2 ;
}

double JS::Simpson(double m_up,double m_down)
{
	   int n,k;
	   double a,b;
	   double t1,t2;
       double s1,s2,ep,p,x,fa,fb,h,eps;
       b=m_down;
	   a=m_up;
	   eps=0.0001;
       n=1;
	   h=b-a;
	   fa=a*a;
	   fb=b*b;
	   t1=h*(fa+fb)/2.0;
	   s1=t1;
	   ep=eps+1;
	   if(a == 0 || b == 0)
	   {
		   s1 = 1 ;
		   return s1;
	   }

	   else

       while(ep>=eps)
	   {
		   p=0;
		   for(k=0;k<=n-1;k++)
		   {
			   x=a+(k+0.5)*h;
               p = p + sin(x)/x;
		   }
		   t2=(t1+h*p)/2.0;
		   s2=(4*t2-t1)/3.0;
		   ep=fabs(s2-s1);
		   t1=t2;
		   s1=s2;
		   n=n+n;
		   h=h/2;
       }
	   return s1 ;
}

double JS::Gauss(double m_up,double m_down)
{
       int m,i,j;
	   double a,b;
       double s,ep,p,x,aa,bb,h,eps,w,g;
	   static double t[5]={-0.9061798459,-0.538493101,0.0,0.538493101,
		   0.9061798459};
	   static double c[5]={0.2369268851,0.4786286705,0.5688888889,
		   0.4786286705,0.2369268851};
	   b=m_down;
	   a=m_up;
	   eps=0.001;
	   m=1;
	   h=b-a;
	   s=fabs(0.001*h);
	   p=1.0e+35;
	   ep=eps+1.0;
	   if(a == 0 || b == 0)
	   {
		   g = 1 ;
		   return g;
	   }
	   else
	   {
			while((ep>=eps)&&(fabs(h)>s))
			{
				g=0;
				for(i=1;i<=m;i++)
				{
					aa=a+(i-1)*h;
					bb=a+i*h;
					w=0;

					for(j=0;j<=4;j++)
					{
						x=((bb-aa)*t[j]+(bb+aa))/2.0;
						//w=w+x*x*c[j];
						w=w+sin(x)/x*c[j];
					}
					g=g+w;
				}
				g=g*h/2.0;
				ep=fabs(g-p)/(1.0+fabs(g));
				p=g;
				m=m+1;
				h=(b-a)/m;
			}
			return g;		
	   }
}

⌨️ 快捷键说明

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