- •Введение
- •Глава 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. Задания для самостоятельной работы
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Варианты
- •Литература
7.16 Графики символьных функций – команды ezplot, ezpolar
Чтобы избавить пользователя от хлопот, связанных с построением графиков функций с помощью стандартных средств (например, команды plot), в пакет Symbolic введены довольно удобные графические команды класса ezplot:
ezplot(f) – строит график символьно заданной функции f(x) независимой переменной x в интервале [- 2*pi;2*pi];
ezplot(f,xmin,xmax) – делает то же, но позволяет задать диапазон изменения независимой переменной x в интервале от xmin до xmax;
ezplot(f, [xmin, xmax, ymin, ymax]) – строит график функции f(x,у) = 0 для xmin < х < xmax, ymin < y < ymax.
Построим график функции sin(t)/t (рис. 7.3 ):
>> ezplot('sin(t)/t'),grid
Рис. 7.3
Следующая команда строит график гиперболы u2 - v2 - 1 = 0 для - 3 < u < 3, - 3 < v < 3 (рис. 7.4):
>> ezplot('u^2-v^2-1',[-3, 3, -3, 3]),grid
Рис. 7.4
Ранее с помощью команды ezplot были построены графики на рис. 6.2 и 7.2.
График функции f(t) в полярной системе координат строит команда ezpolar:
ezpolar(f) – строит график функции f(t) при изменении угла t от 0 до 2π;
ezpolar(f,[a b]) – строит график функции f(t) при изменении угла t от a до b.
Построим график функции cos3t в полярной системе координат (рис. 7.5):
>> ezpolar('cos(3*t)')
Рис.7.5
Помимо команд ezplot и ezpolar, пакет Symbolic поддерживает построение графиков других типов. Так, команда ezcontour служит для построения контурных графиков функций вида f(x,y). Похожая команда ezcontourf строит контурные графики с функциональной окраской областей между линиями равного уровня. Для построения трехмерных графиков параметрически заданных функций служит команда ezplot3. Команды ezsurf, ezsurfc, ezmesh, ezmeshc применяются для построения графиков поверхностей, заданных функциями двух переменных f(x,y). Справку с примерами по применению любой из этих команд можно получить с помощью команды doc <имя команды>.
7.17 Прямой доступ к ядру системы Maple – команда maple
Применение возможностей системы Maple совместно с возможностями системы MATLAB придает последней особую гибкость и резко расширяет возможности решения сложных математических задач, где целесообразно объединять аналитические (символьные) методы с численными расчетами.
Доступ к большинству функций и команд системы Maple, ядро которой включено в МАТLAB, осуществляется командой maple.
Пример:
Найти аналитическое решение дифференциального уравнения y''+2xy'+ny = 0.
Решение:
Обращение к dsolve приводит к решению, выраженному через функции Уиттекера:
>> dsolve('D2y+2*x*Dy+n*y=0','x')
ans =
C1/x^(1/2)*WhittakerW(1/4*n-1/4,1/4,x^2)*exp(-1/2*x^2)+C2/x^(1/2)*WhittakerM(1/4*n-1/4,1/4,x^2)*exp(-1/2*x^2)
Непосредственно из МАТLAB функции WhittakerW и WhittakerM недоступны, т.к. их нет в списке команды mfunlist (см. приложение 1).
Определение функций функций Уиттекера, варианты вызова и подробное описание с примерами использования возвращает команда mhelp Whittaker. Вычислим значение одной из них:
>> maple('WhittakerM(1,2,3)')
ans =
WhittakerM(1,2,3)
>> vpa(ans,7)
ans =
10.17605
Ниже приводятся примеры решения в МАТLAB некоторых математических задач с привлечением возможностей системы Maple.