Maple 2023 Questions and Posts

These are Posts and Questions associated with the product, Maple 2023

Below is the plot like I want it. The basic plot has been done with a simple plot command.

>plot(0, x = 0 .. 10, y = 0 .. 4, gridlines = true)

But the label of each axis was done manually. But I have tried to do it inside the plot command. A little help would be very appreciated.

So here is what I want the plot to look like:

Thank you in advance for the help.

Mario

I somehow managed to turn off autosave some time ago. Now I have reenabled it, but Maple still doesn't create any backups. Am I missing something?

Any help is appriciated.

There are various variants of graph coloring, such as when I want to compute the star chromatic number of a graph, Maple (or Mathematica) seems not to provide relevant functions.

Fortunately, the software ColPack   offers this functionality (Note: I just noticed that this software also uses greedy coloring instead of accuracy). However, it supports the MTX format. So, the question is: 

  •  How can I write a graph in MTX format?

And 

  •  how can the MTX format be converted into a graph format?

Of course, I would like to perform these operations in Maple.  (SageMath may have something)


The following is an example (bcsstk01.mtx) in the directory `ColPack-master/Graphs directory` of the source code of ColPack.

bcsstk01.mtx.txt

./ColPack -f ../../Graphs/bcsstk01.mtx -m STAR
 Out: 11

But I do not know what the graph in the example is. On the contrary, I would like to compute the star chromatic number of the Petersen graph, and I also don't know how to convert it into the MTX format like the above.

with(GraphTheory):
with(SpecialGraphs):
P:=PetersenGraph()

I don't understand what the very long decimal numbers (like 2.8322685185200e+06) in the third column in the MTX-file. Will it affect the  imformation of the entire graph?

 

For MTX format, see https://math.nist.gov/MatrixMarket/formats.html.  For graphs, the numbers in the third column can all be considered as 1 (with the first two columns representing vertices, and their adjacency). Of course, this is my interpretation and may not necessarily be correct.

I make more and more use of the FunctionAdvisor. I have started to apply rules from the advisor to expressions. Here are two examples with questions:

NULL

Expression to apply an identiy to

JacobiSN(sin((1/2)*`ϕ__0`)*t, csc((1/2)*`ϕ__0`)) = JacobiSN(z, k)

JacobiSN(sin((1/2)*varphi__0)*t, csc((1/2)*varphi__0)) = JacobiSN(z, k)

(1)

map(op, JacobiSN(sin((1/2)*varphi__0)*t, csc((1/2)*varphi__0)) = JacobiSN(z, k))

(sin((1/2)*varphi__0)*t, csc((1/2)*varphi__0)) = (z, k)

(2)

solve([(rhs-lhs)((sin((1/2)*varphi__0)*t, csc((1/2)*varphi__0)) = (z, k))], {k, z})[]

k = csc((1/2)*varphi__0), z = sin((1/2)*varphi__0)*t

(3)

Using the following identity from Maples FunctionAdvisor and the correspondence in (3)

FunctionAdvisor(identities, JacobiSN(z, 1/k))[5]

JacobiSN(z, k) = JacobiSN(z*k, 1/k)/k

(4)

convert(subs(k = csc((1/2)*varphi__0), z = sin((1/2)*varphi__0)*t, JacobiSN(z, k) = JacobiSN(z*k, 1/k)/k), sincos)

JacobiSN(sin((1/2)*varphi__0)*t, 1/sin((1/2)*varphi__0)) = sin((1/2)*varphi__0)*JacobiSN(t, sin((1/2)*varphi__0))

(5)

That worked. Q1: But is it a good way to do so?

Now  a new example: Converting InverseJacobinAM to InverseJacobiSN

NULL

NULL

FunctionAdvisor(identities, InverseJacobiSN(z, k))[3]

InverseJacobiSN(z, k) = InverseJacobiAM(arcsin(z), k)

(6)

InverseJacobiAM((1/2)*`ϕ__0`, sqrt(2)/sqrt(1-cos(`ϕ__0`))) = rhs(InverseJacobiSN(z, k) = InverseJacobiAM(arcsin(z), k))

