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

📄 longbeige-cpp.txt

📁 一个简单数学的龙贝格算法 手动输入上下限~~~ ~!
💻 TXT
字号:
#include<iostream.h> 
#include<stdio.h>
#include<math.h>

float f(float x)
{ if(x==0)
  return 1;
else return  sin(x)/x; 
}
 
float Romberg(float a,float b,float (*f)(float),float e) 
{ 
int n=1,k; 
float h=b-a,x,S; 
float T1,T2,S1,S2,C1,C2,R1,R2; 
T1=(b-a)/2*((*f)(a)+(*f)(b)); 
while(1) 
{ 
S=0; 
for(k=0;k<=n-1;k++) 
{ 
x=a+k*h+h/2; 
S+=(*f)(x); 
} 
T2=(T1+S*h)/2; 
if(fabs(T2-T1)<e) 
return T2; 
S2=T2+(T2-T1)/3.0; 
if(n==2) 
{ 
T1=T2; 
S1=S2; 
h/=2; 
n*=2; 
continue; 
} 
C2=S2+(S2-S1)/15; 
if(n==4) 
{ 
C1=C2; 
T1=T2; 
S1=S2; 
h/=2; 
n*=2; 
continue; 
} 
R2=C2+(C2-C1)/63; 
if(n==8) 
{ 
R1=R2; 
C1=C2; 
T1=T2; 
S1=S2; 
h/=2; 
n*=2; 
continue; 
} 
if(fabs(R2-R1)<e) 
return R2; 
R1=R2; 
C1=C2; 
T1=T2; 
S1=S2; 
h/=2; 
n*=2; 
} 
} 
void main() 
{ 
  float a,b;
  float e=5e-6; 

cout<<("请输入积分上限\n")<<endl;
	scanf("%f",&b);
cout<<("请输入积分下限\n")<<endl;
    scanf("%f",&a);
cout<<"R="<<Romberg(a,b,f,e)<<endl; /*在Romberg(a,b,f,e))中a为下限,b为上限,f为所调用子函数,e为误差精度*/
} 

⌨️ 快捷键说明

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