Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка Maple, Стребуляев.doc
Скачиваний:
120
Добавлен:
27.03.2015
Размер:
3.96 Mб
Скачать

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);

В данном разделе приведены наиболее часто применяемые операторы для построения двумерных и трехмерных графиков функций, используемые для визуализации результатов исследований.