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

📄 example3_2.java

📁 Java程序100例
💻 JAVA
字号:
import java.applet.*;
import java.awt.*;

public class Example3_2 extends Applet
{
 public static double GaussJordan(double[][] a,double[][] b, double[][] c,int n,int m)
  { int[] p=new int[n];
    int i,j,k,row,colunm;
    double temp,max,det=1;
    for(i=0;i<n;i++)p[i]=i;
    for(i=0;i<n;i++)
      { //找主元
		row=i;colunm=i;
        max=Math.abs(a[i][i]);
	    for(j=i;j<n;j++)
         for(k=i;k<n;k++)
         {temp=Math.abs(a[j][k]);
          if(temp>max){max=temp;row=j;colunm=k;}
	     }
	    if (max==0)return 0;

	    //将第row行和第i行互换
	    for(k=i;k<n;k++)
	    {temp=a[i][k];a[i][k]=a[row][k];a[row][k]=temp;}
	    for(k=0;k<m;k++)
	     {temp=b[i][k];b[i][k]=b[row][k];b[row][k]=temp;}
	    ////将第colunm列和第i列互换
	    for(j=0;j<n;j++)
	    {temp=a[j][colunm];a[j][colunm]=a[j][i];a[j][i]=temp;}
	     row=p[i];p[i]=p[colunm];p[colunm]=row;
         //归一化
	     for(k=i+1;k<n;k++)a[i][k]/=a[i][i];
	     for(k=0;k<m;k++)b[i][k]/=a[i][i];
	     det*=a[i][i];a[i][i]=1;
	     //消元
	     for(k=0;k<m;k++)
	     { for(j=0;j<i;j++)b[j][k]-=b[i][k]*a[j][i];
	       for(j=i+1;j<n;j++)b[j][k]-=b[i][k]*a[j][i];}
		 for(k=i+1;k<n;k++)
		  {for(j=0;j<i;j++)a[j][k]-=a[j][i]*a[i][k];
		   for(j=i+1;j<n;j++)a[j][k]-=a[j][i]*a[i][k];}
		  for(k=0;k<i;k++)a[k][i]=0;
		  for(k=i+1;k<n;k++)a[k][i]=0;
	   }

   	for(i=0;i<n;i++)
   	  for(j=0;j<m;j++)
   	   c[p[i]][j]=b[i][j];
	return det;
  }
public void paint(Graphics g)
{ double[][] a ={{2.1756,4.0231,-2.1732,5.1967},{-4.0231,6,0,1.1973},
                {-1,15,1.1111,0},{6.0235,7,0,-4.1561}};
  double[][] b={{17.102,17.10},{-6.1593,-6.16},{3.0004,3},{0,0.0001}};
  double[][] c=new double[4][2];
  int i,j,n=4,m=2,x=20;
  double d;
  d=GaussJordan(a,b,c,n,m);
  if(d==0)
    g.drawString("系数矩阵奇异无解",10,20);
  else
   { g.drawString("求解成功",10,20);
     g.drawString("x11="+c[0][0]+"  "+"x21="+c[0][1],10,40);
     g.drawString("x12="+c[1][0]+"  "+"x22="+c[1][1],10,60);
     g.drawString("x13="+c[2][0]+"  "+"x23="+c[2][1],10,80);
     g.drawString("x13="+c[3][0]+"  "+"x23="+c[3][1],10,100);
     g.drawString("det="+d,10,120);
   }
}
}

⌨️ 快捷键说明

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