Уважаемый, Владимир Вольфович!
С интересом наблюдаю за развитием и деятельностью ЛДПР в России и Оренбурге в частности. Решил принять посильное участие в формировании влиятельной силы ЛДПР в Оренбургском регионе, надеюсь Вы это оцените и поддержите меня. Предлагаю воспользоваться открытым специально для Вашего Оренбургского отделения сайтом по адресу http://www.ldpr.orenforum.ru/ , готов отдать все необходимые коды доступа для работы с ним. Также при Вашем согласии, я готов поддерживать его работу!
vitalygavrilov Не смог отказать в просьбе камраду Шторм
Матрица — это прямоугольная таблица из чисел или математических выражений, состоящая из произвольного числа строк и столбцов. Каждая ячейка такой таблицы имеет одинаковый характер.
операции с матрицами:
1-LU-разложение прямоугольной матрицы
Подпрограмма вычисляет LU-разложение прямоугольной матрицы общего вида с частичным выбором ведущего элемента (с перестановками строк).
LU-разложение
LU-разложение прямоугольной матрицы A размером MxN - это представление матрицы A в виде произведения матрицы перестановок P, нижнетреугольной матрицы L с единичной главной диагональю (или нижнетрапецоидальной, если M > N) и верхнетреугольной матрицы U (или верхнетрапециодальной, если M < N):
A = PLU
Представление в такой форме часто используется при решении задач линейной алгебры, обычно при решении систем линейных уравнений, определении числа обусловленности матрицы, вычислении обратной матрицы и в некоторых других случаях.
Для построения разложения используется алгоритм Краута с выбором ведущего элемента. Следует помнить, что в виде произведения матриц L и U представляется не матрица A, а перестановка её строк, задаваемая матрицей P.
Описание подпрограмм
В модуле определены две подпрограммы: LUDecomposition и LUDecompositionUnpack. Назначение и параметры подпрограмм подробно описаны в комментариях к ним, поэтому я лишь кратко опишу их работу.
Подпрограмма LUDecomposition принимает на входе матрицу A и возвращает её LU-разложение. При этом матрицы L и U замещают переданную матрицу, как это описано на схеме ниже, а таблица произведенных перестановок возвращается в массиве Pivots. A11 A12 A13 => U11 U12 U13
A21 A22 A23 => L21 U22 U23
A31 A32 A33 => L31 L32 U33
A41 A42 A43 => L41 L42 L43
Подпрограмма LUDecompositionUnpack решает ту же самую задачу, но выводит матрицы L и U не в компактной форме, а в виде отдельных матриц общего вида, заполненных в соответствующих местах нулевыми элементами. Эта подпрограмма приведена исключительно для демонстрации того, как "распаковывается" результат работы подпрограммы LUDecomposition.
вот код LU-разложения на C#(без копирайтов ^_________^ но они вообще-то есть):
void ludecomposition(ap::real_2d_array& a,
int m,
int n,
ap::integer_1d_array& pivots)
{
int i;
int j;
int jp;
ap::real_1d_array t1;
double s;
думаю, хотя бы общее представление о матрицах вы получили?))) И помните, одним LU-,QR-,LQ- и прочими разложениями дело не ограничивается. есть так же процедуры сложения, вычитания, умножения и деления матриц. и многое другое.
Надеюсь это краткое вступление сподвигнет вас изучить эту тему поглубже.
Мыр?)