1.2. Графика
Задайте и нарисуйте кусочную функцию в [–3,3].
- g:=x->piecewise(x>=-l and x<=0,l+x,x>=0 and x<=l,l-x,0);
- plot(g(x),x=-3..3,thickness=3,color=blue); g:=proc(x)
- if x>=-l and x<=0 then 1+x elif x>=0 and x<=l then 1-x else 0
- end if:
- end proc;
- plot(g,-3..3,thickness=3,color=blue);
Нарисуйте периодическое расширение функции в [0,20].
- f:=proc(x)
- if x>=0 and x
=l and x<2 then 1 - elif x>=2 and x<3 then 3-x end if:
- end proc:
- g:=proc(x) local a,b; a:=trunc(x) mod 3; b:=frac(x);f(a+b);
- endproc:
- plot(f,0..3,thickness=3,color=blue);
- plot(g,0..20,thickness=3,color=blue);
Последовательность ,
, задана так:
, где a – параметр. Найдите список (list) координат
таких, что a = 3, x0 = 0.1, N = 100. Нарисуйте график последовательности
.
- a:=3; x[0]:=0.1; N:=100;
- for i from 1 to N do x[i]:=a*x[i-1]*(l-x[i-1]):
- od:
- Seql:=seq([i,x[i]],i=2..N):
- plot([Seql],style=point,symbol=circle,symbolsize=25);
Проследите за поведением функции.
- with(plots):
- y:=x->cos(6*(x-a*sin(x))); G:=NULL; N:=20;
- for i from 0 to N do a:=l/2+i/N;
- G:=G,plot(y(x),x=-Pi..Pi);
- od:
- G:=[G]:
- display(G,insequence=true);
Заданы функции и
. Нарисуйте их с линиями сетки.
- with(plots): A:=4:
- f:=x->sin(l/x)*x;
- plot(f(x),x=-Pi/2..Pi/2,
- color=blue,thickness=3,gridlines=true):
- Gl:=plot(f(x),
- x=-Pi/2..Pi/2,color=blue,thickness=3):
- Ml:=conformal(
- z,z=-A- I..A+I,grid=[20,10],color=grey):
- with(plots): A:=4:
- display([Gl,M1]);
- g:=x->(x"2-x+l)/(x"2+x-l);
- R:=-5..5;
- G2:=plot(g(x),x=R,R,discont=true,thickness=3):
- M2:=
- coordplot(cartesian,[R,R],view=[R,R],grid=[10,10],
- color=[grey,grey]): display([G2,M2],axes=boxed,
- scaling=constrained,xtickmarks=5,ytickmarks=5);
Задана функция . Нарисуйте область, ограниченную этой функцией и осью x = 0.
- with(plots): A:=4:
- f1:=plot([f(x),0],x=-4.5..4.5,-2..10,thickness=3):
- f2:=plot(f(x),x=S[1]..S[2],filled=true,color=grey):
- display([f1,f2]);
Нарисуйте область, удовлетворяющую неравенству .
- with(plots): Ineq:=x->2*x-2*y>1;
- A:=(color=blue); B:=(color=grey);
- C:=(color=green,thickness=10);
- inequal(Ineq(x),x=-2..2, y=-2..2,
- optionsfeasible=A,optionsexcluded=B,optionsopen=C);
Для функции ,
сделайте цветной градиентный график плотности с соответствующей надписью (легендой).
- with(plots):
- A:=colorstyle=HUE,style=patchnogrid,numpoints=5000,axes=boxboxed;
- Gl:=densityplot((x,y)->x*exp(-x"2-y"2),-2..2,-2..2,A):
- G2:=densityplot((x,y)->0.2*y,3..3.5,-2..2,A):
- G3:=textplot([seq([3.8,-1.95+i/8*3. 9,
- sprintf("7o- If",-0.4+i/10)],i=0..8)]) :
- display({Gl,G2,G3},scaling=constrained);
Сравните разные столбчатые графики (гистограммы).
- with(stats): with(stats[statplots]):
- list1:=[random[normald](200)]:
- histogram(list1);
- histogram(list1,area=count);
- histogram(list1,color=blue);
- with(Statistics):
- NX:=RandomVariable(Normal(0,1));
- G1:=DensityPlot(NX,range= 3..3,thickness=3,color=red):
- list1:=Sample(Normal(0,1),1500);
- G2:=Histogram(list1,range=-3..3,color=blue):
- plots[display]({G1,G2});
- list2:=[i^2 $ i=1..5]; PieChart(list2,sector=0..360,
- color=[blue,red,green,yellow,white]); BarChart(list2);
- ColumnGraph(list2); LineChart(list2);
Покажите, что решения волнового уравнения вида ,
есть проходящие волны.
- with(plots): N:=200; A:=array(1..2): u1:=(x,t)->cos(x-2*t);
- list1:=[random[normald](200)]:
- u2:=(x,t)->cos(x+2*t);
- setoptions(thickness=3,scaling=constrained,axes=none);
- A[1]:=animate(u1(x,t),x=0..4*Pi,t=1..10,frames=N):
- A[2]:=animate(u2(x,t),x=Pi/2..9*Pi/2,t=1..10,
- color=green,frames=N):
- display(A);
- with(plots):
- animatecurve([sin(7*x),cos(11*x),x=0..2*Pi],
- coords=polar,numpoints=300,frames=300,color=blue,thickness=3);
- with(plots): n:=100: G:=[]:
- L1:=[seq([cos(j*Pi/n),sin(j*Pi/n)],j=0..n)]: L2:=[seq([-
- cos(j*Pi/n),-sin(j*Pi/n)],j=0..n)]: for i from 1 to n do
- G:=[op(G),plot([L1[1..i],L2[1..i]], x=-1..1,y=-1..1,
- symbol=circle,style=point,color=[blue,red])]: od:
- display(G,insequence=true);
- with(plots): n:=250: G:=[]: k:=20:
- L1:=[seq([cos(k*j*Pi/n),j,sin(k*j*Pi/n)],j=0..n)]:
- L2:=[seq([-cos(k*j*Pi/n),-j,-sin(k*j*Pi/n)],j=0..n)]:
- for i from 1 to n do
- G:=[op(G),spacecurve({L1[1..i],L2[1..i]},
- style=line, axes=none,thickness=3,shading=zhue)]: od:
- display3d(G,insequence=true);
- with(plots): n:=40: G:=NULL:
- f1:=(x,y)->(x^2-y^2)/9-9: f2:=(x,y)->(x^2-y^2)/9:
- G1:=plot3d(f1(x,y),x=-9..9,
- y=-9..9,style=patchnogrid): G2:=plot3d(f2(x,y),
- x=-9..9,y=-9..9,style=patchnogrid):
- for i from 1 to n do
- G:=G,display3d([G1,G2],orientation=[i*180/n,50]): od:
- display3d([G],scaling=constrained,insequence=true);
- with(plots):
- G:=plot(cos(x),
- x=-Pi..Pi,axes=boxed,thickness=2,color=blue):
- animate(pointplot,[[[t,cos(t)]],symbol=circle,
- symbolsize=20, color=red],
- t=-Pi..Pi,frames=100,background=G);
Нарисуйте диаграмму стабильности дифференциального уравнения (ДУ) Матье в плоскости (a, q).
- with(plots):
- S1:=[MathieuA(i,q) $ i=0..5];
- S2:=[MathieuB(i,q) $ i=1..6];
- G1:=plot(S1,q=0..35,-20..45,color=red):
- G2:=plot(S2,q=0..35,-20..45,color=blue):
- display({G1,G2},thickness=3);
