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

📄 example3_11.java

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

public class Example3_11 extends Applet
{ public boolean toeplite(double[] t,double[] y,double[] x,int n)
  {int j,m;double v1,v2;
   double[] s=new double[n];
   double[] u=new double[n];
   double[] z=new double[n];
   double[] w=new double[n];
   x[0]=y[0]/t[n-1];s[0]=t[n]/t[n-1];u[0]=t[n-2]/t[n-1];
   for(m=0;m<n-2;m++)
   {v1=t[n-m-3];v2=t[n-1];
    for(j=0;j<=m;j++){v1-=t[n-m-2+j]*u[j];v2-=t[n-m-2+j]*s[m-j];}
    if(v2==0)return false;
    v1/=v2;u[m+1]=v1;
    for(j=0;j<=m;j++)z[j]=u[j]-v1*s[m-j];
    v1=t[n+m+1];v2=t[n-1];
    for(j=0;j<=m;j++){v1-=t[n+m-j]*s[j];v2-=t[n+m-j]*u[m-j];}
    if(v2==0)return false;
    v1/=v2;s[m+1]=v1;
    for(j=0;j<=m;j++)w[j]=s[j]-v1*u[m-j];
    v1=y[m+1];v2=t[n-1];
    for(j=0;j<=m;j++){v1-=t[n-m-2+j]*x[j];v2-=t[n-m-2+j]*s[m-j];}
    if(v2==0)return false;
    v1/=v2;x[m+1]=v1;
    for(j=0;j<=m;j++)x[j]-=v1*s[m-j];
    for(j=0;j<=m;j++){s[j]=w[j];u[j]=z[j];}
   }
   v1=y[n-1];v2=t[n-1];
   for(j=0;j<=n-2;j++){v1-=t[j]*x[j];v2-=t[j]*s[n-2-j];}
   if(v2==0)return false;
   x[n-1]=v1/v2;
   for(j=0;j<=n-2;j++)x[j]-=x[n-1]*s[n-2-j];
   return true;
  }

  public boolean levision(double[] r,double[] y,double[] z,int n )
  {int j,m;double v1,v2,v3;
   double[] s=new double[n];
   double[] x=new double[n];
   z[0]=y[0]/r[0];s[0]=r[1]/r[0];
   for(m=0;m<n-2;m++)
   {v1=r[m+2];v2=r[0];v3=y[m+1];
    for(j=0;j<=m;j++){v1-=r[m+1-j]*s[j];v2-=r[m+1-j]*s[m-j];v3-=r[m+1-j]*z[j];}
    if(v2==0)return false;
    v1/=v2;s[m+1]=v1;v3/=v2;z[m+1]=v3;
    for(j=0;j<=m;j++){x[j]=s[j]-v1*s[m-j];z[j]-=v3*s[m-j];}
    for(j=0;j<=m;j++)s[j]=x[j];
   }
   v3=y[n-1];v2=r[0];
   for(j=0;j<=n-2;j++){v3-=r[n-1-j]*z[j];v2-=r[n-1-j]*s[n-2-j];}
   if(v2==0)return false;
   v3/=v2;z[n-1]=v3;
   for(j=0;j<=n-2;j++)z[j]-=v3*s[n-2-j];
   return true;
  }

  public void paint(Graphics g)
  {double[] t={-4,-3,-2,-1,10,1,2,3,4};
   double[] r={10,1,2,3,4};
   double[] y={1,2,3,4,5};
   double[] x=new double[5];
   double[] z=new double[5];
   double w;
   int i,j;
   toeplite(t,y,x,5);levision(r,y,z,5);
   g.setColor(Color.blue);
   for(i=0;i<5;i++)
   g.drawString("X"+(i+1)+"="+x[i]+"    "+"Y"+(i+1)+"="+z[i],10,20+20*i);
}

 }

⌨️ 快捷键说明

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