Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методички / TROPA V MATLAB_21.doc
Скачиваний:
154
Добавлен:
17.09.2018
Размер:
2.47 Mб
Скачать

1.11 Решение систем линейных уравнений

MATLAB позволяет работать с объектами линейной алгебры, т. е. векторами и матрицами, настолько просто, насколько это вообще возможно.

Яркий пример этому – решение систем линейных уравнений.

Пример:

Пусть дана система линейных уравнений

Решить систему с применением оператора обратного деления матриц < \ >.

Решение:

В матричной записи система имеет вид Ах = b, где

A = , b = , х =

– соответственно матрица из коэффициентов при незвестных, вектор-столбец из свободных членов и вектор-столбец из неизвестных.

Введем матрицу А и вектор-столбец свободных членов b:

>> А=[1 3 0;-2 -2 5;1 0 -5]

А =

1 3 0

-2 -2 5

1 0 -5

>> b=[-2;10;-9]

b =

-2

10

-9

Известно, что система имеет единственное решение, если определитель матрицы А не равен нулю (│A= det(A) ≠ 0). Вычислим определитель матрицы А:

>> disp(det(A))

-5

Определитель не равен нулю. Находим решение системы с помощью оператора обратного деления матриц < \ >:

>> x=А\b

x =

1

-1

2

Проверим полученное решение x1 = 1, x2 = -1, x3 = 2 подстановкой в систему уравнений:

>> disp(A*x)

-2.0000

10.0000

-9.0000

В результате проверки получен вектор-столбец свободных членов. Значит, система решена верно.

Найдем теперь решение системы х = A-1b с помощью обратной матрицы. Вначале вычислим обратную матрицу A-1:

>> A1=inv(A)

A1 =

-2.0000 -3.0000 -3.0000

1.0000 1.0000 1.0000

-0.4000 -0.6000 -0.8000

Находим решение системы:

>> A1*b

ans =

1.0000

-1.0000

2.0000

Отметим, что решение системы с помощью обратной матрицы требует больше времени и памяти, к тому же этот способ может дать большую погрешность решения. Поэтому для решения линейных систем рекомендуется применять оператор обратного деления < \ >.

Пример:

Решить систему линейных уравнений

Решение:

>> A=[1 3 0;-2 -2 5;1 0 5]

A =

1 3 0

-2 -2 5

1 0 5

>> b=[-2 10 -9]

b =

-2 10 -9

>> disp(det(A))

35

Находим решение системы:

>> x=A\b'

x =

-7.5714

1.8571

-0.2857

Заметим, что обратное деление произведено на вектор-столбец b', поскольку вектор b введен как вектор-строка. Получили приближенное решение системы. Вычислим обратную матрицу A-1:

>> disp(inv(A))

-0.2857 -0.4286 0.4286

0.4286 0.1429 -0.1429

0.0571 0.0857 0.1143

Точное решение системы и точная обратная матрица выражаются через рациональные дроби:

>> format rat

>> x=A\b'

x =

-53/7

13/7

-2/7

>> disp(inv(A))

-2/7 -3/7 3/7

3/7 1/7 -1/7

2/35 3/35 4/35

Вопросы для самопроверки

1. Какие окна имеет интерфейс MATLAB и каково их назначение

2. Какова структура командного окна Command Window

3. Как называется отображение в командном окне сеанса работы с системой На какие зоны подразделяется текстовое поле окна Command Window

4. Для чего служат в MATLAB клавиши <↑> и <↓>

5. Для чего применяется команда disp

6. Как можно ввести слишком длинную команду в окне Command Window

7. Какая информация сохраняется в окнах Command History и Workspase после применения команды очистки экрана clc

8. Как получить справку по выбранной команде MATLAB

9. В каких форматах представляются в MATLAB вещественные числа

10. Какие форматы отображения вещественных чисел используются в MATLAB

11. Как в в MATLAB осуществляются операции с комплексными числами

12. В чем измеряются аргументы встроенных тригонометрических функций

13. Какая команда осуществляет векторизацию символьного выражения

14. Как MATLAB реагирует на ошибки ввода

15. Как обнаружить и устранить семантическую ошибку ввода

16. Как в MATLAB создаются векторы и матрицы

17. Как осуществляется просмотр и редактирование переменных в окне Workspase

18. Как в MATLAB осуществляются матричные и поэлементные операции над векторами и матрицами

19. Что вычисляют команды dot и cross

20. Как решается система линейных уравнений с помощью оператора обратного деления < \ >

Соседние файлы в папке Методички