Дипломная работа: Алгоритм компактного хранения и решения СЛАУ высокого порядка
NPoint,
NLink,
Pos;
Res.ReSize(Arr.Size());
for (i = 0; i < Size; i++)
for (j = 0; j < Array[i].Size(); j++)
{
NRow = j / (Array[i].Size() / Dim);
NPoint = (j - NRow * (Array[i].Size()
/ Dim)) / Dim;
NLink = j % Dim;
Pos = Links[i][NPoint];
Res[i * Dim + NRow] += Arr[Pos * Dim +
NLink] * Array[i][j];
}
}
double TSMatrix::Mul(DWORD
Index,RVector& Arr)
{
DWORD j,
I = Index / Dim,
L = Index % Dim,
Start = L * (Array[I].Size() /
Dim),
Stop = Start + (Array[I].Size() /
Dim),
NRow,
NPoint,
NLink,
Pos;
double Res = 0;
for (j = Start; j < Stop; j++)
{
NRow = j / (Array[I].Size() / Dim);
NPoint = (j - NRow * (Array[I].Size()
/ Dim)) / Dim;
NLink = j % Dim;
Pos = Links[I][NPoint];
Res += Arr[Pos * Dim + NLink] *
Array[I][j];
}
return Res;
}
void TSMatrix::write(ofstream& Out)
{
DWORD ColSize;
Out.write((char*)&(Dim),sizeof(DWORD));
Out.write((char*)&(Size),sizeof(DWORD));
for (DWORD i = 0; i < Size; i++)
{
ColSize = Array[i].Size();
Out.write((char*)&(ColSize),sizeof(DWORD));
for (DWORD j = 0; j < ColSize; j++)
Out.write((char*)&(Array[i][j]),sizeof(double));
}
for (DWORD i = 0; i < Size * Dim; i++)
Out.write((char*)&(Right[i]),sizeof(double));
}
void TSMatrix::read(ifstream& In)
{
DWORD ColSize;
In.read((char*)&(Dim),sizeof(DWORD));
In.read((char*)&(Size),sizeof(DWORD));
if (Array) delete [] Array;
Array = new Vector<double>[Size];
Right.ReSize(Size * Dim);
for (DWORD i = 0; i < Size; i++)
{
In.read((char*)&(ColSize),sizeof(DWORD));
Array[i].ReSize(ColSize);
for (DWORD j = 0; j < ColSize; j++)
In.read((char*)&(Array[i][j]),sizeof(double));
}
for (DWORD i = 0; i < Size * Dim; i++)
In.read((char*)&(Right[i]),sizeof(double));
}
Список литературы
Зенкевич
О., Морган К. Конечные методы и аппроксимация // М.: Мир, 1980
Зенкевич
О., Метод конечных элементов // М.: Мир., 1975
Стрэнг
Г., Фикс Дж. Теория метода конечных элементов // М.: Мир, 1977
Бахвалов
Н.С.,Жидков Н.П., Кобельков Г.М. Численные методы // М.: наука, 1987
Воеводин
В.В., Кузнецов Ю.А. Матрицы и вычисления // М.:Наука, 1984
Бахвалов
Н.С. Численные методы // М.: Наука, 1975
Годунов
С.К. Решение систем линейных уравнений // Новосибирск: Наука, 1980
Гоменюк
С.И., Толок В.А. Инструментальная система анализа задач механики деформируемого
твердого тела // Приднiпровський
науковий вiсник – 1997. – №4.
F.G. Gustavson, “Some basic techniques for solving sparse matrix
algorithms”, // editer by D.J. Rose and R.A.Willoughby, Plenum Press, New York,
1972
А.Джордж,
Дж. Лиу, Численное решение больших разреженных систем уравнений // Москва, Мир,
1984
D.J. Rose, “A graph theoretic study of the numerical solution of
sparse positive definite system of linear equations” // New York, Academic
Press, 1972
Мосаковский
В.И., Гудрамович В.С., Макеев Е.М., Контактные задачи теории оболочек и
стержней // М.:”Машиностроение”, 1978
Для подготовки данной работы были использованы материалы
с сайта http://www.ed.vseved.ru/
|