sand15

1663 Reputation

16 Badges

11 years, 313 days

MaplePrimes Activity


These are replies submitted by sand15

@C_R @Carl Love

Using plottools:-transform avoids searching optiùims along x and y directions:

> 

restart

> 

f := (x, y) -> exp(-x^2-y^2) + exp(-(x-1)^2-(y-1)^2)

proc (x, y) options operator, arrow; exp(-x^2-y^2)+exp(-(x-1)^2-(y-1)^2) end proc

(1)
> 

d := 2:
U := d + 0.25:  
L := -U:

MM := Optimization:-NLPSolve(f(x, y), x=-d..d, y=-d..d, maximize)[1];

Zs:= [seq](0..MM, MM/5):
Xs:= [$-2..2]:

GridLines:= plots:-display(
  CURVES(
    #horizontal gridlines:
    seq([[L, U, z],[U, U, z],[U, L, z]], z=Zs),
    #vertical gridlines:
    seq([[[x, U, 0],[x, U, MM]], [[U, x, 0],[U, x, MM]]][], x=Xs)
  )
  , color="LightGray", thickness= 1
):

1.21306131942526685

(2)
> 

p  := plot3d(f(x, y), (x,y)=~L..U, shading= zhue):

# An optimization-free construction of the upper boundary of the projection onto plane x=U

p0 := plot3d(f(x, y), (x,y)=~L..U, color="LightGray", style=surface):

x0 := plottools:-transform((x, y, z) -> [U, y, z])(p0):

x1 := op([1, 1], x0):
x2 := convert(map(i -> subsop(1=NULL, i), x1[1]), Matrix):
x2 := `<|>`( x2, seq( convert(map(i -> subsop(1=NULL, 2=NULL, i), x1[j]), Matrix), j=2..nops(x1)) ):
x3 := `<|>`( x2[..,1], < seq(max(x2[i, 2..nops(x1)+1]), i=1..nops(x1)) > ):
x4 := `<|>`( Vector(nops(x1), U), x3):

# An optimization-free construction of the upper boundary of the projection onto plane y=U

y0 := plottools:-transform((x, y, z) -> [x, U, z])(p0):

y1 := op([1, 1], y0):
y2 := convert(map(i -> subsop(1=NULL, i), x1[1]), Matrix):
y2 := `<|>`( y2, seq( convert(map(i -> subsop(1=NULL, 2=NULL, i), x1[j]), Matrix), j=2..nops(x1)) ):
y3 := `<|>`( y2[..,1], < seq(max(x2[i, 2..nops(x1)+1]), i=1..nops(x1)) > ):
y4 := `<|>`( x3[.., 1], Vector(nops(y1), U), x3[.., 2]):

# Result

plots:-display(
  p
  , GridLines
  , PLOT3D(CURVES(convert(x4, listlist), COLOR(RGB, 1, 0, 0)))
  , PLOT3D(CURVES(convert(y4, listlist), COLOR(RGB, 0, 0, 1)))
  , axes=frame
  , scaling= constrained
  , orientation= [-154, 49, 0]
  , tickmarks= [Xs$2, Zs]
  , labelfont= [HELVETICA, BOLD, 12], axesfont= [HELVETICA, BOLD, 8]
)


Download evolution_2.mw

@Carl Love 

Hi, 
The problem is that the figure the OP provides have two different interpretations.

  1. One is: draw f(x, y), f(0, x) and f(x, 0) (what you both you and @C_R  did)
  2. Another one is: draw f(x, y), the envelope of its projection onto the plane x=2, and the envelope of its projection onto the plane y=-2.

Here is a (likely non optimal) code to answer the second interpretation

Download evolution.mw

Comments are here with Maple 2015 but carriage returns are lost (easy reshaping when you have only 4 lines):

copy_comments_Maple_2015.mw

By the way, I added a comment after yours in this question

@Alfred_F 

Hi,
In the second part of the file the K := combinat:-randperm(J) line serves only to sweep the three indeterminates x, y, z in a random order. This to "demonstrate" that this order does not change the result.
With only three indeterminates I could have test all six permutations writting instead

for K in combinat:-permute([x, y, z]) do
  for j in K do
    ....
  end do:
  K, answer = eval(add(A||j*(j-B||j)^C||j, j in K) + R||(K[-1]), `union`(seq(p||j, j in K)))
