- •Введение
- •Глава 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 Создание новых массивов на основе существующих
- •Вопросы для самопроверки
- •Глава 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.2 Сохранение и экспорт графиков
- •5.4.3 Анимация
- •Вопросы для самопроверки
- •Глава 6 прикладная численная математика
- •6.1 Операции с полиномами
- •6.2 Решение уравнений и их систем
- •6.3 Минимизация функции одной переменной
- •6.4 Минимизация функции нескольких переменных
- •6.5 Вычисление определенных интегралов
- •6.6 Решение дифференциальных уравнений
- •Вопросы для самопроверки
- •Глава 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.20 Решение неравенств и систем неравенств
- •7.21 Разложение в ряд Тейлора функции нескольких переменных
- •7.22 Решение дифференциальных уравнений с помощью степенных рядов
- •7.23 Решение тригонометрических уравнений
- •Вопросы для самопроверки
- •Приложения Приложение 1. Справочная система matlab
- •Приложение 2. Знакомство с пакетами расширения системы matlab
- •Приложение 3. Задания для самостоятельной работы
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Литература
Вопросы для самопроверки
1. Как с помощью команды plot(…) вывести в одном окне графики двух одномерных функций, аргументы которых заданы на интервалах разнойт длины, но шаг дискретизации аргументов одинаков?
2. Какую команду следует использовать для вывода графика одномерной функции, если возникают затруднения с выбором шага дискретизации аргумента?
3. В какой последовательности располагаются символы, определяющие цвет, стиль линии и тип маркера при использовании команд plot(…), stem(…), stairs(…), errorbar(…)?
4. Когда целесообразно использовать команду plotyy(…)?
5. В чем особенность построения графиков параметрических функций?
6. Как построить каркасную поверхность для функции двух переменных с использованием команды plot3(…)?
7. С какой целью применяют команду colorbar(…)?
8. Что такое контурный график?
9. Какова последовательность действий для оцифровки линий на контурном графике?
10. Для чего служит команда colormap(…)?
11. С помощью каких команд на график можно нанести и убрать координатную сетку?
12. Для чего служит команда legend(…) и как раположить информацию, созданную с помощью этой команды, в левом нижнем углу графика одномерной функции?
13. Какова последовательность действий, позволяющая сохранить график, построенный в MATLAB, в текстовом редакторе WORD?
14. Для чего используется анимация графиков?
15. Что определяет параметр S в команде comet(x,y,S)?
16. С помощью какой команды можно анимировать график функции двух переменных?
Глава 6 прикладная численная математика
Эта глава посвящена численному решению задач из различных разделов
математики. В разделе 6.1 рассматриваются основные команды для работы с полиномами. При этом полиномы обычно задаются векторами их коэффициентов. В разделе 6.2 на многочисленных примерах продемонстрированы возможности MATLAB для решения нелинейных уравнений и их систем. В разделах 6.3, 6.4 рассматриваются средства минимизации функций одной и нескольких переменных. В разделе 6.5 подробно исследуются возможности MATLAB при численном интегрировании. В разделе 6.6 рассматриваются основные команды (солверы) для решения задачи Коши для обыкновенных дифференциальных уравнений и их систем. В разделах 6.7, 6.8 рассматриваются средства аппроксимации и интерполяции данных.
6.1 Операции с полиномами
Полином (многочлен) как функция определяется выражением
P(x) = anxn+…+a2x2+a1x+a0.
В MATLAB полином задается и хранится в виде вектора, элементами которого являются коэффициенты полинома от an до a0:
P = [an…a2 a0].
Ввод полиномов в MATLAB осуществляется таким же образом, как и ввод вектора длиной n+1, где n – порядок полинома.
Умножение полиномов. Произведением двух полиномов P1 и P2 степеней n и m соответственно называют полином степени n+m, коэффициенты которого определяют простым перемножением этих двух полиномов. В MATLAB ее осуществляет команда conv(P1,P2).
Деление полинома P1 на полином P2 осуществляет команда deconv(P1,P2). Она выдает коэффициенты полинома, который является частным от деления P1 на P2.
Примеры умножения и деления полиномов:
>> p1=[1 2 3];p2=[1 2 3 4 5 6];
>> p=conv(p1,p2)
p =
1 4 10 16 22 28 27 18
>> deconv(p,p1)
ans =
1 2 3 4 5 6
В общем случае деление двух полиномов приводит к получению также двух полиномов: полинома-результата (частного) и полинома-остатка. Чтобы получить оба эти полинома, следует оформить обращение таким образом: [Q,R]=deconv(B,A). Тогда результат будет выдан в виде векторов Q и R таких, что будет выполнено соотношение: B=conv(A,Q)+R.
Вектор, элементы которого являются корнями заданного полинома P, возвращает команда roots(P).
Пусть требуется найти корни полинома
P(x)=x5+8x4+31x3+80x2+94x+20.
Решение:
>> P=[1 8 31 80 94 20];
>> r=roots(p)
r =
-1.0000 + 3.0000i
-1.0000 - 3.0000i
-3.7321
-2.0000
-0.2679
Построение вектора P коэффициентов полинома по заданному вектору r его корней осуществляет команда poly:
>> P=poly(r)
P =
1.0000 8.0000 31.0000 80.0000 94.0000 20.0000
Эта же команда в случае, когда аргументом ее является некоторая квадратная матрица, строит вектор коэффициентов характеристического полинома этой матрицы (см. разд. 2.5).
Значение полинома при заданном значении его аргумента выдает команда polyval.
Обращение происходит по схеме y = polyval(p,x), где p – заданный вектор коэффициентов полинома, а х – заданное значение аргумента.
Вычисление производной от полинома производится командой polyder.
Существуют и другие команды:
polyint – аналитическое интегрирование полинома;
residue – разложение рациональной дроби на сумму простейших дробей.
Информация о командах, используемых при работе с полиномами, находится в разделе polyfun справочной системы MATLAB.