example3_12.java

来自「清华大学2002年出版的《科学与工程数值计算算法Java》配套源码」· Java 代码 · 共 38 行

JAVA
38
字号
import java.applet.*;
import java.awt.*;

public class Example3_12 extends Applet
{
public static void GaussSeidel(double[][] a,double[] x,int n,double eps)
{int i,j,k=0;
 double temp;
 double[] y=new double[n];
 double[] z=new double[n];
 for(i=0;i<n;i++){y[i]=0;z[i]=0;}
 while(true)
 { k++;
    for(i=0;i<n;i++)
      { z[i]=x[i];
       for(j=0;j<i;j++)z[i]-=z[j]*a[i][j];
       for(j=i+1;j<n;j++)z[i]-=y[j]*a[i][j];
       z[i]/=a[i][i];
       }
   temp=0;
   for(i=0;i<n;i++)
    {temp+=Math.abs(z[i]-y[i]);}
   if(temp<eps)break;
   for(i=0;i<n;i++)y[i]=z[i];
 }
 for(i=0;i<n;i++)x[i]=z[i];
}

public void paint(Graphics g)
{double[][] a={{10,3,1},{2,10,3},{1,3,10}};
 double[]   b={14,-5,14};
 double eps=1e-7;
 GaussSeidel(a,b,3,eps);
 g.drawString("近似解为:",10,20);
 for(int i=0;i<3;i++)
 g.drawString("X"+i+"="+b[i],10,i*20+40);
}
}

⌨️ 快捷键说明

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