Maple 2026 Questions and Posts

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

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!

I am trying to add this to my type list in a package, but cannot get it to work.

TypeTools:-AddType(_L3DP, set(satisfies(s -> type(s, [algebraic $ 3])),'Vector[column](3, algebraic)'));

when I test with this I get an error.

 type({[7,8,9],<1,2,3>},:-_L3DP);
Error, testing against an invalid type

or this 

type({[7,8,9],<1,2,3>},set(satisfies(s -> type(s, [algebraic $ 3])),'Vector[column](3, algebraic)'));
Error, testing against an invalid type

This the part of a procedure I have for removing common factors from matrices and vectors used in a projective geometry setting.
How can a get it to work so it handles polynomial denominators? Such as 

x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2

restart

 

ReduceM:= proc(C::{Matrix, :-_ProjM3})
            local i, tgdc, dnm, V1, Ml, SV1, ns, M, r;
            option overload;
            if C::'Matrix' then
                M := LinearAlgebra:-Copy(C);
            elif C::{':-_ProjM3'} then
                M := LinearAlgebra:-Copy(C[1]);
            end if;
            V1 := convert(M, list);
            SV1 := convert(M, set) minus {0};
            ns := nops(SV1);
            dnm := frontend(lcm, [seq(denom(SV1[i]), i = 1 .. ns)]);
            Ml := simplify(dnm *~ M);
            V1 := convert(Ml, list);
            tgdc := SV1[1];
            if tgdc = 0 then
                tgdc := 1;
            end if;
            for i from 2 to ns do
                tgdc := frontend(gcd, [tgdc, SV1[i]]);
            end do;
            r := `if`(C::'Matrix', simplify(factor~(Ml /~ tgdc)),
                <[simplify(factor~(Ml /~ tgdc))]>);
            return r;
        end proc:

 

 

A:=Matrix(3, 3, [[(x__2 - x__1)*(-y__2 + y__3) + (-y__1 + y__2)*(-x__3 + x__2), (x__2 - x__1)*(-y__1 + y__3) + (-y__1 + y__2)*(-x__3 + x__1), (x__2 - x__1)*(-y__1 + y__2) + (-y__1 + y__2)*(-x__2 + x__1)], [(x__3 - x__1)*(-y__2 + y__3) + (-y__1 + y__3)*(-x__3 + x__2), (x__3 - x__1)*(-y__1 + y__3) + (-y__1 + y__3)*(-x__3 + x__1), (x__3 - x__1)*(-y__1 + y__2) + (-y__1 + y__3)*(-x__2 + x__1)], [x__1*(-y__2 + y__3) + y__1*(-x__3 + x__2) - x__2*y__3 + x__3*y__2, (-y__1 + y__3)*x__1 + y__1*(-x__3 + x__1) - x__1*y__3 + x__3*y__1, (-y__1 + y__2)*x__1 + y__1*(-x__2 + x__1) - x__1*y__2 + x__2*y__1]])

Matrix(3, 3, {(1, 1) = (x__2-x__1)*(-y__2+y__3)+(-y__1+y__2)*(-x__3+x__2), (1, 2) = (x__2-x__1)*(-y__1+y__3)+(-y__1+y__2)*(-x__3+x__1), (1, 3) = (x__2-x__1)*(-y__1+y__2)+(-y__1+y__2)*(-x__2+x__1), (2, 1) = (x__3-x__1)*(-y__2+y__3)+(-y__1+y__3)*(-x__3+x__2), (2, 2) = (x__3-x__1)*(-y__1+y__3)+(-y__1+y__3)*(-x__3+x__1), (2, 3) = (x__3-x__1)*(-y__1+y__2)+(-y__1+y__3)*(-x__2+x__1), (3, 1) = x__1*(-y__2+y__3)+y__1*(-x__3+x__2)-x__2*y__3+x__3*y__2, (3, 2) = (-y__1+y__3)*x__1+y__1*(-x__3+x__1)-x__1*y__3+x__3*y__1, (3, 3) = (-y__1+y__2)*x__1+y__1*(-x__2+x__1)-x__1*y__2+x__2*y__1})

(1)

ReduceM(A)

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

(2)

