140 Reputation

2 Badges

5 years, 217 days

MaplePrimes Activity

These are replies submitted by Annonymouse

@Kitonum Thats often true, but not always true, and generally unhelpful. Consider the function:

f(x,y)=x^2 +y^2;

the level set for  f(x,y)=0 is a  point
whereas the other level sets are all closed curves circles- by contrast


has all of its level sets as curves or sets of curves; none of which  are closed.

These two cases illustrate thaty we can understand the shape of functions by understanding their level sets.

If someone were to ask about finding the level sets of a scalar function from R^2 it would therefore be both inaccurate and unhelpful to say that they were all 1 dimensional surfaces.

Perhaps a better way of visualising it would be as a set of triangles in 2d space; with the x coordinates of each triangle corner being the dependant variables, and the corresponding y co ordinates being the independant variables.

@Annonymouse is there a way of making the explore polts bigger?

@acer Thats really helpful

@vv I'm just rewriting what I think you've said, so you can confirm or correct it (notably I'm not used to this usage of the word primative).

The  procedure  Basis  in  the  Groebner  package  computes  the  reduced Groebner  basis,  but after  this  computation  it  displays the polynomials without dividing through by the leading term of each.

So, for
B := Basis(J,T) ;  
the "true"  reduced Groebner basis is
B/~LeadingCoefficient(B, T);


Maple have confirmed it creates a reduced GB, and are updating the help page

I've just Emailed Maplesoft about this - when I have a response I will confirm here whether Basis produces reduced GBs

based on @tomleslie s answer to a related question, I've found a work around:

allvalues(eval(problem expression)); gives the roots that RootOf represents, and then the problem can be compared for each case

@tomleslie Well spotted, I've updated the worksheet. Thanks for taking a look


After playing around, i can now see how my actions affect the discrepansy in timings. If I call the curry function that graphs the dimension of the solutions, it makes it take dramatically longer for the function that shows the timing of the previous one - I think I'll try and make a worksheet demonstrating this, and make a new question, as whilst it's related to this - its a seperate issue.  


This time I've been able to run the same program in under 80s (with no changes to the worksheet) each time I had run the program I had restarted the computer beforehand. This highlights the fact that maple runtimes are generally not what i expect!

Using the timer program as the template, I'll try and make a RAM measurement program.


Previously I've hav memory issues when using curry (GTS2 is a memory heavy program, although I would expect running it even with (Na,Nd)=(5,4) to take less than a quarter of an hour and less than 0.5 of a GB of ram).

Suprisingly when i added a timer to it, it seems to have got dramatically slower, and more memory hungry:

GTS2timer := proc (H, F, Na, Nd)
local st;
st := time();
GTS2(H, F, Na, Nd);
time()-st end proc

Sols3 := proc (H::algebraic, F::(list(algebraic)), i::posint, j::posint) options operator, arrow;
GTS2timer(H, F, i, j) end proc;
n, m := 5, 4;
timeMatrix := Matrix(n, m, curry(Sols3, H, F))

I ran it whilst out last night for four hours to come home to find maple giving a "memory allocation error", i left it running last night, and woke up to find a "kernel connection error"

Any thoughts?

@mmcdara After reading around I can't see how to use these functions together with curry. That is I can see how to use them to time/record ram usage of curry- or to time the GTS2 function that curry calls multiple times, but I can't see how to record this information.

My overall goal is to be able to graph RAM usage/timing for calculating each element of the matrix.

@Carl Love I'm sorry to bother you, but you seem to be the most knowledgable on curry. Is there a way of modifying, this code so that it outputs the matix it already does, as well as the timings and RAM usage of GTS2?



@vv  I used the other answer because I understood their solution, but I am always interested in learining more; if you have a moment could you explain how your solution works?

I've tried to reverse engineer some of @Carl Love s code from a similar question, but its a little beyond me, here is my attempt:

TypeTools:-AddType('StateVariable', proc (v) options operator, arrow; v::'indexed' and (op(0, v))::{('identical')('x'), 'Variable'} end proc); select(proc (s) options operator, arrow; andmap(hastype, remove(evalb, s), StateVariable) end proc, S)

So far i get the error "Error, selecting function must return true or false".

1 2 3 4 Page 1 of 4