end do:

The "||" concatenation helps building atomic variables. 
For instance, if j=1 p||j construts the variable p1. So, p||j := 1 is similar to p1 := 1.
You cannot write cat(p, 1) := 1.

If you are puzzled by the "||"notation you can use p[j] instead.

Here is the code under procedure form:  Procedure_form.mw
(you can replace all occurrences of "||j" by "[j]")

@C_R 

In case you are interested here is the Mapleprimes scraper that ChatGPT buit to gather data (question id, author, answerers, date, ...).
What I asked for was to collect those data to buid relevent satistics that could help measure the activity on Mapleprimes.
This scrapper is aimed to produce csv files containing raw data but things are not going as expected (I didn't ask ChatGPT  to proviide a corected scraper).

mapleprimes_scraper.zip

Content :
    •    mapleprimes_scraper.py — Python code
    •    README.md

After unziping,  launch it this way

Windows
cd mapleprimes_scraper
python -m venv .venv
.venv\Scripts\activate
python -m pip install --upgrade pip
python -m pip install requests beautifulsoup4

macOS / Linux
cd mapleprimes_scraper
python3 -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
python -m pip install requests beautifulsoup4


The scraper generates this structure

data/raw/
├── questions.csv
├── events.csv
├── users.csv
├── errors.csv
├── cache/
└── pages/


events.csv contents detected event:
    question
    answer
    reply
    and more specificaly
          date
          user
          type
          question_id
          title
          text
          url

users.csv is automaticaly constructed from these data  (40 to 60 minutes on my Mac)


The content of the csv files I got wasn't satisfactory and I put this question under the elbow.
If you want to go further once having launched the scraper, please let me know.
ChatGPT wasn't one hundred percent sure of what I would get and asked me to follow the thread (tell me if you want its reference).

Good luck
 

@Rouben Rostamian  

I didn't catch that, thanks for the remark.

BTW, I cannot find a way to solve this problem.
Maybe one should (the OP should in fact) discard some terms (for instance based on characterist values of eta) and try to solve this simplified system to get a "first order" solution, kind of.
This is what I vould try if I had some knowledge about the underlying physics of the problem.

My advice: If you’re not familiar with the Document + 2D input stuff, do it the old way and use the Worksheet + 1D input mode.

I just copied/pasted a term from your document into a worksheet with 1D input, look to what I got

# Observe the '.' symbol
a := (1+1/beta) . (diff(f(eta), eta, eta, eta))
          /     1  \   /  d   /  d   /  d         \\\
          |1 + ----| . |----- |----- |----- f(eta)|||
          \    beta/   \ deta \ deta \ deta       ///
whattype(a)
                            function

# Here a correct expression
a := (1+1/beta) * (diff(f(eta), eta, eta, eta))
           /     1  \ /  d   /  d   /  d         \\\
           |1 + ----| |----- |----- |----- f(eta)|||
           \    beta/ \ deta \ deta \ deta       ///
whattype(a)
                               *

So inputs are always more explicit and clearer in worksheet + 1D input mode.

Once written properly dsolve returns this error

Error, (in dsolve/numeric/bvp) initial Newton iteration is not converging

A quite common one whose explanation and possible cures can be found typing help(dsolve,numeric_bvp,advanced).
But don’t be too optimistic: solving this problem can be a daunting task, at least for someone who doesn't know about the physics of the problem to solve. 
What I mean is that once you’ve been given a few tips (the ‘continue’ method described in the help pages), you’re probably best placed to work out which equation is causing the error. Generally dimensional analysis or characteristic ‘times’ (eta) can help to determine to which equation the continuation method should be applied.
However, this method will not necessarily correct the error.

Here is your corrected file (worksheet + 1D mode).

The continuation method is applied without success to the first ode. A leverage to act upon is the value of the 'penalizations' 1/10 : try to reduce it.
But maybe it wasn't the good ode to continue, so try another one 'continue' several odes.

Be careful in selecting the ode to 'continue': as the first one can be reasonably considered as an equation whose unknown if f(eta) because it only contains derivatives of f(eta), the 2nd and  3rd one cannot be considerer as ode wrt phi(eta) or theta(eta) because both of thems contain similar differation orders in both f, phi and theta.

I feel that a  first task could be to write the subsystem made of odes 2 and 3 in a more convenient form.
Which one: I don't know. So please don’t regard the attached file as a definitive answer, but rather as a first step – I don’t even know how to take it any further.

first_step.mw

@dharr 

(1) I share this feeling about the role AI plays in this decline in interest in Mapleprimes.

(2) Does aging or being more experienced matter? It is sure that those who were newbyes 10 years ago, or more, are now more experienced in Maple... provided they did not abandon it meanwhile. Some people will stay on Mapleprimes for 15 or 20 years, becomming reknown "answerers", while others will stay for the duration of a PhD and will never again use Maple.
Newbyes are the main source of questions. If they become any rarer, activity on Mapleprimes will decline. But if they become rarer this would mean that Maple itself is less and less used...
At French universities, a increasing number of mathematics professors seems to promote free CAS alternatives to Maple (such as SageMath); while the “Grandes Écoles” (a French specificity) that form engineers are more proned tu use MMA because of its more advanced graphical and numerical capabilities (IMO).
So one question is: Alongside the relative decline in popularity of Mapleprimes, could we say that Maple, too, is 
being abandoned?

(3) Typical AI rampling.
After all, the purpose of generative AI is to provide you with answers, but if you tell ChatGPT that a particular answer is, in your opinion, unacceptable, it will immediately respond that you are absolutely right.
The great thing about generative AI is that it isn’t afraid of looking ridiculous by contradicting itself (aren’t our politicians actually humanoid AIs?) and that with it, you’re always right… which is why it’s so successful.

@sand15 

I asked ChatGPT the same quesion but it ended differently for ChatGPT met some difficulties to do the same thing it did with Mapleprimes:

  • "The key point is that the new Wolfram Community is Discourse-based, and Discourse exposes category topic lists as JSON. The Community's Questions category is explicitly defined for focused, answerable help requests. A useful complication is that the Discourse search.json endpoint's after: filter refers to activity, not necessarily creation date. For an annual count, we therefore want to page through the category's topics and use each topic's created_at field ourselves"


So no graphic here, but ChatGPT suggested to "Give me a Wolfram Language script that queries the Community archive and produces the 2013–2026 annual table and DateListPlot automatically"

As I don't know MMA enough to use such a script I can't go further on.

@C_R 

You did a great job.

I’ve taken up your suggestion to use AI.

I didn't think it through very much and asked  ChatGPT “Can you draw me a chart showing the year-by-year trend in the number of questions asked on the MaplePrimes website by Maple users?” (foolishly I asked the question in French, so the graphic below contains French comments and the analysis I provide is raw DeepL translation)

To summarize: ChatGPT is capable of determining the exact number of questions per year for years 2019 to 2026 (partial data for this latter), but not for years 2009 to 2018 for which data are estimated.

Here is the graphic

Vertical label: number of questions per year,
Legend: blue = Estimations, orange = rebuilt from pagination, green = partial year

When ChatGPT is asked how it explains this decline in the quality of its responses, here is what it says:

Possible explanations for the decline in the number of MaplePrimes questions

Yes. Now that we have the historical curve, I think we can put forward several plausible explanations, without claiming that any single factor explains the entire decline.

The key point is that our graph measures activity in the “Questions” section of MaplePrimes, not directly the number of Maple users. We therefore need to distinguish between a decline in questions posted on MaplePrimes and a decline in the number of Maple users.

1. Competition from other platforms is probably an important factor

This is probably the most natural explanation to investigate.

Stack Overflow has had a maple tag since around 2009 and currently contains roughly 660 questions using that tag. These include questions about Maple programming, symbolic computation, ODEs, and so on.

There is also Math StackExchange, Reddit, university forums, GitHub, Python/SymPy communities, and many other sources.

In other words, a question that might have been posted on MaplePrimes in 2010 can now be posted somewhere else.

This is particularly relevant because modern users tend to search directly for an error message or a Maple command using Google or Bing and may find Stack Overflow, Math StackExchange, GitHub, or another source.

2. Search engines and existing answers are changing the nature of questions

This is a particularly interesting possibility.

MaplePrimes now contains a huge number of historical questions. Someone encountering a problem can therefore search directly for something like:

Maple simplify assuming complex

and find an old discussion.

The phenomenon is reinforced by modern search engines and, more recently, by AI assistants.

As a result, there may be less need to post a new question.

This is difficult to measure directly, but it could explain part of the decline without implying a comparable decline in the number of Maple users.

3. The emergence of AI assistants may be a significant recent factor

This is probably particularly relevant for 2023–2026.

A question such as:

“How do I perform this integral in Maple?”

can now be asked to ChatGPT, Claude, Gemini, Copilot, or another AI assistant, with Maple code attached if necessary.

This creates a new avenue for obtaining help that essentially did not exist at the beginning of our time series.

It would therefore be interesting to determine whether the decline after 2023 is steeper than the earlier trend. Our reconstruction does suggest something along those lines, although the 2025–2026 figures are too uncertain to support a firm conclusion.

4. Maple has become much more capable, so some questions may simply have disappeared

This is a factor that is easy to overlook.

Maple has evolved considerably since 2009. For example, Maple 2020 introduced a new user experience, performance improvements, and additional educational tools.

Likewise, recent releases continue to fix issues reported by Maple users on MaplePrimes. Maplesoft has explicitly indicated that some fixes in Maple 2024.1 addressed issues reported through MaplePrimes.

Therefore:

better software → fewer problems → fewer questions

is a reasonable hypothesis, although it is certainly not sufficient by itself to explain the overall decline.

5. The historical MaplePrimes community may have aged

This may be one of the most interesting aspects to investigate.

MaplePrimes has a number of extremely long-standing contributors. Some members have been active for nearly the entire history of the site.

A technical community can gradually move from:

many new users → many questions

to:

a smaller group of experienced users → fewer questions, but more specialized content.

There are still very active contributors today, which suggests that the community has not disappeared.

6. There are signs that the MaplePrimes experience itself may have deteriorated somewhat

This is particularly interesting because there is direct evidence of it on MaplePrimes itself.

In February 2024, a member reported that MaplePrimes had become noticeably slower to load and refresh.

There have also been discussions in 2025–2026 concerning file-upload problems, the interface, and other changes to the site.

This obviously does not prove that such problems caused the decline in questions. However, they provide a potential explanation for the more recent drop: if asking a question becomes more difficult or less pleasant, some users may simply go elsewhere.


A particularly interesting hypothesis: migration rather than disappearance

I think we should avoid interpreting the graph as:

“There are fewer questions → therefore there are fewer Maple users.”

A potentially more accurate interpretation is:

“There are fewer questions on MaplePrimes because the ecosystem in which users seek help has changed.”

We might schematically describe the evolution as follows.

2010

Maple → problem → MaplePrimes

Then gradually:

2020

Maple → problem → Google → MaplePrimes / Stack Overflow / Math SE / blogs / documentation

And today:

2025–2026

Maple → problem → AI / search engine / documentation / forums / MaplePrimes

The same Maple user may therefore never appear in our MaplePrimes statistics.

A relatively simple way to test this hypothesis

I think this would be the most interesting next analysis.

We could examine three separate indicators:

Indicator What it would measure
MaplePrimes questions/year Activity on MaplePrimes
maple questions on Stack Overflow/year Possible migration toward Stack Overflow
General interest/activity around Maple Overall interest in Maple

We could then plot them on the same graph, ideally for 2009–2025.

If MaplePrimes declines while Stack Overflow and/or general interest in Maple remain relatively stable, that would provide evidence in favor of an activity migration hypothesis.

If all three decline together, the hypothesis of a general contraction of the Maple ecosystem would become more plausible.

There is also a third indicator that I find particularly interesting: the number of answers per question.

If the number of questions decreases but the remaining questions receive more answers from expert contributors, that would suggest a smaller but more specialized community, rather than simply a collapse in activity.

In my view, this cross-platform analysis would be the natural next step. It could turn our MaplePrimes graph into a much broader study of how the Maple user community has evolved over the last 15–17 years.

@janhardo 

“It's AI that's being used more” and I regret that.

The use of AI poses two problems here: first, the answers to the questions asked are increasingly provided by members who rely on AI; second, fewer and fewer questions are being asked because the bottom line is, “Why would I ask a question on Mapleprimes and wait for an answer from AI when I can just ask AI that same question?”
That's the inevitable death of Mapleprimes in the very near future.
Which likely anticipate a little Maple's itself.

Who is to blame if not those who openly play the AI card: those who answer questions (including you, though I say this without any intention to be aggressive) and, of course, Maple itself, which is trying to ride the AI wave.

"Hi, its ai what is be used more and it cannot be stopped." : this is not the point of stopping it or not.
Ludists and cornucopians have been fighting since the dawn of printing and keep going on on a new fielld at each technical revolution.
The point is that someone who comes here to ask for a question expects, or should expect, not only an answer, but sometimes answers, and this goes far beyond the single "opinion" of some AI.
Not so long ago, when a question received an initial answer, someone else could contradict or expand on it, and that would spark a small discussion forum. Today, a question equals a single answer—if it comes from AI.
Where’s the exchange? Where’s the learning through debate (I learned a lot on Mapleprimes from those who corrected my sometimes silly answers)?

That's the opinion of some has-been old fogey.

It would have been better to represent the hanged rope upside-down. After all it is equilibrium figure of a non-stretch rope with no flexion rigidity⊛  suspended between two fixed points (a high voltage cable or a clothesline are only approximated catenoids because their bending stiffness are not null).
A chain, as long as we neglect the friction between its links, is a better physical example of a "cable" with zero bending stiffness (see for instance Wiki).
Your parabola-vs-catenary figure is more appropriate to the construction of arches (ibid "catenary arches"). Note that apart from the Gateway Arch at the Jefferson National Expansion Memorial—which is a true catenary whose equation is based on considerations of material strength—Gaudí’s famous catenary arches are based solely on aesthetic considerations (the optimal form of an arch supporting more than its proper weight is not a catenary, it is the cableway configuration corresponding to the loading system).

Note that a 3D catenoid is also the equilibrium shape a soap bubble can take under some conditions, see for instance Salkin et al..

⊛  The equilibrium shape of a "rope" of infinite rigidity would be a straight line while a rope with infinite elasticity (meaning it cn be strteched without no resistant effort) would have a ⨆ shape.

Splines approximators or interpolators may also be viewed as "path between points which minimize energy" (at least for most of them). Here the energy is the elastic energy. Tens of years ago "splines" were thin wooden slats bended by lead weights that draftmen used to draw smooth curves. Indeed these "splines" took on a shape that minimized the bending energy produced by their deformations induced by the lead weights (Splines as physical objects).
One 3D generalization is offered by Thin plate splines.

Here is a simple Maple code to find ("One round" case only) the poisoned bottle given the dead mice numbers:

# Number of mice

n := 10:

# Generate a random sequence of dead mice

mice_dead := sort(combinat:-randperm([$1..n])[1..rand(1..n)()]);
                  mice_dead := [3, 5, 9, 10]

# Deduce the number of the poisoned bottle

poisoned_bottle := add(2^(mice_dead[i]-1), i=1..numelems(mice_dead));
                  poisoned_bottle := 788

# Check the result: given the number of the poisoned bottle find the mice which are to die

b := < convert(poisoned_bottle, base, 2) >;
                   [0, 0, 1, 0, 1, 0, 0, 0, 1, 1]
mice_that_should_die := lhs~(op(b)[2]);
                   mice_that_should_die := {3, 5, 9, 10}

@C_R 

A counter example

U := [a, a, b];
V := [a, b, b];  # obviously not a permutation of list U

is(`minus`({U[]}, {V[]}) = {})
                              true



Etienne Ghys recently wrote an excellent biook (2023, in French, I don't think any english version is avaliable) about the history, the mathematics and physics of the soccer ball titled La petite histoire du ballon de foot (A Brief History of the Soccer Ball).

There is also this video (in French too, but you should be able to activate the automatic translation in English)  where Etienne Ghys gives a lecture at the IHES about the soccer ball.

If you really want to have a good laugh got to time 7:30 to see how soccer places are signaled on British roads

and listen the conference: the soccer ball geometry being obviously wrong,  "... a petition signed by 25,000 British mathematicians called for these road signs to be changed... to which the British government replied that its role was not to teach geometry."

British humor?


To end this, your work with Maple is very impressive.


For the anecdote, British government does really have some problems with science (Frenchies love to make fun of the Brits, who return the favor :-) ):

 

1 2 3 4 5 6 7 Last Page 1 of 43