📄 longbege621.java
字号:
//龙贝格方法
import java.io.*;
class Longbege621{
static double f(double x){
return 1/(1+x*x);
}
public static void main(String[]args)throws IOException{
PrintWriter out = new PrintWriter(new FileWriter("result.txt"));
double n[]=new double[100];
double a,b,exp,sum=0.0;
double eps=0.5*0.00001;
double h[]=new double [100];
double x[][]=new double [100][4];
a=0.0;b=1.0;
x[0][0]=(b-a)*(f(a)+f(b))/2;
for(int k=0;k<=50;k++){
n[k]=Math.pow(2,k-1);
h[k]=(b-a)/Math.pow(2,k);
}
for(int k=1;k<=3;k++){
for(int j=0;j<n[k];j++)
sum=sum+f((k+0.5)*(b-a)/n[k]);
x[k][0]=0.5*x[0][0]+h[k]*sum;
sum=0.0;
}
for(int k=1;k<=3;k++)x[k][1]=x[k][0]*4/3-x[k-1][0]/3;
for(int k=2;k<=3;k++)x[k][2]=x[k][1]*16/15-x[k-1][1]/15;
x[3][3]=x[3][2]*64/63-x[2][2]/63;
for(int k=4;k!=0;k++){
sum=0.0;
for(int j=0;j<n[k];j++)sum=sum+f((k+0.5)*(b-a)/n[k]);
x[k][0]=0.5*x[0][0]+h[k]*sum;
x[k][1]=x[k][0]*4/3-x[k-1][0]/3;
x[k][2]=x[k][1]*16/15-x[k-1][1]/15;
x[k][3]=x[k][2]*64/63-x[k-1][2]/63;
exp=Math.abs(x[k][3]-x[k-1][3])/255;
if(exp<eps){
out.print("R["+(k-2)+"]");
out.println(x[k][3]);
k=-1;
}
}
out.close();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -