Алгоритм компактного хранения и решения СЛАУ высокого порядка
Категория реферата: Рефераты по математике
Теги реферата: баллов, прочитать сообщение
Добавил(а) на сайт: Аюшиев.
Предыдущая страница реферата | 22 23 24 25 26 27 28 29 30 31 32 | Следующая страница реферата
Size = size;
Right.ReSize(Dim * Size);
Array = new Vector<double>[Size];
for (DWORD i = 0; i < Size; i++)
Array[i].ReSize(Links[i].Size() * Dim * Dim);
}
void TSMatrix::Add(Matrix<double>& FEMatr,Vector<DWORD>& FE)
{
double Res;
DWORD RRow;
for (DWORD i = 0L; i < FE.Size(); i++)
for (DWORD l = 0L; l < Dim; l++)
for (DWORD j = 0L; j < FE.Size(); j++)
for (DWORD k = 0L; k < Dim; k++)
{
Res = FEMatr[i * Dim + l][j * Dim + k];
if (Res) Add(FE[i],l,FE[j],k,Res);
}
for (DWORD i = 0L; i < FE.Size(); i++)
for (DWORD l = 0L; l < Dim; l++)
{
RRow = FE[UINT(i % (FE.Size()))] * Dim + l;
Res = FEMatr[i * Dim + l][FEMatr.Size1()];
if (Res) Add(RRow,Res);
}
}
DWORD TSMatrix::Find(DWORD I,DWORD J)
{
DWORD i;
for (i = 0; i < Links[I].Size(); i++)
if (Links[I][i] == J) return i;
return DWORD(-1);
}
void TSMatrix::Restore(Matrix<double>& Matr)
{
DWORD i,
j,
NRow,
NPoint,
NLink,
Pos;
Matr.ReSize(Size * Dim,Size * Dim + 1);
for (i = 0; i < Size; i++)
for (j = 0; j < Array[i].Size(); j++)
{
NRow = j / (Array[i].Size() / Dim); // Number of row
NPoint = (j - NRow * (Array[i].Size() / Dim)) / Dim; // Number of points
NLink = j % Dim; // Number of link
Pos = Links[i][NPoint];
Matr[i * Dim + NRow][Pos * Dim + NLink] = Array[i][j];
Рекомендуем скачать другие рефераты по теме: bestreferat ru, особенности реферата.
Предыдущая страница реферата | 22 23 24 25 26 27 28 29 30 31 32 | Следующая страница реферата