B:=Matrix(3, 3, [[-(y__1 - y__3)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) + (y__1 - y__2)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), -(y__1 - y__3)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), -(y__1 - y__2)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2)], [(-x__3 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) - (-x__2 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), (-x__3 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), (-x__2 + x__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2)], [-(x__1*y__3 - x__3*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) + (x__1*y__2 - x__2*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2) - 1, -(x__1*y__3 - x__3*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2), -(x__1*y__2 - x__2*y__1)/(x__1*y__2 - x__1*y__3 - x__2*y__1 + x__2*y__3 + x__3*y__1 - x__3*y__2)]])

Matrix(3, 3, {(1, 1) = -(y__1-y__3)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(y__1-y__2)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (1, 2) = -(y__1-y__3)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (1, 3) = -(y__1-y__2)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (2, 1) = (-x__3+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-(-x__2+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (2, 2) = (-x__3+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (2, 3) = (-x__2+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (3, 1) = -(x__1*y__3-x__3*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(x__1*y__2-x__2*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-1, (3, 2) = -(x__1*y__3-x__3*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2), (3, 3) = -(x__1*y__2-x__2*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)})

(3)

ReduceM(B)

Error, (in gcd/Freeze) arguments should be polynomials

 

B*denom(B[1,1])

Matrix(3, 3, {(1, 1) = (x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)*(-(y__1-y__3)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(y__1-y__2)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)), (1, 2) = -y__1+y__3, (1, 3) = -y__1+y__2, (2, 1) = (x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)*((-x__3+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-(-x__2+x__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)), (2, 2) = -x__3+x__1, (2, 3) = -x__2+x__1, (3, 1) = (x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)*(-(x__1*y__3-x__3*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)+(x__1*y__2-x__2*y__1)/(x__1*y__2-x__1*y__3-x__2*y__1+x__2*y__3+x__3*y__1-x__3*y__2)-1), (3, 2) = -x__1*y__3+x__3*y__1, (3, 3) = -x__1*y__2+x__2*y__1})

(4)

simplify( (4) );

Matrix(3, 3, {(1, 1) = -y__2+y__3, (1, 2) = -y__1+y__3, (1, 3) = -y__1+y__2, (2, 1) = -x__3+x__2, (2, 2) = -x__3+x__1, (2, 3) = -x__2+x__1, (3, 1) = -x__2*y__3+x__3*y__2, (3, 2) = -x__1*y__3+x__3*y__1, (3, 3) = -x__1*y__2+x__2*y__1})

(5)
 

 

Download 2026-08-03_Q_Remove_Common_Factors_from_Matrix.mw

Does GuessRecurrence require at least 7 terms in its input list?

For a numericial integration I want to check if all physical parameters are given in SI base units (before stripping of the units for the integration). Right now I am doing this

restart

Parameters

H = 0.1e-1*Unit('m'), R = 0.6e-2*Unit('m'), r_sub = 0.3e-2*Unit('m'), k = .540*Unit('W'/('m'*'K')), rho = 1060.0*Unit('kg'/'m'^3), Cp = 3745*Unit('J'/('kg'*'K')), Q_flux = 5000*Unit('W'/'m'^2), T_amb = 0*Unit('K'), Nz = 20, Nr = 20, t_final = 30*Unit('s'), t_step = Unit('s'), test_1 = Unit('kW'), test_2 = 2*Unit('N')

H = 0.1e-1*Units:-Unit(m), R = 0.6e-2*Units:-Unit(m), r_sub = 0.3e-2*Units:-Unit(m), k = .540*Units:-Unit(W/(m*K)), rho = 1060.0*Units:-Unit(kg/m^3), Cp = 3745*Units:-Unit(J/(kg*K)), Q_flux = 5000*Units:-Unit(W/m^2), T_amb = 0, Nz = 20, Nr = 20, t_final = 30*Units:-Unit(s), t_step = Units:-Unit(s), test_1 = Units:-Unit(kW), test_2 = 2*Units:-Unit(N)

(1)

H: length of rod
R: outer radius
r_sub: outer radius of heat flux
k: conductance
ρ: density
Cp: heat capacity
Q_flux: heat flux
T_amb: initial Tempearture
Nz: number of axial grid points
Nr: number of radial grid points
t_final: integration time
t_step: sampling interval for temperature fields
test_1: unit given in kilos
test_2: unit given in derived base units

alpha = k/(rho*Cp); simplify(subs(H = 0.1e-1*Units:-Unit(m), R = 0.6e-2*Units:-Unit(m), r_sub = 0.3e-2*Units:-Unit(m), k = .540*Units:-Unit(W/(m*K)), rho = 1060.0*Units:-Unit(kg/m^3), Cp = 3745*Units:-Unit(J/(kg*K)), Q_flux = 5000*Units:-Unit(W/m^2), T_amb = 0, Nz = 20, Nr = 20, t_final = 30*Units:-Unit(s), t_step = Units:-Unit(s), test_1 = Units:-Unit(kW), test_2 = 2*Units:-Unit(N), %))

alpha = 0.1360304305e-6*Units:-Unit(m^2/s)

(2)

α: thermal diffusivity

 

One way is to check whether the value of a physical parameter has not changed after simplification

`minus`(map(convert, simplify(`~`[rhs]({Cp = 3745*Units:-Unit(J/(kg*K)), H = 0.1e-1*Units:-Unit(m), Nr = 20, Nz = 20, Q_flux = 5000*Units:-Unit(W/m^2), R = 0.6e-2*Units:-Unit(m), T_amb = 0, k = .540*Units:-Unit(W/(m*K)), r_sub = 0.3e-2*Units:-Unit(m), rho = 1060.0*Units:-Unit(kg/m^3), t_final = 30*Units:-Unit(s), t_step = Units:-Unit(s), test_1 = Units:-Unit(kW), test_2 = 2*Units:-Unit(N)})), unit_free), map(convert, `~`[rhs]({Cp = 3745*Units:-Unit(J/(kg*K)), H = 0.1e-1*Units:-Unit(m), Nr = 20, Nz = 20, Q_flux = 5000*Units:-Unit(W/m^2), R = 0.6e-2*Units:-Unit(m), T_amb = 0, k = .540*Units:-Unit(W/(m*K)), r_sub = 0.3e-2*Units:-Unit(m), rho = 1060.0*Units:-Unit(kg/m^3), t_final = 30*Units:-Unit(s), t_step = Units:-Unit(s), test_1 = Units:-Unit(kW), test_2 = 2*Units:-Unit(N)}), unit_free))

{1000}

(3)

if is(`minus`(map(convert, simplify(`~`[rhs]({Cp = 3745*Units:-Unit(J/(kg*K)), H = 0.1e-1*Units:-Unit(m), Nr = 20, Nz = 20, Q_flux = 5000*Units:-Unit(W/m^2), R = 0.6e-2*Units:-Unit(m), T_amb = 0, k = .540*Units:-Unit(W/(m*K)), r_sub = 0.3e-2*Units:-Unit(m), rho = 1060.0*Units:-Unit(kg/m^3), t_final = 30*Units:-Unit(s), t_step = Units:-Unit(s), test_1 = Units:-Unit(kW), test_2 = 2*Units:-Unit(N)})), unit_free), map(convert, `~`[rhs]({Cp = 3745*Units:-Unit(J/(kg*K)), H = 0.1e-1*Units:-Unit(m), Nr = 20, Nz = 20, Q_flux = 5000*Units:-Unit(W/m^2), R = 0.6e-2*Units:-Unit(m), T_amb = 0, k = .540*Units:-Unit(W/(m*K)), r_sub = 0.3e-2*Units:-Unit(m), rho = 1060.0*Units:-Unit(kg/m^3), t_final = 30*Units:-Unit(s), t_step = Units:-Unit(s), test_1 = Units:-Unit(kW), test_2 = 2*Units:-Unit(N)}), unit_free)) <> {}) then print("Not all units are in SI base units") end if

"Not all units are in SI base units"

(4)

Download check_for_SI_base_units.mw

I am interested in simpler ways to perform the test. The statement is quite long and not easy to understand.

Given the size of the unit package, there might be a command that I have overlooked to check whether units are in SI base units.

Have I missed test cases to make the check fool proof?

 

Update: A variant with split was added and attempts with functional programming

check_for_SI_base_units_02.mw

Has anyone developed an Agent Skill for Maple compliant with the Agent Skills Specification?

I frequently use Claude Code to create and edit Maple Documents. It does fine alone, but I found adding a script to do a syntax check eliminated a lot of content errors. I also presume some instructions on how it should read the Maple documentation will improve its reliability. Before I go about writing my own Skill against the specification, I just want to check if there is already one in use within the community.

I am trying to follow a series of substitutions used in a paper. I have given some examples of the substitutions. But I am having difficulty getting them to work. I know if all else fails I can manually recreate an expression with the substitution variables and then check backwards using eval(f,vals).
Would appreciate any insight on substitution techniques here.
 

restart

 

sidrels := [a*c - b^2 = Delta, a + c - 2*b = d, a - b = c__bar, a - c = b__bar, c - b = a__bar];

[a*c-b^2 = Delta, a+c-2*b = d, a-b = c__bar, a-c = b__bar, c-b = a__bar]

(1)

vals:='rhs=lhs'~(sidrels)

[Delta = a*c-b^2, d = a+c-2*b, c__bar = a-b, b__bar = a-c, a__bar = c-b]

(2)

t1:=a + c - 2*b;
simplify(t1,sidrels); #this should be d

a+c-2*b

 

d

(3)

t2:=Vector[column](3, [-a + b, c - b, 0]);
simplify(t2,sidrels) ; # This should be <-c__bar,a__bar,0> or <c__bar,-a__bar,0,>r

Vector(3, {(1) = -a+b, (2) = c-b, (3) = 0})

 

Vector[column](%id = 36893490321805397396)

(4)

t3:=normal(1 - b^2/(a*c));

(a*c-b^2)/(a*c)

(5)

simplify((5),sidrels); # This should be Delta/(a*c)

Delta/(b^2+Delta)

(6)

simplify(numer((5)),sidrels,'mindeg')/(denom((5)) ); # This works

 

Delta/(a*c)

(7)

t4:=[(-b^2 + b*c)/(a*c - b^2), (a*b - b^2)/(a*c - b^2)]

[(-b^2+b*c)/(a*c-b^2), (a*b-b^2)/(a*c-b^2)]

(8)

simplify(t4,sidrels,'mindeg');# this should be [(b*a__bar)/Delta, (b*b__bar)/Delta]

[-b*(-c+b)/Delta, b*(a-b)/Delta]

(9)

t5:=simplify(Vector[column](3, [3*b*c__bar - Delta, -3*a__bar*b + Delta, b*(-c__bar + a__bar)]))

Vector(3, {(1) = 3*b*c__bar-Delta, (2) = -3*a__bar*b+Delta, (3) = b*(-c__bar+a__bar)})

(10)

t5[3]:=simplify(t5[3],sidrels)  ;#This should be b*b__bar

 

-a__bar^2+(2*b+d)*a__bar-Delta

(11)

t5

Vector(3, {(1) = 3*b*c__bar-Delta, (2) = -3*a__bar*b+Delta, (3) = -a__bar^2+(2*b+d)*a__bar-Delta})

(12)

subs(sidrels[-2],b*(-c__bar + a__bar))

b*(-c__bar+a__bar)

(13)

algsubs(sidrels[-2],b*(-c__bar + a__bar))

b*(-c__bar+a__bar)

(14)

 


 

Download 2026-07-29_Q_Simplifications_and_Substitutions.mw

In the attached file, I'd like to solve an ODE as an exercise. Only the "series" option yielded a solution. How can the length of the result series be controlled? Is there a package that leads to a "closed" solution – even using well-known transcendental functions?

restart

ode := (1+f(x))*(diff(f(x), x, x)) = 1+x

(1+f(x))*(diff(diff(f(x), x), x)) = 1+x

(1)

ics := f(0) = 1, (D(f))(0) = 0

f(0) = 1, (D(f))(0) = 0

(2)

dsolve({ics, ode}, f(x), series)

f(x) = series(1+(1/4)*x^2+(1/12)*x^3-(1/192)*x^4-(1/240)*x^5+O(x^6),x,6)

(3)

``

Download test.mw

Responses from the AI assistant in Maple2026 can be copied directly into a Maple Document or Worksheet, Is there a process which allows one to similarly import a external ChatGPT conversation. I have Maple MCP configured in my ChatGPT account.

How to integrate this function (n::posint) :
f := (n, x) -> (1 - cos(n*x))/(1 - cos(x))

Maple is not returning a result. It seems unable to establish the connection with the Dirichlet kernel. Is there a solution that doesn't require forcing a decomposition into a sum of cosinus?

Thank you for your help.

Best regards.

I am pretty new to pdsolve.

?pdsolve/numeric states

PDEsys - single or set or list of time-dependent partial differential equations in two independent variables

This could be interpreted in a way that problems with 3 independent variables can be handled (time + two others).

The rest of the helppage only describes two independent variables and does not mention time.

In case the above interpretation is wrong, I have two questions:

  • If only two independent variables can be treated, why is time-depencency mentioned at all?
  • Is it possible to integrate the PDE of an axially heated rod of finite length and radius with the help of pdsolve where on one end of the rod a heat flux q=q(r) is applied?

Any links to similar problems solved with Maple (not necessary with pdsolve) are very much appreciated.

Edit: Updated BCs

PDE := diff(T(r, z, t), t) = alpha*(diff(T(r, z, t), r, r)+(diff(T(r, z, t), r))/r+diff(T(r, z, t), z, z))

diff(T(r, z, t), t) = alpha*(diff(diff(T(r, z, t), r), r)+(diff(T(r, z, t), r))/r+diff(diff(T(r, z, t), z), z))

(1)

Updated BC

BC1 := -k*(D[2](T))(r, 0, t) = q; BC2 := (D[2](T))(r, L, t) = 0; BC3 := (D[1](T))(R, z, t) = 0; BC4 := (D[1](T))(0, z, t) = 0; IC := T(r, z, 0) = 0

T(r, z, 0) = 0

(2)

NULL

Corrected original BC (this is a different case of constant external temperature)

BC1 := -k*(D[2](T))(r, 0, t) = q; BC2 := T(r, L, t) = 0; BC3 := T(R, z, t) = 0; BC4 := (D[1](T))(0, z, t) = 0; IC := T(r, z, 0) = 0

T(r, z, 0) = 0

(3)

NULL

Download 2d_BVP.mw

Can Maple solve recurrence relations involving two variables?

For example, consider the relation:

P(n, m) = p*P(n - 1, m) + (1 - p)*P(n, m - 1)

with boundary conditions:

P(n, 0) = 0, P(0, m) = 1

I’d like to know how to obtain a solution for P(n, m) in Maple.

For many years I have used my own Style Set in Maple, mainly by adding a few extra heading styles (typically coloured headings). This has worked very well.

In Maple 2026, the default body text font has been changed to DejaVu Sans. Since the mathematical notation is still displayed in a serif math font (for obvious reasons), I feel that 12 pt DejaVu Sans appears noticeably larger than the mathematics because of its relatively large x-height. To my eyes, 11 pt gives a much more harmonious balance.

I therefore tried to change the built-in Text style from 12 pt to 11 pt.

However, I noticed something very strange.

When I open Style Management, select Text, and click Modify, the Character Style dialog already shows the font size as 11 pt (see the first screenshot). Nevertheless, when I switch to Text mode and start typing, the body text is still created as 12 pt, and the toolbar also reports a font size of 12 pt.

If I create my own custom style (for example, text11) with a font size of 11 pt, it works exactly as expected.

Is the built-in Text style intentionally overridden somewhere by the default Style Set, or is this a bug?

For comparison, I have also attached a second screenshot showing the visual difference between 12 pt and 11 pt body text. In my opinion, the 11 pt version blends much better with the mathematical notation.

 

 

 

This is about avoiding that automatic simplifcation removes a factor of "1" before a unit.

Example output with removed factors:

Readers of technical notes not familar with Maple interprete the above missing values before units as layout errors.
Also reading it (e.g. with a screen reader) sounds strange: "m_l equals kg" or "m_1 of kg".  As a work around a float one (i.e.: 1.) can be used, which in some instances does not look as nice as

To improve the above I thought of an inert "1" or an inert multiplication that could be removed by the value command in subsequent calculations (not necessarily visible in a document to the reader when the input is hidden).
I could not find a way for an inert "1". With inert multiplication using %* a grey asterix is printed

Can we make the grey multiplication symbol invisble?

Related discussion on 0 mm and 1 mm

https://www.mapleprimes.com/questions/241946-Round-With-Units#answer313597

Maple 2026 print layout

PDF created with print -> Adobe pdf printer -> save to file

Is that related to the attached worksheet or my installation?
If that is not reproducible on other installations, can I someone provide a file that prints correctly to test my installation?

Anything I can do about the mixed up fonts?

pdf_print.mw

Other question: Where is the pagesetup in Maple 2026? Maple shows in the printlayout a pagebreak at about 80% of the displayed page. AI could not tell me

(edit) where the page setup is to adjust the page size.

1 2 3 4 5 6 7 Page 2 of 7