高斯消元法
public class GS {
/* -x1+2x2-2x3=-1
3x1-x2+4x3=7
2x1-3x2-2x3=0 p58 */
public static void main(String [] d)
{int i,j,ii,n,I0 = 0;
double a[][]={{-1,2,-2,-1},{3,-1,4,7},{2,-3,-2,0}};
double p,w,s,m[][] ={{0,0,0,0},{0,0,0,0},{0,0,0,0}},x[] =
{0,0,0,0};
for(ii=0;ii<=2;ii++)
{ n=ii;
p=a[n][n];
for(i=n+1;i<=2;i++) /* 选主元 */
{ if(Math.abs(a[i][n])>Math.abs(p)) I0=i; }
if(n!=I0) /* 交换行 */
for(j=n;j<=3;j++)
{ w=a[n][j]; a[n][j]=a[I0][j];a[I0][j]=w; }
for(i=n+1;i<=2;i++) /* 消元 */
{ m[i][n]=a[i][n]/a[n][n];
for(j=n+1;j<=3;j++)
a[i][j]=a[i][j]-m[i][n]*a[n][j];
}
}
x[2]=a[2][3]/a[2][2]; /* 回代 */
for(n=1;n>=0;n--)
{ s=0.0;
for(j=n+1;j<=2;j++)
{ s=s+a[n][j]*x[j]; }
s=a[n][3]-s;
x[n]=s/a[n][n];
}
System.out.print("方程组的近似解为:");
for(i=0;i<=2;i++)
System.out.print("x"+(i+1)+"="+x[i]+" "); /* 显示方程的
解 */
}
}
运行结果:
Page 1 of 7