InverseJacobiAM((1/2)*varphi__0, 2^(1/2)/(1-cos(varphi__0))^(1/2)) = EllipticF(z, k)

(7)

map(op, InverseJacobiAM((1/2)*varphi__0, 2^(1/2)/(1-cos(varphi__0))^(1/2)) = EllipticF(z, k))

((1/2)*varphi__0, 2^(1/2)/(1-cos(varphi__0))^(1/2)) = (z, k)

(8)

solve({(rhs-lhs)(((1/2)*varphi__0, 2^(1/2)/(1-cos(varphi__0))^(1/2)) = (z, k))}, {k, z})

{k = 2^(1/2)/(1-cos(varphi__0))^(1/2), z = (1/2)*varphi__0}

(9)

This is of course wrong since comparing the InverseJacobiAM expression in (6) and (7) z should be

(1/2)*`ϕ__0` = arcsin(z)

(1/2)*varphi__0 = arcsin(z)

(10)

solve((1/2)*varphi__0 = arcsin(z), {z})

{z = sin((1/2)*varphi__0)}

(11)

Q2: How to avoid simplification of InverseJacobiAM(arcsin(z), k)to EllipticF(z, k)


Any advice?

Download Applying_identities_from_FunctionAdivisor.mw

When i try to log on to my maplesoft acount on Maple 2023 i get a messeage saying "Sign in Error: Please check your credentials and try again." i have done this multiple time double checked my password and everything, but it won't let me log on... what do i do?

How can a solve second order Laplace Equation with boundary condition numerical in Maple 2023?

Kjell

Perhaps you could consider a Coding theory Package.  I'm working on Coding theory at the moment.

I am using Maple 2023.

When using PDE Numeric Help Side the text sides is not smooth moving when scrolling downwards or upwards.

Any advice what to do????

Kjell

The so-called look-and-say sequence is something like:

# Starting digit: 0 
0→one 0→
10→one 1, then one 0→
1110→three 1's, then one 0→
3110→one 3, two 1's, then one 0→
132110→…

