- •С.Н. Стребуляев, д.Ю. Васин
- •Оглавление
- •Введение
- •1. Основные пакеты, операторы и функции системы аналитических вычислений maple
- •1.1. Пакеты функций
- •1.2. Способы задания функций и построение их графиков
- •1.3. Вычисление пределов
- •1.4. Вычисление производных
- •1.5. Вычисление интегралов
- •1.6. Операции с рядами
- •1.7. Решение уравнений, неравенств и их систем
- •1.8. Анализ функций
- •Решение дифференциальных уравнений второго порядка:
- •Численное решение системы дифференциальных уравнений:
- •Решение системы двух дифференциальных уравнений с выводом фазового портрета решения:
- •Фазовый портрет;
- •Решение;
- •Система уравнений Ван дер Поля при аппроксимации характеристики лампы полиномом 3 степени
- •Получаем укороченные уравнения Ван дер Поля
- •Операции с векторами:
- •Способы задания матриц:
- •Операции над матрицами:
- •1.11. Преобразование комплексных чисел, аналитических выражений и функций комплексного переменного
- •Функции комплексного переменного:
- •Работа с комплексными функциями
- •Начальные условия:
- •Конкретные значения параметров системы указаны в вариантах контрольных заданий.
- •Нерезонансные случаи
- •Греческий алфавит
1.2. Способы задания функций и построение их графиков
В системе аналитических вычислений Mapleсуществует четыре способа задания функций.
Способ 1.Определение функции с помощью оператора присваивания (:=), например
> restart;
> f[1]:=sin(x)^3+1;
Для того чтобы вычислить значение функции в какой либо точке, необходимо выполнить следующих два оператора:
> x:=Pi/4; f[1];
> 1/4*2^(1/2)+Pi;
После выполнения этих команд переменная x имеет заданное значениеPi/4. Чтобы насовсем не присваивать переменной конкретного значения, удобнее использовать команду подстановкиsubsв следующем виде:
> a:=subs({x=Pi/4},f[1]);
Чтобы получить приближенное значение предыдущего выражения в виде числа с плавающей запятой, используем команду:
> evalf(%); # Символ (%) используется для вызова предыдущей команды;
Способ 2.Определение функции с помощью функционального оператора, который ставит в соответствие независимой переменной (аргументу) значение зависимой переменной (функции):
> f[2]:=(t)->t^3+exp(t);
Обращение к этой функции осуществляется привычным для специалистов способом:
> f[2](1); f[2](3);
Приближенные значения получим в виде:
> evalf(f[2](1)); evalf(f[2](3));
Способ 3.Задание функции с помощью командыunapply
> f[3]:=unapply(y^6+y,y);
> f[3](1); f[3](5);
Способ 4.Задание кусочно-линейной функции. Например:
> f[4]:=piecewise(z<0,1,z>=0 and z<1, z, z>=1,cos(z));
Приведенные выше способы задания функций применимы и для случая функций от нескольких переменных.
Для построения графиков функций используется пакет plots. Она задается в виде
plot(f,h,v,g),
где f— визуализируемая функция,
h— аргумент функции, с указанием области его изменения,
v— необязательная переменная — функция, с указанием области ее изменения,
g— набор параметров, задающих стиль построения графика функции.
Для двумерного графика возможны следующие наиболее часто употребляемые параметры (g):
axes— определяет тип координатных осей, допускает значения:frame,boxed,normal,none;
axesfont— определяет шрифт для отображения надписей координатной шкалы, тип шрифта (times,courier,helvetica,symbol), его стиль (bold,italic,bolditalic), а также размеры;
color— цвет линии для отображения графика функции:aquamarine(зеленовато-голубой),black(черный),
blue(голубой),navy(темно-синий),coral(светло-красный),cyan(голубой),brown(коричневый),
gold(ярко-желтый),green(зеленый),gray(серый),khaki(хаки),magenta(пурпурный),
maroon(красно-коричневый),orange(оранжевый),pink(розовый),plum(темно-фиолетовый),
red(красный),sienna(охра),tan(желто-коричневый),turquoise(бирюзовый),violet(фиолетовый),
wheat(бледно-желтый),white(белый),yellow(желтый);
coords— параметр задает систему координат, в которой отображается график: декартова система координат (cartesian) — по умолчанию, биполярная (bipolar), кардиоидная (cardioid), кассинианова (cassinian), эллиптическая (elliptic), гиперболическая (hyperbolic), инверсная кассинианова (invcassinian), инверсная эллиптическая (invelliptic), логарифмическая (logarithmic), логарифмо-гиперболическая (logcosh), максвелова (maxwell), параболическая (parabolic), полярная (polar), круговая (rose) и касательная (tangent);
discont— если формальный параметр функцииdiscont( ) равенtrue, то выполняется проверка функции на наличие точек разрыва, по умолчания значение параметра равноfalse;
font— параметр определяет шрифт для отображения текстовых надписей (times,courier,helveticaилиsymbol) и стиля шрифта (roman,bold,italic,bolditalic) на графике;
labels— параметр задает надписи для осей координат; параметр задается в виде двух строк : для оси абсцисс и для оси ординат;
labelfont— параметр определяет шрифт надписей для осей координат;
legend— легенда графика, для нескольких графиков задается список, каждый элемент которого — легенда соответствующего графика;
linestyle— стиль линии: сплошная (solid), пунктирная (dot), штрихованная (dash), штрихпунктирная (dashdot);
numpoints— параметр задает минимальное число базовых точек для построения графика (по умолчанию это число равно 50);
scaling— параметр задает масштабы по осям координат отображения графика: единый (constrained) и различный (unconstrained);
style— параметр стиля линии: линия (line), точка (point), заливка (patch), заливка без отображения границ (patchnogrid);
symbol— тип символов для отображения базовых точек: квадрат (box), крест (cross), круг (circle), точка(point), ромб (diamond);
symbolsize— размер символов отображения базовых точек (по умолчанию он равен 10);
title— заголовок рисунка;
titlefont— шрифт заголовка рисунка;
thickness— параметр, задающий толщину линии отображения графика(0–15).
Ниже приведены примеры построения графиков функций, заданных в разных формах.
> restart: with(plots):
Warning, the name changecoords has been redefined
Для случая функции, заданной в явном виде, построение графика осуществляется следующим образом:
> f[1]:=(x)->(x^2-x-6)/(x-2);
> plot(f[1](x),x=1..3,color=red,thickness=2);
Если задать ограничения на изменение значения функции, графический образ рассматриваемой функции будет более понятным:
> plot(f[1](x),x=-2..6,y=-50..50,color=red,thickness=2);
Аналитически заданная функция может быть также использована в операторе plot:
> plot((x^2-x-6)/(x-2),x=1..3,y=-50..50,thickness=2);
Предел изменения аргумента может быть бесконечным (infinity).
> plot(ln(1+cos(x)),x=0..infinity,color=blue,thickness=2);
> plot(ln(1+cos(x)),x=0..infinity,y=-5..0,color=blue,thickness=2);
Для функции с разрывами возможно построение непрерывного графика discont=true(по умолчаниюdiscont=false):
> plot(ln(1+tan(x)),x=-10..10,discont=true,color=gold,thickness=2);
> plot(ln(1+tan(x)),x=-10..10,color=gold,thickness=2);
Построение нескольких графиков функций в одних осях осуществляется следующим образом:
plot([sin(x),sin(x)/x,sin(x^3/100)],
x=-10..10,color=red,thickness=2);
> plot([sin(x),sin(x)/x,sin(x^3/100)],
x=-10..10,color=[black,blue,red],
style=[line,line,point],thickness=2);
Построение графика функции, заданной отдельными точками, осуществляется следующим образом:
> restart:
> p:=[[i,sin(i/3)]$i=1..30]:# -процедура задающая последовательность точек;
> plot(p,x=0..30,color=black,style=point,symbol=circle,symbolsize=20,thickness=4);
plot([[0,0],[1,0.5],[2,0.7],[3,0.4],[5,0.2]],x=0..5,style=line,symbol=circle,color=blue,thickness=2);
plot([[0,0],[1,0.5],[2,0.7],[3,0.4],[5,0.2]],x=0..5,style=point,symbol=circle,color=black,thickness=4);
Построение графиков функций, заданных значениями элементов вектора:
> restart:
> x:=[0,1,2,3,4,5,6,7]: y:=[2,1.79,1.27,0.571,-0.2,-0.678,-0.758,-0.538]:
>
> pare:=(x,y)->[x,y];
> Coordxy:=zip(pare,x,y,2);
> plot(Coordxy,style=[line,point],symbol=circle,axes=boxed,thickness=2);
Построение графика функции, заданной процедурой:
> restart:
> w:=proc(x) if sin(x)>0 then sin(x) else -sin(x) fi end;
plot(w,-15..15,color=black,thickness=2);
Построение графиков кусочно-линейных функций:
> restart:
> f[1]:=piecewise(x<0,x^2,x);
> plot(f[1],x=-10..10,color=black,thickness=2);
Построение графиков функций заданных функциональными операторами и встроенными функциями:
> restart:
> plot([exp/2,sin,x->x^2,x->x^3],-1..1,color=black,thickness=3,title="ВСЕ БУДЕТ ХОРОШО",titlefont=[TIMES,BOLD,10]);
Построение графиков функций, заданных параметрически:
> restart:
> plot([sin(3*t),cos(5*t),t=0..2*Pi],color=black,thickness=3);
> x:=2*(cos(t)^3);y:=3*(sin(t)^3);
plot([x,y,t=0..2*Pi],color=orange,title="АСТРОИДА",titlefont=[TIMES,BOLD,15],thickness=3);
Построение графиков функций, заданных в полярной системе координат:
> restart:
> plot([2*(1-cos(phi)),phi,phi=0..2*Pi],color=black,coords=polar,title="КАРДИОИДА", titlefont=[TIMES,BOLD,15],thickness=3);
> polarplot(phi,phi=0..8*Pi,title="СПИРАЛЬ АРХИМЕДА",titlefont=[HELVETICA,BOLD,10],thickness=3);
Построение графика функции заданной в неявном виде:
> restart:with(plots): implicitplot(x^3+y^3-2*x*y=0,
x=-2..1.5,y=-2..2,color=green,title="ДЕКАРТОВ ЛИСТ",titlefont=[HELVETICA,BOLD,10],numpoints=10000,thickness=3);
>
Построение графиков функций от двух переменных осуществляется с помощью встроенной в ядро функции plot3d.
Для построения графика функции в явном виде z=z(x,y) используется процедураplot3d(z,x=a..b,y=c..d,p), а для функции с параметрической формой заданияx=x(t),y=y(t),z=z(t) –plot3d([x,y,z],a..b,c..d,p).
Построение графиков функций заданных в явном виде:
> restart;
> z[1]:=(x,y)->cos(x^2+2)*sin(y^2+2);
plot3d(z[1](x,y),x=-10..10,
y=-10..10,color=blue,thickness=1,axes=frame);
> restart;
> z[2]:=(x,y)->cos(x*y)*sin(x*y);
> plot3d(z[2](x,y),x=-2..2,
y=-2..2,color=blue,thickness=1,axes=boxed);
> restart;
> plot3d(sin(x^2+y^2)*x^2,x=-2..2,
y=-2..2,color=blue,thickness=1,axes=normal);
> restart;
> plot3d(sin(x^2+y^2)*x^2,x=-2..2,y=-2..2,style=hidden,color=blue,thickness=2);
>
Построение графика функции в цилиндрической системе координат:
> restart:
> plot3d(h^2,a=-Pi..Pi,
h=-5..5,coords=cylindrical,style=patch,
title=" НЕЛИНЕЙНЫЙ КОНУС",thickness=1);
Трехмерные графики параметрически заданных поверхностей:
> restart:
> z[1]:=(t,u)->cos(t)*(1+0.2*sin(u));
> z[2]:=(t,u)->sin(t)*(1+0.2*sin(u));
> z[3]:=(t,u)->0.2*sin(t)*cos(u);
> plot3d([z[1](t,u),z[2](t,u),z[3](t,u)],
t=-0.8..1.5*Pi,
u=-Pi..0.7*Pi,thickness=1,axes=boxed);
> restart:
> plot3d([(5+cos(t/2)*u)*cos(t),(5+cos(t/2)*u)*sin(t),
sin(t/2)*u],t=0..2*Pi,
u=-1..1,grid=[30,15],orientation=
=[-130,30],titlefont=[HELVETICA,BOLD,20],
title="Лист Мебиуса",shading=ZGREYSCALE);
В данном разделе приведены наиболее часто применяемые операторы для построения двумерных и трехмерных графиков функций, используемые для визуализации результатов исследований.