
- •Глава 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
- •1) Разложение рациональной дроби на сумму простейших дробей
- •2) Нахождение интерполяционного полинома Лагранжа
- •3) Решение неравенств и систем неравенств
- •4) Разложение в ряд Тейлора функции нескольких переменных
- •5) Решение дифференциальных уравнений с помощью степенных рядов
- •6) Решение тригонометрических уравнений
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.
Пример (рис.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 совместно с возможностями системы MATLAB придает последней особую гибкость и резко расширяет возможности решения сложных математических задач, где целесообразно объединять аналитические (символьные) методы с численными расчетами.
Пусть требуется найти аналитическое решение дифференциального уравнения
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)
Для получения списка специальных математических функций Maple, доступных из МАТLAB, служит команда mfunlist. В этом списке функции WhittakerW и WhittakerM отсутствуют, т.е непосредственно из МАТLAB они недоступны.
Для доступа к информации о функциях Maple предназначена команда mhelp. Указание в качестве параметра имени функции
>> mhelp WhittakerW
выводит определение функций Уиттекера, варианты вызова и подробное описание с примерами использования.
Функция maple позволяет вычислить значение любой функции Maple, например
>> maple('WhittakerM(1,2,0.5)')
ans =
.1607
Приведем примеры использования некоторых стандартных функций системы Maple при решении в МАТLAB следующих задач:
1) Разложение рациональной дроби на сумму простейших дробей;
2) Нахождение интерполяционного полинома Лагранжа;
3) Решение неравенств и систем неравенств;
4) Разложение в ряд Тейлора функции нескольких переменных;
5) Решение дифференциальных уравнений с помощью степенных рядов;
6) Решение тригонометрических уравнений.