## Is there a more versatile way to draw the curve on...

I read the code in the link below and have some thoughts on drawing the graph.

https://www.mapleprimes.com/questions/216092-Options-For-Graph-Drawing-In-The-GraphTheory

restart:
with(GraphTheory):
with(SpecialGraphs):
G     := PetersenGraph();:
POS := GetVertexPositions(G);
EG   := Edges(G);
PLOT(
seq( CURVES([POS[EG[i][1]], POS[EG[i][2]]], LINESTYLE(3) ), i=1..numelems(Edges(G))),
POINTS(POS, SYMBOL(_SOLIDBOX, 35), COLOR(RGB, 1, 1, 0)),
seq(TEXT(POS[i], i), i=1..numelems(Vertices(G))),
AXESSTYLE(NONE)
)

But if we want to change the edge to a curvilinear style, it seems very difficult. We know  PetersenGraph is 1-planar graph.  The following picture is one of  its 1-plane drawing.  That is  also what I want to draw .

PS: 1-planar graph is a graph that can be drawn in the Euclidean plane in such a way that each edge has at most one crossing point, where it crosses a single additional edge

Although I asked a similar question, but it uses too many special curve functions and the method is relatively isolated. Because the cycle graph is too special.  https://www.mapleprimes.com/questions/228987--Can-We-Draw-Curved-Edges-In-The-Graph

I also noticed the optional items of the edge style.  But there are no curves, such as arcs, parabola, etc.

The plot style must be one of line, point, pointline, polygon (patchnogrid), or polygonoutline (patch).

I am trying to draw a parabola, it seems to be quite difficult. And it completely deviated from the use of graph theory package.

drawarc :=proc(A,B,C,ecolor);

local  c,ax,cx ,ay,cy,ox,oy,oo,x,y,b,a,an_end,an_start,r,yuanhu:
ax :=evalf(geometry)[HorizontalCoord](A):
cx :=evalf(geometry)[HorizontalCoord](C):
ay :=evalf(geometry)[VerticalCoord](A):
cy :=evalf(geometry)[VerticalCoord](C):

geometry[circle](c,[ A ,B ,C], [x,y],'centername' =o):

ox :=evalf(geometry[HorizontalCoord] (o)):
oy :=evalf(geometry[ VerticalCoord] (o)):

if(cx -ox)>0 then
b :=arctan((cy -oy) /(cx -ox)):
elif(cx -ox)=0 and (cy -oy)>0 then

b :=Pi/2 :
elif(cx -ox)=0 and (cy -oy)<0 then

b :=-Pi/ 2 :
else
b :=Pi +arctan((cy -oy) /(cx -ox)):
fi :
if(ax -ox)>0 then
a :=arctan((ay -oy) /(ax -ox)):
elif(ax -ox)=0 and (ay -oy)>0 then

a :=Pi /2 :
elif(ax -ox)=0 and (ay -oy)<0 then

a :=-Pi/ 2 ;
else
a :=Pi +arctan((ay -oy)/ (ax -ox)):
fi ;
if(evalf(b)<evalf(a))then
an_start :=a :
else
an_start :=a +2*Pi :
fi :
an_end :=b :

r :=geometry[ radius] (c);
yuanhu :=plottools[ arc] ([ ox , oy] , r , an_start..an_end):

plots[ display] (yuanhu , scaling =constrained, color =ecolor,axes=none);

end :

geometry[point] (a , -3 .00 , 1 .70);
geometry[point] (b , 0 .35 , -0 .45);
geometry[point] (c , 3 .13 , 1 .86);
l :=[a , b , c] ;
drawarc(a,b,c,blue);

I would like to ask maple if there is a more versatile and simpler way to draw a curve of  graph drawing.

drawarcs:=proc(VL ::list , ecolor , scope);
local i , num , arcs , arc_text , vl , display_set ;
vl :=VL ;
num:=nops(vl);
arcs :={};
i:=1;
if num <3 then
"There isn' t enough points in the point list." ;
return ;
elif irem(num-1 , 2)<>0 then
"The number of the list must be multiple of 2 when it minus 1 .";
fi :
while i <num do
arcs :={drawarc(vl[i] ,vl[i +1] , vl[i +2],ecolor),op(arcs)};
i:=i +2 ;
od ;
arc_text :=geometry[ draw] ({vl[1] , vl[num] }, printtext =true , color =ecolor);
display_set:={op(arcs),arc_text};
plots[ display] (display_set , view =[ -abs(scope)..abs(scope), -abs(scope)..abs(scope)] , scaling =constrained,axes=none);
end proc:
geometry[ point] (v1 , 0 ,0):
geometry[ point] (a , 3, 9):
geometry[ point] (b , 7, 9):
geometry[ point] (c, 6,8):
geometry[ point] (d , 12,9):
geometry[ point] (e , 7 ,2):
geometry[ point] (v3 , 9 ,0):
vl:=[ v1,a,b,c,d,e,v3] :
drawarcs(vl,red,20);

try.mwtry.mw

The above program is too cumbersome and not robust

