public static double[] gaus(double[][] a){
double t;
for(int i=0;i<a.length-1;i++)
for(int j=i+1;j<a.length;j++)
{
t = a[j]/a;
//Если нужно хранить коэффициенты,
//то можно использовать далее не нужную a[j]
//a[j]=t;
for(int k=i+1;k<a.length+1;k++)
a[j][k]-=t*a[k];
}
double[] ret = new double[a.length];
//Таким образом столбец свободных членов будет испорчен!
for(int i=a.length-1;i>0;i--){
//a[a.length] - столбец cвободных членов
ret=a[a.length]/a;
for(int j=0;j<i;j++)
a[j][a.length]-=a[j]*ret;
}
ret[0]=a[0][a.length]/a[0][0];
return ret;
}
Решение системы методом Гаусса(Java).
Помогите пожалуйста! Мне нужно создать приложение для решения системы методом Гаусса на языке java!
[COLOR="Red"]Модератор раздела Java[/COLOR].
Код:
Или так
Код:
public static double[] gaus(double[][] a){
double t;
for(int i=0;i<a.length;i++)
for(int j=0;j<a.length;j++)
if(i!=j){
t = a[j]/a;
for(int k=i+1;k<a.length+1;k++)
a[j][k]-=t*a[k];
}
double[] ret = new double[a.length];
for(int i=0;i<a.length;i++)
ret=a[a.length]/a;
return ret;
}
double t;
for(int i=0;i<a.length;i++)
for(int j=0;j<a.length;j++)
if(i!=j){
t = a[j]/a;
for(int k=i+1;k<a.length+1;k++)
a[j][k]-=t*a[k];
}
double[] ret = new double[a.length];
for(int i=0;i<a.length;i++)
ret=a[a.length]/a;
return ret;
}
Смотри только, первый я вытащил из своей старой лабы, второй на ходу написал. Баги рой, всё равно разбираться