
- •Основы работы и программирования, компьютерная математика Учебный курс
- •Isbn ооо «Харвест», 2008
- •Предисловие
- •Введение
- •Глава 1 знакомство с matlab и простейшие вычисления
- •1.1. Рабочая средаMatlab
- •1.2. Арифметические вычисления
- •1.3. Вещественные числа
- •1.4. Форматы вывода результата вычислений
- •1.5 Комплексные числа
- •1.6 Векторы и матрицы
- •1.7 Встроенные функции. Функции, задаваемые пользователем
- •1.8 Сообщения об ошибках и их исправление
- •1.9 Просмотр и сохранение переменных
- •1.10 Матричные и поэлементные операции над векторами и матрицами
- •1.11 Решение систем линейных уравнений
- •Вопросы для самопроверки
- •Глава 2 работа с массивами
- •2.1 Создание векторов и матриц
- •2.2 Применение команд обработки данных к векторам и матрицам
- •2.3 Создание специальных матриц
- •2.4 Создание новых массивов на основе существующих
- •2.5 Вычисление собственных значений и собственных векторов. Решение типовых задач линейной алгебры
- •Вопросы для самопроверки
- •Глава 3 м-файлы
- •3.1 Файл-программы
- •3.2 Файл-функции
- •Вопросы для самопроверки
- •Глава 4 программирование
- •4.1 Операторы отношения и логические операторы
- •4.2 Операторы цикла
- •4.3 Операторы ветвления
- •4.4 Оператор переключения switch
- •4.5 Оператор прерывания цикла break
- •4.6 Пример сравнения быстродействия матричных и скалярных операций
- •Вопросы для самопроверки
- •Глава 5 высокоуровневая графика
- •5.1 2D графика
- •5.1.1 Графики в линейном масштабе
- •5.2 Специальные виды 2d - графиков
- •5.2.1 Представление функции в виде дискретных отсчетов
- •5.2.2 Лестничные графики
- •5.2.3 Графики с указанием погрешности
- •5.2.4 Графики в логарифмическом и полулогарифмическом масштабах
- •5.2.5 Графики параметрических функций
- •5.3 3D графика
- •5.3.1 Линейчатые поверхности
- •5.3.2 Каркасные поверхности
- •5.3.3 Контурные графики
- •5.3.4 Сплошная освещенная поверхность
- •5.4 Оформление, экспорт и анимация
- •5.4.1 Оформление графиков
- •5.4.2 Сохранение и экспорт графиков
- •5.4.3 Анимация
- •Вопросы для самопроверки
- •Глава 6 прикладная численная математика
- •6.1 Операции с полиномами
- •6.2 Решение уравнений и их систем
- •6.3 Минимизация функции одной переменной
- •6.4 Минимизация функции нескольких переменных
- •6.5 Вычисление определенных интегралов
- •6.6 Решение дифференциальных уравнений
- •6.7 Аппроксимация и интерполяция данных
- •6.8 Интерполяция двумерных и многомерных данных
- •Вопросы для самопроверки
- •Глава 7 символьные вычисления
- •7.1 Символьные переменные, константы и выражения
- •7.2 Вычисления с использованием арифметики произвольной точности
- •7.3 Команды упрощения выражений – simplify, simple
- •7.4 Команда расширения выражений – expand
- •7.5 Разложение выражений на простые множители – команда factor
- •7.6 Приведение подобных членов – команда collect
- •7.7 Обеспечение подстановок – команда subs
- •7.8 Вычисление пределов – команда limit
- •7.9 Вычисление производных – команда diff
- •7.10 Вычисление интегралов – команда int
- •7.11 Разложение в ряд Тейлора – команда taylor
- •7.12 Вычисление суммы ряда – команда symsum
- •7.13 Решение уравнений и их систем – команда solve
- •7.14 Решение дифференциальных уравнений – команда dsolve
- •7.15 Прямое и обратное преобразования Лапласа – команды laplace,ilaplace
- •7.16 Графики символьных функций – команды ezplot, ezpolar
- •7.17 Прямой доступ к ядру системы Maple – командаmaple
- •7.18 Разложение рациональной дроби на сумму простейших дробей
- •7.19 Интерполяционный полином Лагранжа
- •7.20 Решение неравенств и систем неравенств
- •7.21 Разложение в ряд Тейлора функции нескольких переменных
- •7.22 Решение дифференциальных уравнений с помощью степенных рядов
- •7.23 Решение тригонометрических уравнений
- •Вопросы для самопроверки
- •Приложения Приложение 1. Справочная система matlab
- •Приложение 2. Знакомство с пакетами расширения системыMatlab
- •Приложение 3. Задания для самостоятельной работы
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Литература
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. Как решается система линейных уравнений с помощью оператора обратного деления < \ >