16053 Reputation

12 years, 198 days

Graphical options...

Use additional graphic options that can significantly improve the quality of plotting. The plot size can be changed with  size  option, and the style (including size) of the legends is controlled by  legendstyle  option. As an example, look at the plotting 4 basic trigonometric functions on one plot by default and using additional options:

 > restart; # By default plot([sin(x),cos(x),tan(x),cot(x)], x=-2*Pi..2*Pi, y=-4..4, legend=[sin(x),cos(x),tan(x),cot(x)], scaling=constrained);
 > # With additional options plot([sin(x),cos(x),tan(x),cot(x),seq([-2*Pi+Pi/2*k,t,t=-4..4],k=0..8)], x=-2*Pi..2*Pi, y=-4..4, legend=[sin(x),cos(x),tan(x),cot(x),"vertical asymptotes"\$9], linestyle=[1\$4,3\$9], legendstyle=[font=[times,18]], color=[red,blue,green,gold, black\$9], thickness=[2\$4,0\$9], discont, scaling=constrained, size=[900,600]);
 >

Additionally, I replaced the vertical lines that Maple draws by default at break points with vertical dashed black lines and indicated them in the legends. The colors of the graphs have also been changed.

Procedure for this...

I did not find a command in Maple for expanding a function into a Fourier series. But here's a simple procedure that does it for a function on the segment  -Pi .. Pi . I leave it to you as a simple exercise to modify it for a function given on an arbitrary segment.

 > restart; Fourier:=proc(f::algebraic,N::nonnegint) local a,b,k; a:=k->`if`(k=0,1/(2*Pi)*int(f,x=-Pi..Pi),(1/Pi)*int(f*cos(k*x),x=-Pi..Pi)); assume(n,nonnegint); print('a'[0]=a(0), 'a'[n]=a(n)); b:=k->(1/Pi)*int(f*sin(k*x),x=-Pi..Pi); print('b'[n]=b(n)); a(0)+add(a(k)*cos(k*x)+b(k)*sin(k*x),k=1..N); end proc:
 > # Example of use Fourier(abs(x), 5); plot([abs(x),%], x=-Pi..Pi, color=[blue,red], size=[800,400], scaling=constrained);
 >

Edit.

Another way...

Here's another easy way. Thу  ZigZag  procedure arranges the matrix indices in zigzag order. The matrix can be arbitrary (not necessarily square).

 > restart;
 > ZigZag:=proc(M,N) local L, P; uses ListTools; L:=[seq(seq([i,j],i=1..M),j=1..N)]; P:=[ListTools:-Categorize((x,y)->x[1]+x[2]=y[1]+y[2], L)]; [seq(`if`(k::odd,op(P[k]),op(Reverse(P[k]))),k=1..M+N-1)]; end proc:

Examples of use

 > ZigZag(3,3);
 (1)
 > Matrix(4,6,{seq((op(ZigZag(4,6)[k]))=k,k=1..4*6)});
 (2)
 >

Large Operators...

See the  Large Operators  palette :

extrema...

In Maple we can use the  extrema  command for symbolic calculation of the  maximum  or the  minimum . The  extrema  command employs the method of Lagrange multipliers. Of course, this method is not universal and can fail if the extremum is reached at the points where differentiability is violated.

 >
 > restart: f:=(x-2*y)/(5*x^2-2*x*y+2*y^2): V:=extrema(f, {2*x^2 - y^2 + x*y=1}, {x,y}, s); s; s1:=convert(s,list); simplify(eval~(f, s1)); # Check
 (1)
 >

We see that the maximum  sqrt(2)/4  is reached at two points. At the same time, we also learned everything about the minimum.

plots:-implicitplot...

1. For grouping the terms of an equation in Maple do not use square or curly brackets (only parentheses).

2. There is no need to use the  fsolve  command first for plotting, you can immediately plot with the  plots:-implicitplot  command. We see 2 values of  M  for each value of  sigmai from the range  0.1..0.4 :

 > Eq:=-(1/18)*(((M+sqrt(3)*sqrt(sigmai))^2-(M-sqrt(3)*sqrt(sigmai))^2)^(3/2)-(M+sqrt(3)*sqrt(sigmai))^3+(M-sqrt(3)*sqrt(sigmai))^3)*sqrt(3)/sqrt(sigmai)+2*f*(1-(1+(1/2*(qc-1))*(M-sqrt(3)*sqrt(sigmai))^2)^((3*qc-1)/(2*qc-2)))/(3*qc-1)+(2*(1-f))*(1-(1+(1/2)*beta*(qh-1)*(M-sqrt(3)*sqrt(sigmai))^2)^((3*qh-1)/(2*qh-2)))/(beta*(3*qh-1))=0; params:=[qc=0.7,qh=0.7,beta=0.1, f=0.11]; R:=sigmai=0.1..0.4; Eq1:=eval(Eq, params); plots:-implicitplot(Eq1, R, M=-10..10, gridrefine=4);

R^2->R^2...

We can think of a conformal mapping as a mapping from R^2 to R^2 :

 > restart; assume(y, real); assume(x, real); f := z -> I + z*exp(1/4*I*Pi); w := f(x + y*I); u := Re(w); v := Im(w); with(plots): with(plottools): R:=display(polygon([[0,0],[1,0],[0,1]],color="LightBlue"),seq(plot(i,x=0..1-i,color=black),i=0..1,0.1),plot([seq([i,t,t=0..1-i],i=0..1,0.1)],color=black)): F:=transform(unapply([u,v],x,y)): `f(R)`:=display(F(R)): display(, scaling=constrained, size=[300,300]); display(R,`f(R)`);

 >

 >
 >
 >
 >
 >

elementwise equality...

```restart;
eq:=x^2+2*x-1=0;
x=~[solve(eq)];```

Procedure for this...

Let  be the number of points on one dice, and   b  be the number of points on another one.

 > restart; LE:=proc(a::integer,b::integer) (type(a,even) and type(b,odd)) or (type(a,odd) and type(b,even)) implies a+b<=9; end proc:
 > # Examples of use: LE(2,3); LE(5,6);
 (1)
 >

Inert form...

You can use an inert form for subtraction to keep the expression unchanged. For any calculations and transformations use the  value  command:

```restart;
expr:=arccos(p%-a);
value(expr);
value(eval(expr,[p=0,a=1]));
```

_B1 is a binary variable...

_B1  is a binary variable that is 0 or 1 :

```restart;
ode:=diff(y(x),x)-y(x)/x+csc(y(x)/x)=0;
sol:=dsolve([ode,y(1)=0]);
sol1:=eval(sol,_B1=0);
sol2:=eval(sol,_B1=1);
odetest(sol1,ode);
odetest(sol2,ode);
```

Student:-Calculus1:-Roots...

Here is a solution in Maple:

 > restart; Student:-Calculus1:-Roots(1/x^3-sin(12*x)=0, x=1.2..2); map(x->[x,1/x^3], %); # Solutions of the system
 (1)
 >

```restart;