Rosetta Code gives an example of how to generate such sequences in Maple; however, the code in that example is lengthy. More to the point, compared to the subsequent Mathematica analogue, it is rather inefficient (though more readable, but that's not the point). 
I slightly modify the original code, and now the modified version is significantly faster than the original one: 
 

restart;

interface(version)NULL

`Standard Worksheet Interface, Maple 2023.1, Windows 10, July 7 2023 Build ID 1723669`

(1)
LookAndSay := proc(m::posint, n::nonnegint := 1, ` $`)::'Vector'(nonnegint);

LookAndSay(5, 0)NULL

Vector[column](%id = 36893490791509382076)

(2)

CodeTools['Usage'](LookAndSay(50), iterations = 4)

memory used=3.99GiB, alloc change=1.92MiB, cpu time=48.73s, real time=25.03s, gc time=39.05s

 

gc()time[real](LookAndSay(50))NULL

25.030

(3)


 

Download LookAndSay.mw

For the sake of convenience, I paste the original Maple code from the page above into here:

generate_seq := proc(s)
	local times, output, i;
	times := 1;
	output := "";
	for i from 2 to StringTools:-Length(s) do
		if (s[i] <> s[i-1]) then
			output := cat(output, times, s[i-1]);
			times := 1; # re-assign
		else 
			times ++;
		end if;
	end do;
	cat(output, times, s[i - 1]);
end proc:

Look_and_Say :=proc(n)
	local value, i;
	value := "1";
	print(value);
	for i from 2 to n do
		value := generate_seq(value);
		print(value);
	end do;
end proc:

#Test:
Look_and_Say(10);

Below is a modified version by me: 

LookAndSay := proc(m::posint, n::nonnegint := 1, $)::'Vector'(nonnegint);
    uses StringTools;
    local delete::'equationlist' := Repeat~(Explode(ExpandCharacterClass(":digit:")), 2), aux::procedure[nonnegint](posint) := proc(_::posint)::nonnegint;
        options cache;
        description "https://rosettacode.org/wiki/Look-and-say_sequence#Maple";
        if _ = 1 then
            n
        else
            local char::'nonemptystring' := String(thisproc(_ - 1)), temp::list(string)(*, str*);
            try
                temp := RegSplit(sprintf("(?=[%s])(?<=(?!%s)[%s])", Unique(char), Join(select[2](foldr, eval(apply), delete, rcurry(OrMap, Unique(char)), curry(curry, Has)), "|"), Unique(char)), char)
            catch "cannot compile regular expression: repetition-operator operand invalid":
                local rule::'equationlist' := (str -> str = Insert(str, 1, " "))~(subs(delete =~ NULL, Generate(2, Support(char))));
                temp := StringSplit(Subs(rule, char), " ") # to be replaced
            end;
            parse(String(seq('length(str), str[1]', str in temp)))
        fi;
    end;
    forget(aux);
    Vector[column](m, aux, datatype = nonnegint)
end:

The form LookAndSay(m, n); produces the first m terms in a "look-and-say" sequence starting with n (which is by default 1). Unfortunately, even if "the modified version is significantly faster than the original one", it is still much slower (25s versus 2.5s) than the uncompiled Mathematica implementation (on the same modern computer):

So, is there a workaround to evaluate LookAndSay(50, 1): in about three seconds (instead of half a minute) in the first call (without looking up a pre-calculated table) (on the same computer) as well? 

how I can extract data from plot3d such as x, y, phi2?

thanks

tez-1.mw

Download tez-1.mw
 

restart

``

beta := 2.5; lambda := 0.1e-1; b := Pi; a := Pi; alpha := 1; y[1] := 1.5; y[2] := 1.5; x[1] := -1; x[2] := 1; Q[1] := 40; Q[2] := 35

2.5

 

0.1e-1

 

Pi

 

Pi

 

1

 

1.5

 

1.5

 

-1

 

1

 

40

 

35

(1)

NULL

NULL

v := (2*n-1)*Pi/(2*b)

n-1/2

(2)

Delta := exp(2*v*a)*(alpha*v+beta)*(1+lambda)-(1-lambda)*(alpha*v-beta)

1.01*exp(2*(n-1/2)*Pi)*(n+2.000000000)-.99*n+2.970000000

(3)

g[22] := ((alpha*v+beta)*((1+lambda)*exp(-v*abs(x-xi))+(-1+lambda)*exp(-v*(x+xi)))*exp(2*v*a)+(alpha*v-beta)*((1+lambda)*exp(-v*(x+xi))+(-1+lambda)*exp(-v*abs(x-xi))))/(2*v*Delta)

g[21] := ((alpha*v+beta)*exp(v*(2*a+xi))+(alpha*v-beta)*exp(-v*xi))*exp(-v*x)/(v*Delta)

NULL

u[2] := int(2*g[21]*Q[1]*Dirac(xi-x[1])*sin(n*Pi*y[1]/b)/b, xi = -a .. 0)+int(2*g[22]*Q[2]*Dirac(xi-x[2])*sin(n*Pi*y[2]/b)/b, xi = 0 .. infinity)

NULL

phi[2] := sum(u[2](x)*sin(v*y), n = 1 .. 30)

NULL

``

plot3d(phi[2], x = 0 .. 5, y = 0 .. b)

 

NULL


 

Download tez-1.mw

 

 

While Maple itself is a pleasure to work with, the multitude and persistance of bugs in the Units package doesn't stop to surprise.

Especially as the same bugs come up again and again, after having been fixed i older versions.

In general, working with units and 0 is a pain in the ass. And this one doesn't even need a unit to compare with.

This one works in Maple 2022 - does not work in Maple 2023.

with(Units[Simple]);
min(0, 0);

Hi, 

Im trying to solve a system of 4 non-linear equations using the fsolve function. When i compute the command i seemingly dont get an answer to the system. Maple only prompts the command itself, can any of you locate my mistake or give any input on how to solve the issue. 

My code is as follows: 

restart;
r__C := 400;
r__D := 600;
r__E := 800;
a := 100;
p := 0.7;
q := Pi*a^2*p;
h__eq := 0.9*h__1*(E__1/E__2)^(1/3);
R__Ceq := sqrt(h__eq^2 + r__C^2);
R__C := sqrt(r__C^2 + h__1);
R__Deq := sqrt(h__eq^2 + r__D^2);
R__D := sqrt(r__D^2 + h__1);
R__Eeq := sqrt(h__eq^2 + r__E^2);
R__E := sqrt(r__C^2 + h__1);


eqC := 174.5*10^(-3) = q*(1 + nu)/(2*Pi*E__2*R__Ceq)*(2*(1 - nu) + h__eq^2/R__Ceq^2) + q*(1 + nu)/(2*Pi*E__1*r__C)*(2*(1 - nu) + 0) - q*(1 + nu)/(2*Pi*E__1*R__C)*(2*(1 - nu) + h__1^2/R__C^2);
eqD := 151.7*10^(-3) = q*(1 + nu)/(2*Pi*E__2*R__Deq)*(2*(1 - nu) + h__eq^2/R__Deq^2) + q*(1 + nu)/(2*Pi*E__1*r__D)*(2*(1 - nu) + 0) - q*(1 + nu)/(2*Pi*E__1*R__D)*(2*(1 - nu) + h__1^2/R__D^2);
eqE := 133.2*10^(-3) = q*(1 + nu)/(2*Pi*E__2*R__Eeq)*(2*(1 - nu) + h__eq^2/R__Eeq^2) + q*(1 + nu)/(2*Pi*E__1*r__E)*(2*(1 - nu) + 0) - q*(1 + nu)/(2*Pi*E__1*R__E)*(2*(1 - nu) + h__1^2/R__E^2);
eqA := 401.7*10^(-3) = 2*q*a*(-nu^2 + 1)*(sqrt(1 + (h__eq/a)^2) - h__eq/a)/E__2 + 2*(-nu^2 + 1)*q*a/E__1 - 2*q*a*(-nu^2 + 1)*(sqrt(1 + (h__1/a)^2) - h__1/a)/E__1;


fsolve({eqA, eqC, eqD, eqE}, {E__1, E__2, h__1, nu}, {E__1 = 0 .. 5000, E__2 = 0 .. 5000, h__1 = 0 .. 1000, nu = 0 .. 0.5});
 

 

Picture for refference: 

The attached worksheet shows a simple operator to calculaute the cartesian product of a set. The code is executed in both 1D and 2D notation in the worksheet.  The code is also placed in a code edit region and in the startup code area if the worksheet.  When entered into a worksheet is either notation, it produces an error message,  Without the local designation, it executes with a warning message. When entered into a code edit region it executes without error or warning.

I assume that this behavior reflects a limitation of the 2d notation or is there a workaround to the problem?

error4.mw

For instance, given nine integer x1, x2, …, x9 satisfying x1, x2, …, x9 ≥ -5 and x13x23+…+x93=0, the goal is to maximize x1 + x2 + … + x9. However, according to Optimization/Options,  is not accepted by the Optimization:-Maximize command. A probable method is applying floor into the optimization variables; unfortunately, I can only get: Error, (in Optimization:-NLPSolve) no improved point could be found

(*restart;*)
vars := [x || (1 .. 9)]:
Optimization:-Maximize(`?()`(`+`, floor~(expr)), [add(floor~(expr) ^~ 3) = 0, expr[] >=~ -5], initialpoint = (unapply~(expr) =~ rand(-5 .. 10))()); # Alternatives to exhaustive search?
Error, (in Optimization:-NLPSolve) no improved point could be found

Is there any workaround to solve this problem? 

Hafiz_basin_of_attraction_.mw

[moderator: see also this earlier Question]

First 17 18 19 20 21 22 23 Last Page 19 of 32