Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

I was told this problem is with Maple and the value of StartupWMClass.

Ubuntu 26.04. The maple Icons in the dock appears as the maple icon. When I click to start maple, the running icon appears as a gear. Hovering shows java-lang-Thread.

How do I fix this.

As an exercise to further familiarize myself with Maple, I would like to calculate the definite integral specified in the attached file. The integrand has an antiderivative, and a source lists the value of the integral as approximately 0.57... Based on the plot, this value is plausible according to a simple estimate (Pi/2 * 0.8 / 2). Following standard practice taught in school, I therefore calculated the difference between the values ​​of the antiderivative at the limits of integration. Surprisingly, the result is a complex number. What am I doing wrong? Did the internal Maple calculation switch to complex principal values?

testint5.mw

AI can generate mathematical answers remarkably quickly. But how do we know when an answer sounds right but isn't?

Consider this example.

Suppose we ask an AI to differentiate

[
f(x)=x^x.
]

A common mistake is to treat it like an ordinary power and answer

[
f'(x)=x,x^{x-1}=x^x.
]

Looks plausible. It’s also wrong.

Using logarithmic differentiation,

[
\ln f=x\ln x,
]

so

[
\frac{f'}{f}=\ln x+1,
]

and therefore

[
\boxed{f'(x)=x^x(\ln x+1)}.
]

This is where a mathematical tool such as Maple becomes useful. Instead of relying on whether an AI-generated explanation sounds convincing, we can ask Maple to perform the differentiation and verify the result.

The lesson isn't that AI can't do mathematics.

It's that AI and mathematical computation have different strengths.

AI can suggest an approach, explain the reasoning, and generate code. Maple can perform the symbolic computation and help us verify what the AI tells us.

So perhaps the better question isn't:

“Can AI do the math?”

It's:

“Can AI help us do better math when we have the tools to check it?”

I'm having a strange problem in Maple 2026. When I highlight a fraction to get Maple to display it as a percentage, it leaves the fraction unchanged. Is this a problem that others have encountered as well? And what can be done about it?

a2+b2+c2+1=k abca^2+b^2+c^2+1 = k\,abca2+b2+c2+1=kabc

has a solution in positive integers $a,b,c$. For that $k$, prove every solution has $a,b,c$ all odd, and that every solution can be reduced to $(1,1,1)$ by repeated moves $(a,b,c)\mapsto(a,b,4ab-c)$.

The uploaded worksheet contains a second order ode with initial conditions which elicits an error message.
How can this error be avoided?

Bobs_sliding.mw

Can the AI Assistant in the Maple 2026 GUI be configured to use Anthropic's Claude Max plans, local AIs (e.g., via LM Studio), or other providers?

I am only occasionally using Maple versions with the new ribon user interface and noticed about 2 weeks ago that I cannot interrupt for loops under these interfaces. For example this one

for i to 1000 do
    i^i;
end do

I re-run the code today (after installing windows updates) and could interrupt before the screen was filled with output but not after executing the code a second time (without restart).

Is that reproducible on other installations?

Are there other commands that cannot be interrupted? 
If that is known, are there workarounds?

Update:
I have restarted Maple and have two worksheets open with the same code. I can repeatedly interrupt in one worksheet but not in other

Could anyone tell me what type of matrix normalisation this is and it it built into Maple? I found this in a paper and Google AI said this is the process of normailsation being used.

restart

with(LinearAlgebra):

J:=Matrix([[ 1 , 0 , 0 ],
        [ 0 , 1 , 0 ],
        [ 0 , 0 , -1 ]]);

Matrix(3, 3, {(1, 1) = 1, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = 1, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = -1})

(1)

Matrix N has already been scaled, so the rows are of equal magnitude  x^2 + y^2 - z^2= k

N:=Matrix(3, 3, [[4, -3, 2], [-1/2*sqrt(70), -3/10*sqrt(70), 1/5*sqrt(70)], [1/11*sqrt(77), 6/11*sqrt(77), 2/11*sqrt(77)]])

Matrix(3, 3, {(1, 1) = 4, (1, 2) = -3, (1, 3) = 2, (2, 1) = -(1/2)*sqrt(70), (2, 2) = -(3/10)*sqrt(70), (2, 3) = (1/5)*sqrt(70), (3, 1) = (1/11)*sqrt(77), (3, 2) = (6/11)*sqrt(77), (3, 3) = (2/11)*sqrt(77)})

(2)

 

for i to 3 do
add(N[i,j]^2,j=1..2)-N[i,3]^2;
end do

21

 

21

 

21

(3)

Normalisation process to produce C

A:=N.J.N^%T

Matrix(3, 3, {(1, 1) = 21, (1, 2) = -(3/2)*sqrt(70), (1, 3) = -(18/11)*sqrt(77), (2, 1) = -(3/2)*sqrt(70), (2, 2) = 21, (2, 3) = -(27/110)*sqrt(70)*sqrt(77), (3, 1) = -(18/11)*sqrt(77), (3, 2) = -(27/110)*sqrt(70)*sqrt(77), (3, 3) = 21})

(4)

dA:=DiagonalMatrix(1/~(sqrt~(abs(Diagonal((A))))));

Matrix(3, 3, {(1, 1) = (1/21)*sqrt(21), (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = (1/21)*sqrt(21), (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = (1/21)*sqrt(21)})

(5)

C:=(dA.A.dA);

Matrix(3, 3, {(1, 1) = 1, (1, 2) = -(1/14)*sqrt(70), (1, 3) = -(6/77)*sqrt(77), (2, 1) = -(1/14)*sqrt(70), (2, 2) = 1, (2, 3) = -(9/770)*sqrt(70)*sqrt(77), (3, 1) = -(6/77)*sqrt(77), (3, 2) = -(9/770)*sqrt(70)*sqrt(77), (3, 3) = 1})

(6)

evalf(C)

Matrix(3, 3, {(1, 1) = 1., (1, 2) = -.5976143047, (1, 3) = -.6837634587, (2, 1) = -.5976143047, (2, 2) = 1., (2, 3) = -.8581163304, (3, 1) = -.6837634587, (3, 2) = -.8581163304, (3, 3) = 1.})

(7)
 

 

Download 2026-08-14_Q_What_Type_of_Matrix_Normalisation.mw

I notice that Maple transactions journal does not publish any new issue ever since March this year. Based on the previous recording it is supposed to publish issue each season. When is it going to promote a new issue? My research is supposed to publish there and I believe I have made some interesting progress and it is of interest to the community.

You are hosting a big party tonight and prepared 1000 bottles of wine. A spiteful neighbor sneaks in and poisons exactly one bottle. The poison is colorless, tasteless, and takes about an hour to take effect and kill. Your party also starts in an hour, and you don’t want to throw all the wine away.

You have 10 mice and time for only one round of tasting. In that round, a mouse can taste from any number of bottles. How can you identify that single poisoned bottle among 1000?

Pause here and try to solve the problem yourself!

An obvious solution might be to group the wine into 10 batches of 100 bottles and have each mouse drink from one batch. But if a mouse dies, you have only narrowed it down to 100 bottles, and there is no time for a second round. Whatever test you run, you only get one shot.

Ten mice. A thousand bottles. The problem sounds impossible – until you realize each mouse isn’t just a taster.

The exact idea that powers computers is also what solves our wine puzzle.

A 300-Year-Old Idea

Some background information before we solve the problem.

In 1703, Gottfried Leibniz published a paper describing how every number can be written using only two symbols: 0 and 1. To him, the concept felt almost divine – an entire universe created out of nothingness and unity. But for over two centuries, binary remained an idea trapped on paper.

Everything changed when a young engineer named Claude Shannon realized that 0 and 1 map perfectly onto the physical states of an electrical switch: off and on. That single insight laid the groundwork for digital circuits, eventually powering every smartphone, laptop, and text message on the planet.

Yet binary is more than just how machines store information. It is a way of extracting information.

0 and 1 not only reflect the underlying logic of switches, but they also correspond to every yes/no question you ask: “did this mouse die, or not?”. And 10 binary digits can cover 2¹⁰ = 1024 different possibilities.

1024 is more than 1000.

The Solution  

Step 1: Relabel the bottles in binary

Write each bottle’s number, 1 through 1000, as a 10-digit binary number, padding the front with 0s. For example, bottle 17 is 10001 in binary, so its label becomes 0000010001. Every bottle now carries a unique 10-digit barcode of 0s and 1s.

Step 2: Assign each mouse a digit

Line up the mice and assign each one a digit: mouse #1 owns the leftmost digit, mouse #10 the rightmost. Then, run the tasting by the simple rule of a mouse drinks from a bottle if and only if its digit in that bottle’s label is a 1.

For bottle 17, only mouse #6 and mouse #10 take a sip. No two bottles are sampled by the same combination of mice; each bottle’s binary label is its unique drinking pattern.

Step 3: Read the answer off the casualties

Wait an hour. Then, write a 1 in every position with a dead mouse and a 0 otherwise. The string you end up with is the binary label of the poisoned bottle.

One More Sip

Before you pop the corks, one last question: was the binary system essential here, or could we have used a different method?

Here’s a food for thought: suppose your neighbor used a cheaper poison that kicks in 30 minutes instead of an hour, now there is time for a second round of tasting.

Now each mouse has three possible outcomes instead of two: dies in round 1, dies in round 2, or survives. Binary is the wrong language here; you want base 3.

The scheme goes as follows. Label the bottles in base 3, give each mouse a digit position, and follow one rule: if digit 1, drink in round 1; if digit 2, drink in round 2; if digit 0, sit out. Each mouse’s fate is its digit on the poisoned bottle’s label.

The ternary system’s power grows exponentially. Ten mice can now handle 3¹⁰ = 59049 bottles – our 1000 can be covered by seven mice (3⁷ = 2187). Generalized, with r rounds, the whole construction runs in base r+1.

That is the lesson hidden in the wine cellar. The binary system is more than the foundation of our telecom network, it is also a way of thinking – a reminder that any question, no matter how large, can be answered by a patient sequence of yes and no. You walked into an impossible evening with ten mice and walked out with 999 bottles of perfectly good wine.

Enjoy the party.

Newbie here.  If L=[1/2, 1/3, 1/4], how can I display the unevaluated sum of the numerical terms in the list?  I don't want to use sigma notation. 

If L=[x,y,z], I can just do `+`(op(L)) to get x+y+z.  I can't make this work with numbers instead of variables.   Maple evaluates and gives me 13/12.  I want 1/2+1/3+1/4.

In late July, the International Congress on Mathematical Software (ICMS 2026) came to the University of Waterloo and Wilfrid Laurier University. Maplesoft had the privilege of sponsoring this year's event, and on the first evening of the conference we opened our Waterloo office for a reception, welcoming around 140 researchers, professors, students, and developers from around the world for an evening of food, demos, and good conversation. Among the many brilliant guests were the ICMS General Chair Bernard Mourrain and Local Organization Chairs Stephen M. Watt and Ilias S. Kotsireas.


About 30 of us pitched in to organize, demo, and host, turning our office into a packed social hub for the evening. Our CEO, Dr. Laurent Bernardin, opened the evening with some welcome remarks and a talk on math education in the age of AI, tying into the recent launch of the Math Success Platform - a new tool built on Maple to help educators understand where students are struggling and provide more targeted support.

I, alongside the other co-op students for this term, got the opportunity to volunteer at one of the demo booths, where we showed off the new AI Assistant and Document Import features in Maple 2026, as well as the Maple MCP Server. Two live examples in particular seemed to resonate quite well with our guests...

The first was a demonstration of the Document Import tool. We brought messy handwritten multivariable calculus notes, outlining limit definitions and squeeze theorem example problems, and scanned them directly into Maple. Within seconds, the handwriting was converted into a functional Maple worksheet, math and all, right down to preserving the hand-drawn graphs. The worksheet was ready to be edited and executed just like anything typed in natively. A skeptical guest even asked us to scan their research papers - written completely in German - just to see the import work in this case as well, and it did, intelligently creating a worksheet with collapsible sections for each individual topic. For a room full of people who spend their careers working with mathematical software, this feature got a reaction every single time.

The second was Maple's AI assistant, specifically its ability to generate and debug Maple code within the context of your workspace. We loaded a worksheet with a spherical coordinates problem - calculating the volume of the upper half of a sphere with radius 4 - and simply prompted the AI Assistant to create a 3D diagram with interactive sliders to help visualize the problem. Moments later, it had analyzed the sheet and written a working code block for generating a fully interactive 3D visualization, letting guests drag each slider and watch the diagram update in real time across the sphere. It turned an abstract triple integral into something you could physically manipulate and understand, which for a lot of students really helps make these topics click.

Working the demo booth was a rewarding experience for all of us co-op students, as researchers asked some tough, thought-provoking questions that pushed us to think on our feet and imagine new ways to use the very tools we were demonstrating.
Beyond the demos, it was also just a great chance to talk with inspiring figures in the world of mathematics - hearing what ambassadors are building with Maple day-to-day, swapping stories with both students and professors on their academic experiences, and getting a glimpse into just how wide and varied the math software community really is. It's not every day that I get to spend time chatting with the people actually shaping the field I'm studying.

Thank you to the ICMS for bringing the international math software community to our door. It made for one of the most memorable evenings of our time as Maplesoft co-op students!

For the purpose of practicing with Maple, I have worked on a definite integral in the attached file. I found it on the Internet. According to a side calculation, it can only be calculated using famous special functions or series expansions. That is why I am only interested in the numerical evaluation here. According to auxiliary calculations, it can only be computed using famous special functions or a series expansion. It is known that the series expansion of the antiderivative converges very rapidly. Therefore, for comparison purposes, I calculated the values ​​for integration limits of 10 and 100 instead of infinity. In the first graph, the two result curves appear to coincide perfectly. Is there a way to zoom in locally - like using a magnifying glass - to make the difference in the ordinate values ​​visible?

restart

int(sinh((Pi-a)*x)/(cosh(Pi*x)*sinh(a*x)), x = -100 .. 100)

int(sinh((Pi-a)*x)/(cosh(Pi*x)*sinh(a*x)), x = -100 .. 100)

(1)

plot([int(sinh((Pi-a)*x)/(cosh(Pi*x)*sinh(a*x)), x = -100 .. 100), int(sinh((Pi-a)*x)/(cosh(Pi*x)*sinh(a*x)), x = -10 .. 10)], a = 0 .. 3.2, y = 0 .. 100)

 

plot(int(sinh((Pi-a)*x)/(cosh(Pi*x)*sinh(a*x)), x = -10 .. 10), a = 0 .. 3.2, y = 0 .. 100)

 

NULL

Download testint3.mw

Hello,

I found this sample code that determine the time to do matrix multiplications using cpus and gpus. I was surprised that the speedup factor was less than one.  I also did a similar speed test using python pytorch code on the same computer. The speedup factor was remarkable. Please find my mistakes, thanks.

MAPLE CODE:

kernelopts(version);
with(LinearAlgebra);
with(CUDA);
n := 4000;
M1 := RandomMatrix(n, n, datatype = float[8]);
M2 := RandomMatrix(n, n, datatype = float[8]);
printf("CUDA enabled? %a\n", IsEnabled());
tNoCUDA := time[real](M1 . M2);
printf("Time without CUDA: %.3f seconds\n", tNoCUDA);
prevSetting := Enable(true);
printf("Previous CUDA setting: %a\n", prevSetting);
printf("CUDA enabled now? %a\n", IsEnabled());
tCUDA := time[real](M1 . M2);
printf("Time with CUDA: %.3f seconds\n", tCUDA);
printf("Speedup factor: %.2f\n", evalf(tNoCUDA/tCUDA));
props := Properties();
printf("CUDA Device Properties:\n");
props;
Enable(false);
printf("CUDA enabled after disabling? %a\n", IsEnabled());

 

RESULTS:

  Maple 2026.0, X86 64 WINDOWS, Mar 05 2026, Build ID 2001916

CUDA enabled? false
Time without CUDA: 0.288 seconds
Previous CUDA setting: false
CUDA enabled now? true
Time with CUDA: 0.439 seconds
Speedup factor: 0.66
CUDA Device Properties:

[TABLE(["Clock Rate" = 2692000, "Resisters Per Block" = 65536, 

  "ID" = 0, "Texture Alignment" = 512, 

  "Max Grid Size" = [2147483647, 65535, 65535], 

  "Memory Pitch" = 2147483647, "Major" = 12, 

  "MultiProcessor Count" = 36, "Shared Memory Per Block" = 49152, 

  "Minor" = 0, "Name" = "NVIDIA GeForce RTX 5060 Ti", 

  "Max Threads Dimensions" = [1024, 1024, 64], "Warp Size" = 32, 

  "Total Global Memory" = 4294967295, 

  "Max Threads Per Block" = 1024, "Device Overlap" = 1, 

  "Total Constant Memory" = 65536, 

  "Kernel Exec Timeout Enabled" = true])]


CUDA enabled after disabling? false
 

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