macro(GS=GetVertexPositions):
with(GraphTheory):
with(SpecialGraphs):
G     := PetersenGraph():
POS := GetVertexPositions(G):
EG   := Edges(G) minus {{6,10},{6,7}}:
s1:=PLOT(
seq( CURVES([POS[EG[i][1]], POS[EG[i][2]]], LINESTYLE(3) ), i=1..numelems(Edges(G))-2),
POINTS(POS, SYMBOL(_SOLIDBOX, 35), COLOR(RGB, 1, 1, 0)),
seq(TEXT(POS[i], i), i=1..numelems(Vertices(G))),
AXESSTYLE(NONE)
):
geometry[ point] (a,op(GS(G)[6])):
geometry[ point] (b , op(GS(G)[7])):
geometry[ point] (c , op(GS(G)[10])):
geometry[ point] (d ,op(GS(G)[8])[1]+0.3,op(GS(G)[8])[2]-0.5):
geometry[ point] (d2 ,op(GS(G)[9])[1]-0.3,op(GS(G)[9])[2]-0.5):
s2:=drawarc(a,d,b,red):
s3:=drawarc(c,d2,a,red):
plots:-display({s1,s2,s3});

## System of PDE's...

PDE:

(a+b)*(uxx+vxy)+c*laplacian(u)=0

(a+b)*(vxy+vyy)+c*laplacian(v)=0

a,b,c=const.  Initial:u=1/2*sin(2*theta),v=cos(theta)

Text book says: Solve by complex variable method

## Grid computing toolbox on local multi-core server...

Is possible to operate Grid Computing Toolbox together with Maple on one local multicore machine?

If yes, what is the proper instalation/configuration procedure on Windows or Linux?

## Second order slope field...

Hey

Is it possible to draw a slope field for a second order differential equation with initial conditions?

## .eps figures produced by Maple are often excessive...

Why 3D .eps figures produced by Maple 2020 are often excessively large?

So, it´s a little heavy to the viewer and to compile to PDF.

• How could we reduce the size without losing any quality?

## how to get types to show up in command completion?...

command completion (when hitting the ESC key) in Maple could be made more useful. It does not seem to support type names for example.

What shows up on the command completion window are  possible commands that start with that partial text.

It does not list other known names by Maple, such as type names and other options.

This makes it hard to use in many places, where one have to remember type names exactly instead of the system helping them by listing all possible type names that start with that string.

Is there a way around this? Will Maple next version support smarter and more complete command completion menu?

## How to get Grid Run execute in parallel?...

Hi,

I was hoping to run two procs: tgf3 and tgf4 in parallel using Grid, Run and get a faster execution time. As I understood the description of Grid Run, the first call to Grid Run will run in the background and before it is finished the second call Grid Run will start. I do not believe I have that situation in my script. I am not understanding Grid Run. How can this problem be fixed? Here is just a portion of the script using Grid Run:

Use Grid Run 0 for tgf3 and 1 for tgf4. Determine the real time and compare times. The Grid Runs do not appear to run in parallel.

rgt := time[real]();
Grid:-Run(0, `~`[tgf3@op](convert(L, listlist)), 'assignto' = ans3roots);
Grid:-Run(1, `~`[tgf4@op](convert(L, listlist)), 'assignto' = ans4roots);
ans3roots;
ans4roots;

GridRunTime := time[real]() - rgt;
GridRunTime := 44.074

Here is my script:

Grid_Run_2.mw

Thank you for your help.

## How do I link to help pages when creating a set of...

I have created a set of help files using the example templates. After I create the .help file and install it with my package, I can view the help pages in the help viewer. However, when I click on any link within a help page, the target page opens as a worksheet in Maple. I understand this is because I created the hyperlink with a worksheet as the target. However, I don't know where to obtain the help topic name for a help page before it has been created.  I have searched help, but can't find any applicable guidance.  Can anyone tell me how to determine the help topic name when first creating the help pages.

I have attached one of my help file worksheets.     Hlpdiracmatrices.mw

## MapToBasis/ChangeBasis -- Spherical to Cartesian...

Hello,

When I create a vector in spherical coordinates and map it to cartesian coordinates with Physics[Vectors] package as follows,

```restart:with(Physics[Vectors]):
q_:=a _r + b _theta + c _phi
ChangeBasis(q_,cartesian)
```

I get the answer:

`(a*cos(phi)*sin(theta)+b*cos(phi)*cos(theta)-c*sin(phi)) i + (a*sin(theta)*sin(phi)+b*cos(theta)*sin(phi)+c*cos(phi)) j + (-b*sin(theta)+a*cos(theta)) k`

which is what I would expect.

But if I try to do that with VectorCalculus package as follows,

```q := SetCoordinates(<a, b, c>, spherical)
MapToBasis(q, cartesian)
```

This gives

`(a*sin(b)*cos(c)) ex + (a*sin(b)*sin(c)) ey + (a*cos(b)) ez`

The SetCoordinates(<a, b, c>, spherical) command outputs

`q:=(a) er  + (b) ephi + (c) etheta`

here, a,b, and c are  depicted as the components of the vector q in spherical coordinates, but when I map to cartesian coordinates, a,b, and c are treated as if they were the coordinates in spherical coordinates rather than components-- unlike ChangeBasis in Physics[Vectors] package.

Why are these two different?

## Help for a mathematical question related bifurcati...

```How I can obtain system (21) in the following pdf file?
In the first step several changes of variables are done to obtain the system (20),
then changes the variables again repeated in the neighborhood (w1 *, w2 *) to gain Eq 21.
I have 3 questuin:
1-The change of variables performed in the neighborhood (w1 *, w2 *)
for system (20) or for system (7) ???
2-What does it mean in the neighborhood (w1 *, w2 *)?
3- How did obtaun Eq (21)?```

[upload link replaced by moderator, as violation of Term of Use]

[paperhub.ir]10.1016@j.neucom.2010.06.023.pdf