Курсовая работа: Численные методы при решении задач

for (i = 0; i < (siz - 1); i++)// Проходим по столбцам матрицы res

{

if (i == xel) ki = 1; // Пропустить текущий столбец

*(res + j * (siz - 1) + i) = *(m + (j+kj) * siz + (i+ki));

}

ki = 0; // Для следующей строчки (yel строку уже пропустили)

}

}

///////////////////////////////////////////////////////////////////////////////

// Вычисление определителя матрицы m размером (dim * dim)

// (Рекурсивная функция)

double Determinant (double *m, int dim)

{

// Все переменные - ОБЯЗАТЕЛЬНО ЛОКАЛЬНЫЕ!!!

doubled = 0, k = 1; // Определитель и флажок

int ki, kj, di, dj, i; // Коэффициенты, индексы, смещения

double *mm; // Новая матрица с вычеркнутой строкой и столбцом

if (dim < 1) { printf ("\nНеправильные аргументы"); abort (); }

if (dim == 1) return *m; // Если матрица 1х1

// Выделяем память для минора

if ((mm = malloc ((dim - 1) * (dim - 1) * sizeof (double))) == 0)

{ printf ("\nОшибка распределения памяти\n"); abort (); }

// Если матрица 2х2

if (dim == 2) d = ((*m) * (*(m + 3)) - (*(m + 2) * (*(m + 1))));

else // Размер больше чем 2

// Раскладываем матрицу по нулевой строке

for (i = 0; i < dim; i++)

{

MMinor (m, mm, dim, i, 0); // Вычеркнем столбец и

К-во Просмотров: 536
Бесплатно скачать Курсовая работа: Численные методы при решении задач