![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Системы линейных уравнений [D5, Win95/98]
ssmaxx © (2003-01-10 18:19:00)Уважаемые мастера ! Подскажите пожалуйста, где можно взять процедурку (компонентку, библиотечку) по решению систем линейных уравнений ???
Strumpf (2003-01-11 11:43:00) [1]А вот и ГАУСС:
void __fastcall Gauss(int n)
{
DynamicArray<int> ik,jk;
ik.Length = n+1;
jk.Length = n+1;
for (int i=1; i<=n; i++)
{
ik[i] = 0;
jk[i] = 0;
Fca[i][n+1] = Fcb[i];
};
for (int k=1; k<=n; k++)
{
Float am = 0.0;
for (int i=1; i<=n; i++)
{
for (int j=1; j<=n; j++)
{
for (int k1=1; k1<=k; k1++)
if ((i == ik[k1]) || (j == jk[k1]))
goto m5;
if (abs(Fca[i][j]) <= am)
goto m5;
am = abs(Fca[i][j]);
ik[k] = i;
jk[k] = j;
m5: }
}
int m = jk[k];
int l = ik[k];
int n1 = n+1;
for (int j=1; j<=n1; j++)
{
for (int k1=1; k1<=k; k1++)
if (j == jk[k1])
goto m4;
Fca[l][j] = Fca[l][j]/Fca[l][m];
for (int i=1; i<=n; i++)
if (i != ik[k])
Fca[i][j] -= Fca[i][m]*Fca[l][j];
m4: }
}
for (int k=1; k<=n; k++)
{
int m = jk[k];
int l = ik[k];
Fcx[m] = Fca[l][n+1];
}
ik.Length = 0;
jk.Length = 0;
}
Феу (2003-01-10 20:58:00) [2]algolist.manual.ru/maths/linalg/
alglib.dore.ru/linalg/index1.html#gauss
ssmaxx (2003-01-10 19:58:00) [3]Уважаемый Axis_of_Evil !!! Не хватает у меня макулатуры про матрицы, поэтому и прошу помочь.
Axis_of_Evil (2003-01-10 19:32:00) [4]2 ssmaxx
Ну напряги извилину, напиши сам, не ленись, это ж просто
Strumpf (2003-01-10 19:23:00) [5]Я пользуюсь для обращения матрицы этим:
void __fastcall MatrixInversion(int n, TTwoArrayComplex &A, Complex &det)
{
TOneArrayInt l;
TOneArrayInt m;
l.Length = n+1;
m.Length = n+1;
det = 1.0;
for (int k=1; k
ssmaxx (2003-01-10 18:29:00) [6]В принципе, все равно, но желательно методом Гаусса и методом обратной матрицы.
Vit@ly (2003-01-10 18:25:00) [7]Их целый вагон и маленькая тележка. Каким методом?