Главная » Статьи » Математика » Уравнения

Исследование систем линейных уравнений неполного ранга и минимальным по Евклидовой норме решением

Пусть задана система m линейных алгебраических уравнений с n неизвестными общего вида (СЛАУ) в матричной форме:

A*X = B

где



A – основная матрица системы (или матрица коэффициентов при неизвестных)

X – вектор-столбец решений системы (вектор неизвестных)

B – вектор свободных коэффициентов

Решением системы такого вида называется всякий n – компонентный вектор-столбец X, обращающий матричное уравнение в тождество (равенство).

Найдём решение с помощью метода последовательных исключений Жордана-Гаусса, который заключается в последовательном исключении неизвестных. Дополнительно выделим из множества решений вектор-решения минимальный по Евклидовой норме.

В MatLab стандартная функция rref(A), …/matlab/toolbox/matlab/matfun/rref.m, приводит матрицу A к треугольному виду на основе классического метода исключения Гаусса с частичным выбором ведущего элемента. В данной функции реализуется следующий код: который, не меняя местами столбцы матрицы системы, приводит матрицу к диагональному виду, работая только со строками(таким образом, использование этой функции не приведетк ошибкам).

% Loop over the entire matrix.

% Перебор каждого элемента матрицы

i = 1; j = 1; jb = [];

while (i <= m) & (j <= n)

% Find value and index of largest element in the remainder of column j.

% Найти значение и индекс самого большого элемента в остатке от колонки j.

[p,k] = max(abs(A(i:m,j))); k = k+i-1;

if (p <= tol)

% The column is negligible, zero it out.

% Если остаток колонки незначителен, то обнуление остатка и переход на следующую иттерацию.

A(i:m,j) = zeros(m-i+1,1);

j = j + 1;

else

% Remember column index

% Запоминание индекса колонки

jb = [jb j];

% Swap i-th and k-th rows.

% Поменияем месками i-ую и j-ую строки.

A([i k],j:n) = A([k i],j:n);

% Divide the pivot row by the pivot element.

% Деление элементов текущей строки на текущий элемент

A(i,j:n) = A(i,j:n)/A(i,j);

% Subtract multiples of the pivot row from all the other rows.

% Вычесть элементы текущей строки из всех других строк, начиная с j-го элемента.

for k = [1:i-1 i+1:m]

A(k,j:n) = A(k,j:n) - A(k,j)*A(i,j:n);

end

i = i + 1; j = j + 1;

end

end

Для этого, с помощью элементарных преобразований над строками и перестановки столбцов расширенную матрицу системы A|B (матрица, образованная добавлением столбца свободных коэффициентов B к основной матрице системы A) приведём к виду:


Необходимо отметить, что коэффициенты и полученной матрицы, отличаются от исходных коэффициентов расширенной матрицы. То есть получены новые – основная матрица системы Ấ и вектор-столбец свободных коэффициентов ß. Перемножив каждую строку матрицы  на вектор X получим:





Тогда вектор-решения состоит из следующих компонент

, где k = 1 m

Заменим  на коэффициенты j = 1 n-m. Общее решение СЛАУ имеет вид


Подставляя различные числовые значения вместо  можно получить бесконечное множество частных решений.

Теперь из множества полученных решений необходимо выделить минимальное по Евклидовой норме, то есть найти соответствующие значения .

Евклидова норма: . Составим функцию 


. Нахождение решения минимального по норме эквивалентно нахождению значений компонентов вектора-решений в точке минимума функции F. По необходимому признаку экстремума функции нескольких переменных и в силу выпуклости функции вниз минимум функции соответствует условиям:


 Т.к. функция является положительно определенной квадратичной функцией, то частные производные по всем переменным являются линейными функциями от этих переменных::



Таким образом условием минимума функции является решение системы линейных уравнений:

i = 1 n-m




Построим матричную форму этой системы:





Решая эту систему получим искомое значение коэффициентов при которых вектор-решений X минимален по Евклидовой норме.

В MatLab: C = E \ D;Откуда вектор минимального по норме решения равен

 , где k = 1 m.

Категория: Уравнения | Добавил: alexlat (30.04.2012)
Просмотров: 1324 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]