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

📄 example6_4.java

📁 清华大学2002年出版的《科学与工程数值计算算法Java》配套源码
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;


public class Example6_4 extends Applet
{
 public static double f(double x)
 {double y;
  if(x==0)y=1;
  else y=Math.sin(x)/x;
  return y; }

 public static int romberg(double a,double b,double[][] t )
  {double x,h,s;
   int k;
   h=b-a;t[0][0]=(f(a)+f(b))*h/2;
   for(k=1;k<=3;k++)
   {t[k][0]=0;x=a+h/2;s=0;
    while(x<b){s+=f(x);x+=h;}
    t[k][0]=(t[k-1][0]+s*h)/2;
    h/=2;}
   t[0][1]=t[1][0]+(t[1][0]-t[0][0])/3;
   t[1][1]=t[2][0]+(t[2][0]-t[1][0])/3;
   t[2][1]=t[3][0]+(t[3][0]-t[2][0])/3;
   t[0][2]=t[1][1]+(t[1][1]-t[0][1])/15;
   t[1][2]=t[2][1]+(t[2][1]-t[1][1])/15;
   t[0][3]=t[1][2]+(t[1][2]-t[0][2])/63;
   k=-1;
   do
   {k++;if(k>10)return 10;
   t[k+4][0]=0;x=a+h/2;s=0;
    while(x<b){s+=f(x);x+=h;}
    t[k+4][0]=(t[k+3][0]+s*h)/2;h/=2;
    t[k+3][1]=t[k+4][0]+(t[k+4][0]-t[k+3][0])/3;
    t[k+2][2]=t[k+3][1]+(t[k+3][1]-t[k+2][1])/15;
    t[k+1][3]=t[k+2][2]+(t[k+2][2]-t[k+1][2])/63;
   }while(Math.abs(t[k][3]-t[k+1][3])>1e-7);
   return k+1;
  }

public void paint(Graphics g)
{double[][] t=new double[13][4];
 int i,n;
 n=romberg(0,1,t);
 g.drawString("T1                                       T2                                       T3                                       T4",10,20);
 for(i=0;i<=n;i++)
 {g.drawString(""+t[i][0]+"  "+t[i][1]+"  "+t[i][2]+"  "+t[i][3],10,40+20*i);}
 g.drawString(""+t[n+1][0]+"  "+t[i][1]+"  "+t[i][2],10,20*n+60);
 g.drawString(""+t[n+2][0]+"  "+t[n+2][1],10,20*n+80);
 g.drawString(""+t[n+3][0],10,20*n+100);
 g.drawString("积分近似值为"+t[n][3],10,20*n+120);
}
}

⌨️ 快捷键说明

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