Алгоритм компактного хранения и решения СЛАУ высокого порядка
| Категория реферата: Рефераты по математике
| Теги реферата: европа реферат, клетка реферат
| Добавил(а) на сайт: Sinaj.
Предыдущая страница реферата | 17 18 19 20 21 22 23 24 25 26 27 | Следующая страница реферата
K = Index2 % Dim,
Pos = Find(I,J),
Row = I,
Col;
value = 0; if (Pos == DWORD(-1)) return false;
Col = L * Links[I].Size() * Dim + Find(I,J) * Dim + K; value = Array[Row][Col]; return true;
} void Mul(RVector&,RVector&); double Mul(DWORD,RVector&); void write(ofstream&); void read(ifstream&);
};
class RMatrix
{ private:
Vector Buffer;
DWORD size; public:
RMatrix(DWORD sz) { size = sz; Buffer.ReSize(size*(size + 1)*0.5);
}
~RMatrix() {}
DWORD Size(void) { return size; } double& Get(DWORD i,DWORD j) { return Buffer[(2*size + 1 - i)*0.5*i
+ j - i]; }
};
//************************
#include "smatrix.h"
double Norm(RVector& Left,RVector& Right)
{ double Ret = 0;
for (DWORD i = 0; i < Left.Size(); i++)
Ret += Left[i] * Right[i]; return Ret;
}
void RVector::Sub(RVector& Right)
{ for (DWORD i = 0; i < Size(); i++)
(*this)[i] -= Right[i];
}
void RVector::Add(RVector& Right)
{ for (DWORD i = 0; i < Size(); i++)
(*this)[i] += Right[i];
}
void RVector::Mul(double koff)
{ for (DWORD i = 0; i < Size(); i++)
(*this)[i] *= koff;
}
void RVector::Sub(RVector& Right,double koff)
{ for (DWORD i = 0; i < Size(); i++)
(*this)[i] -= Right[i]*koff;
}
TSMatrix::TSMatrix(Vector* links, DWORD size, uint dim)
{
Dim = dim;
Links = links;
Size = size;
Right.ReSize(Dim * Size);
Array = new Vector[Size]; for (DWORD i = 0; i < Size; i++)
Array[i].ReSize(Links[i].Size() * Dim * Dim);
}
void TSMatrix::Add(Matrix& FEMatr,Vector& FE)
{ double Res;
Рекомендуем скачать другие рефераты по теме: бесплатно рассказы, бесплатно реферат на тему.
Категории:
Предыдущая страница реферата | 17 18 19 20 21 22 23 24 25 26 27 | Следующая страница реферата