Крамеровская система. СЛАУ А*Х=В будет крамеровской если r = R = n = m, det(a)≠0 единственное решение такой системы задаётся формулой , что в обозначениях Matlab записывается как :
Пример:
Решить систему уравнений:
В данном случае
Тогда решение будет иметь вид:
A=[2 1 -3;1 -1 2; 7 5 1];
>> B=[1;18;3];
>> D=[A B];
>> rank(A)
ans = 3
>> rank(D)
ans = 3
% система совметна имеет единственное решение
>> X=inv(A)*B
X =
6.71111111111111
-9.02222222222222
1.13333333333333
% Или используем левое матричное деление
>> X=AB
X =
6.71111111111111
-9.02222222222222
1.13333333333333
% Проверка
>> A*X
ans =
1.00000000000000
18.00000000000000
3.00000000000000
Неопределённая система. В случае если ранг системы меньше числа неизвестных, то система имеет бесконечное множество решений. Общее решение такой системы может быть записано в виде , где Х0- частное решение неоднородной системы А*Х=В; У – общее решение однородной системы А*Х=0.
Некоторое частное решение неоднородной системы можно найти с помощью левого матричного деления . При выполнении этой операции, если матрица А вырожденная программа выдает предупреждение, что результаты могут быть неточными.
Наибольший интерес представляет нормальное частное решение неоднородной системы. Оно может быть получено с помощью псевдообратной матрицы по формуле.
Общее решение однородной системы А*Х=0 находят по схеме:
>>Yn=null(A.'r') % ортонормированный базис общего решения
>> syms t1 t2...tk % вводим символьные переменные t1,t2,…,tk, где к – число столбцов ортонормированного базиса
>> Y=Yn(:,1)*t1+Yn(:,2)*t2+...+Yn(:,k)*tk % общее решение однородной системы
>> X=X0+Y % общее решение неопределённой системы
При конкретных значениях t получаем частное решение системы. Производим проверку .
Решение систем линейных уравнений с помощью функции
Функция в случае решения систем уравнений имеет вид:
где:
Каждое уравнение системы берется в одинарные кавычки и отделяется от предыдущего запятой.
Перед функцией необходимо с помощью функции определить символьные переменные.
Пример:
Пусть необходимо решить следующую систему уравнений:
Программа решения системы уравнений имеет вид:
После нажатия клавиши получим ответ в следующем виде:
Программа задачу решила, но не выдала значения неизвестных . Для их получения необходимо воспользоваться командой , где - имя неизвестного. В нашем случае решение будет иметь вид:
Mat lab сама подбирает наиболее эффективный метод и решает систему. Использование знака является самым простым способом решения, однако, даже при таком простом подходе возможны существенные затруднения.
Элементы векторной алгебры
Функции для вычисления скалярное произведение векторов dot(a,b) или sum(a.*b), где а и b – вектора.
Функция для вычисления векторного произведения векторов cross(a,b). Если один вектор представлен в виде строки, другой в виде столбца - cross(a,b´).
Функция для вычисления смешанного произведения векторов det([a;b;c]), где а, b и c– вектора.