У меня есть многомерный массив, который необходимо решить, для решения неизвестных значений (x1, x2, x3, ..). В этом многомерном массиве размер моего массива в координатах i и j различен; В [п] [п + 1]. Я знаю, что этот базовый C, метод Джорджа Гаусса для решения неизвестного, неверен и хотел бы, чтобы кто-то указал, как его модифицировать.Метод Гаусса Джорда в Basic C Multi
Этот код является точным для массива с теми же значениями n; например. Анна].
//Computation to solve
for(j=0; j<=n; j++)
{
for(i=0; i<=n; i++)
{
if(i!=j)
{
c=B[i][j]/B[j][j];
for(k=0;k<=n+1;k++)
{
B[i][k] = B[i][k] - c*B[j][k];
}
}
}
}
//Print Solution
printf("\nThe solution is:\n");
for(i=0; i<=n; i++)
{
x[i]=B[i][n+1]/B[i][i];
printf("\n x%d=%.3f\n",i,x[i]);
}
Примером может быть, если мой n = 2. Массив, который я хотел бы решить, - B [2] [3].
0 -20 0 -1
0 30 -10 0
0 -10 10 1
Выходной сигнал этого кода
x1= -inf
x2=0.050
x3=0.000
Правильный вывод должен быть
x1=0.00
x2=0.05
x3=0.15
начальный индекс массива от 0 до n-1. Что не так с приведенным выше кодом и какой результат вы ожидаете, неясно. – SMA
Мой горизонтальный j имеет 4 значения, а мой n всего 2-1? –
X [n] [n + 1], n = 3 => 'double X [3] [4];', X [0..2] [0 ..3] – BLUEPIXY