📄 js1.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 + -