Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Not able to make odetest give zero on this Maple solution to this first order ode.

So not sure if solution is correct or not, as can't also get same solution by hand.

Any one can find a method or way to verify this solution is correct?

odetest says it satisfies the IC but not the ode itself.

Below is worksheet. Tried with Maple 2026 and 2025.2 both give same solution.

Site will not let me upload worksheet. Here is code

ode:=diff(diff(y(x),x),x)+sin(y(x)) = 0;
IC:=y(infinity) = Pi;
sol:=[dsolve([ode,IC])];

the_residue:=odetest(sol[1],[ode,IC]);
the_residue:=odetest(sol[2],[ode,IC]);

Tried many things, including different assumptions, but can't get zero.

 

I have a example overloaded procdeure below. Due to '=' the optional input in the 2nd proc gets trapped in the 1st proc. I have tried various ways to get around this. Obviously I could make the  optional input in the 2nd proc non-optional if all else fails. Is there a way around this?

restart

Test:=overload([
proc(l1::{`+`,`*`,`=`, `symbol`,procedure,not(list)},
l2::{`+`,`*`,`=`, `symbol`,procedure,not(list)} ) #need to detect if 'point' is present

option overload;
if not(has([_params[2]],point)) then #if true need to go the next proc

print("1st proc ",l1," ",l2);
return
end if;
end proc,

proc(l1::{`+`,`*`,`=`, `symbol`,procedure,not(list)},
{point::list:=NULL}) #oprional input

print("2nd proc",l1,"point",point);

end proc
]):

 

l:=3*x+4*y-5;
h:=4*x-8*y = 5;
P:=[3,5]

3*x+4*y-5

 

4*x-8*y = 5

 

[3, 5]

(1)

Test(l,h)

 

"1st proc ", 3*x+4*y-5, " ", 4*x-8*y = 5

(2)

Test(l,point=P)

 

Test(h,point=[2,7])

 

 

Download 2026-02-28_Q_Test_proc_Line_point_inputs.mw

Hello :)

I am totally lost with ( I guess) the LREtools package.

See the ws.

The two integer sequences come from the OEIS.

I don't understand why i have a FAILED result.

intseq := [0, 1, 4, 2, 131, 129, 3, 5, 16, 14, 12, 10, 8, 6, 31, 29, 27, 25, 23, 99734, 7, 9, 11, 13, 15, 17, 64, 62, 60, 58, 56, 54, 52, 50, 48, 46, 44, 42, 40, 38, 111, 22, 20, 18, 28, 30, 32, 222, 220, 218, 216, 214, 212, 210, 208, 206, 204, 202, 200, 198, 196]

[0, 1, 4, 2, 131, 129, 3, 5, 16, 14, 12, 10, 8, 6, 31, 29, 27, 25, 23, 99734, 7, 9, 11, 13, 15, 17, 64, 62, 60, 58, 56, 54, 52, 50, 48, 46, 44, 42, 40, 38, 111, 22, 20, 18, 28, 30, 32, 222, 220, 218, 216, 214, 212, 210, 208, 206, 204, 202, 200, 198, 196]

(1)

rec := LREtools:-GuessRecurrence(intseq, q(n))

FAIL

(2)

soln := rsolve(rec, q)

Error, (in rsolve/single) Equations do not involve function q()

 

restart

NULL

intseq := [0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9, 24, 8, 25, 43, 62, 42, 63, 41, 18, 42, 17, 43, 16, 44, 15, 45, 14, 46, 79, 113, 78, 114, 77, 39, 78, 38, 79, 37, 80, 36, 81, 35, 82, 34, 83, 33, 84, 32, 85, 31, 86, 30, 87, 29, 88, 28, 89, 27, 90, 26, 91, 157, 224, 156, 225, 155]

[0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9, 24, 8, 25, 43, 62, 42, 63, 41, 18, 42, 17, 43, 16, 44, 15, 45, 14, 46, 79, 113, 78, 114, 77, 39, 78, 38, 79, 37, 80, 36, 81, 35, 82, 34, 83, 33, 84, 32, 85, 31, 86, 30, 87, 29, 88, 28, 89, 27, 90, 26, 91, 157, 224, 156, 225, 155]

(3)

rec := LREtools:-GuessRecurrence(intseq, q(n))

FAIL

(4)

NULL

restart

with(LREtools)

intseq := [0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9, 24, 8, 25, 43, 62, 42, 63, 41, 18, 42, 17, 43, 16, 44, 15, 45, 14, 46, 79, 113, 78, 114, 77, 39, 78, 38, 79, 37, 80, 36, 81, 35, 82, 34, 83, 33, 84, 32, 85, 31, 86, 30, 87, 29, 88, 28, 89, 27, 90, 26, 91, 157, 224, 156, 225, 155]

[0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9, 24, 8, 25, 43, 62, 42, 63, 41, 18, 42, 17, 43, 16, 44, 15, 45, 14, 46, 79, 113, 78, 114, 77, 39, 78, 38, 79, 37, 80, 36, 81, 35, 82, 34, 83, 33, 84, 32, 85, 31, 86, 30, 87, 29, 88, 28, 89, 27, 90, 26, 91, 157, 224, 156, 225, 155]

(5)

NULL

rec := GuessRecurrence(intseq, q(n))

FAIL

(6)

NULL

NULL Thank you everyone.

Jean-Michel

Download rsolve_and_LREtools.mw

In the Maple dock i am having problems finding the explicit value for x, for my equation. I need it, to find the value for r later.

so i will be kindly asking for Maple wizards to help me.

i thank of you in advance for your help, any comment is appreciated.

Hi,

I am trying to correct this question for my students, but I would like to include a pedagogical graphical illustration to support the idea that, for the area of triangle BCS to be minimal, the height (SM) — where M is the midpoint of [BC]— must be perpendicular to the plane Π at point S.

The code provided in the appendix does not clearly convey this idea.

Any ideas or suggestions would be very welcome.

Thanks

bac23IllustrationEspace.mw

Hello Ladies and Gents :)

x^Pi=Pi^x

Maple returns two reals solutions :

solve(Pi^x = x^Pi, x);
                               /  ln(Pi)\    
                    Pi LambertW|- ------|    
                               \    Pi  /    
                  - ---------------------, Pi
                           ln(Pi)            

evalf(%);
              2.382179087993016, 3.141592653589793

ouf Pi is a solution :)

but Mathematica returns 3 solutions : 2 reals and 1 complex :

see the attached pdf.

Is there a way to force Maple to return these 3 solutions?

thank you.

Jean-Michel

Hello everyone, I am trying to reproduce Equation (25) from the paper by E. Yomba (Chaos, Solitons and Fractals, 2006) using Maple, where the improved extended algebraic Fan method is applied to the (2+1)-dimensional Broer–Kaup–Kupershmidt (BKK) system. Starting from the system in Eq. (23) and the ansatz given in Eq. (24), together with the auxiliary equation (Eq. (3)), the paper states that substituting these expressions and setting coefficients of powers of G(ξ) to zero leads to an overdetermined system whose solution yields Eq. (25). My difficulty is implementing this process in Maple: specifically, how to correctly substitute the ansatz into the PDE system, expand and collect terms with respect to G(ξ) and its derivatives, systematically extract the resulting algebraic/PDE system, and solve it efficiently (possibly using packages like PDEtools). I would appreciate guidance or example workflows for performing this type of symbolic derivation in Maple.

F1.mw

Hi Maple community, and all,

My intrest in prime numbers continues.

Made a quick example file.

3_tuple_admissible_example.mw

3_tuple_admissible_example.pdf

also, see my webpage for similar content
https://mattanderson.fun
and Norman, in Germany
prime k-tuplets & Primzahlen

Enjoy

Matt

 

 

 

 

I am trying to set the default Cartesian and Parametric variables to set them golbally or locally in a command..

How do I achieve this? 

restart

interface(version)

`Standard Worksheet Interface, Maple 2026.0, Windows 10, March 05 2026 Build ID 2001916`

(1)

TM := module () local Cartvars, Parmvars; export Cartline, Parmline; global x, y, z;  Cartvars := [x, y, z]; Parmvars := [alpha, beta, rho]; Cartline := proc (p1::list, p2::list, { vars := Cartvars }) local l; global Cartvars; l := (p2[2]-p1[2])*vars[1]+(p1[1]-p2[1])*vars[2]-p2[2]*p1[1]+p1[2]*p2[1]; return l end proc; Parmline := proc (p1::list, p2::list, { varp := Parmvars }) local l; global Parmvars; l := `~`[`+`](p1, varp[1]*`<,>`(p2-p1)); return l end proc end module

TM:-Cartline([4, 3], [-8, 4])

Cartvars[1]+12*Cartvars[2]-40

(2)

TM:-Cartline([4, 3], [-8, 4], vars = [x, y])

x+12*y-40

(3)

NULL

TM:-Parmline([4, 3], [-8, 4])

Vector[column](%id = 36893490963638479436)

(4)

TM:-Parmline([4, 3], [-8, 4], varp = [alpha])

Vector[column](%id = 36893490963638469564)

(5)

NULL

Download 2026-03-26_Q_Module_Generic_Variables.mw

I need to plot this piecewise function

Maple plots it correctly but its sampling seems to use the points between and hence it also shows vertical asymptotes, like this

Is there a way to tell plot not to show the vertical asymtotes? These should not show. Here is the same exact function in Mathematica, and this is what I want in Maple

f[x_] := Piecewise[{
   {2*x - Tan[x], -7/4*Pi < x < -3/2*Pi},
   {2*x - Tan[x], -3/2*Pi < x < -5/4*Pi},
   {2*x - Tan[x], -3/4*Pi < x < -1/2*Pi},
   {2*x - Tan[x], -1/2*Pi < x < -1/4*Pi},
   {2*x - Tan[x], 1/4*Pi < x < 1/2*Pi},
   {2*x - Tan[x], 1/2*Pi < x < 3/4*Pi},
   {2*x - Tan[x], 5/4*Pi < x < 3/2*Pi},
   {2*x - Tan[x], 3/2*Pi < x < 7/4*Pi},
   {True, None}}]

Plot[f[x], {x, -2 Pi, 2 Pi}]

 

Here is Maple worksheet with all the maple code. I tried adding 'adaptive'=true,'discont'=true but these made no difference.

f_decreasing := x -> piecewise(-7/4*Pi < x and x < -3/2*Pi, 2*x - tan(x), -3/2*Pi < x and x < -5/4*Pi, 2*x - tan(x), -3/4*Pi < x and x < -1/2*Pi, 2*x - tan(x), -1/2*Pi < x and x < -1/4*Pi, 2*x - tan(x), 1/4*Pi < x and x < 1/2*Pi, 2*x - tan(x), 1/2*Pi < x and x < 3/4*Pi, 2*x - tan(x), 5/4*Pi < x and x < 3/2*Pi, 2*x - tan(x), 3/2*Pi < x and x < 7/4*Pi, 2*x - tan(x),true,[])

f_decreasing := proc (x) options operator, arrow; piecewise(-(7/4)*Pi < x and x < -(3/2)*Pi, 2*x-tan(x), -(3/2)*Pi < x and x < -(5/4)*Pi, 2*x-tan(x), -(3/4)*Pi < x and x < -(1/2)*Pi, 2*x-tan(x), -(1/2)*Pi < x and x < -(1/4)*Pi, 2*x-tan(x), (1/4)*Pi < x and x < (1/2)*Pi, 2*x-tan(x), (1/2)*Pi < x and x < (3/4)*Pi, 2*x-tan(x), (5/4)*Pi < x and x < (3/2)*Pi, 2*x-tan(x), (3/2)*Pi < x and x < (7/4)*Pi, 2*x-tan(x), true, []) end proc

plot(f_decreasing(x),x=-2*Pi..2*Pi,'adaptive'=true,'discont'=true,'color'="blue");

 

 

Download plot_piecewise_march_25_2026.mw

when getting sequence of RealRange, I'd like to convert this to normal list. Currently I have to use map twice on the result, but I think there should be simpler way.

Below is what I do. I was wondering if there is a better way in Maple to do this, may be a built in command?

Basically, if the input is

RealRange(-2*Pi,Open(-7/4*Pi)), RealRange(Open(-5/4*Pi),Open(-3/4*Pi)), 
RealRange(Open(-1/4*Pi),Open(1/4*Pi)), RealRange(Open(3/4*Pi),Open(5/4*Pi)), 
RealRange(Open(7/4*Pi),2*Pi)

I want to change the above to normal list like this (without any Open, etc.. in it) to make it easier to post process (say for plotting and so on)

[[-2*Pi, -7/4*Pi], [-5/4*Pi, -3/4*Pi], [-1/4*Pi, 1/4*Pi], [3/4*Pi, 5/4*Pi], [7/4*Pi, 2*Pi]]

This is what I do now on an example that generates sequence of RealRange

restart;

f:=x->2*x-tan(x);
the_intervals:=solve(diff(f(x),x)>0 and x>=-2*Pi and x<= 2*Pi,x);

proc (x) options operator, arrow; 2*x-tan(x) end proc

RealRange(-2*Pi, Open(-(7/4)*Pi)), RealRange(Open(-(5/4)*Pi), Open(-(3/4)*Pi)), RealRange(Open(-(1/4)*Pi), Open((1/4)*Pi)), RealRange(Open((3/4)*Pi), Open((5/4)*Pi)), RealRange(Open((7/4)*Pi), 2*Pi)

lprint(the_intervals);

RealRange(-2*Pi,Open(-7/4*Pi)), RealRange(Open(-5/4*Pi),Open(-3/4*Pi)),
RealRange(Open(-1/4*Pi),Open(1/4*Pi)), RealRange(Open(3/4*Pi),Open(5/4*Pi)),
RealRange(Open(7/4*Pi),2*Pi)

map(X->convert(X,list),[the_intervals]);
map(X1->map(X2->`if`(has(X2,Open),op(X2),X2),X1),%);

[[-2*Pi, Open(-(7/4)*Pi)], [Open(-(5/4)*Pi), Open(-(3/4)*Pi)], [Open(-(1/4)*Pi), Open((1/4)*Pi)], [Open((3/4)*Pi), Open((5/4)*Pi)], [Open((7/4)*Pi), 2*Pi]]

[[-2*Pi, -(7/4)*Pi], [-(5/4)*Pi, -(3/4)*Pi], [-(1/4)*Pi, (1/4)*Pi], [(3/4)*Pi, (5/4)*Pi], [(7/4)*Pi, 2*Pi]]

lprint(%);

[[-2*Pi, -7/4*Pi], [-5/4*Pi, -3/4*Pi], [-1/4*Pi, 1/4*Pi], [3/4*Pi, 5/4*Pi], [7/
4*Pi, 2*Pi]]

 

 

Download convert_realrange_to_list.mw

In the attached file test1, two terms are to be compared using the "is" function. Theoretically, these terms are equal. A plot is provided for illustration. However, regardless of which symbol ("equal," "not equal," etc.) is used in "is," the result is always "false." What am I doing wrong?

restart

simplify(exp(u)/(1+exp(u))^2)

exp(u)/(1+exp(u))^2

(1)

is(exp(u)/(1+exp(u))^2 = 1/(4*cosh((1/2)*u)^2))

false

(2)

plot([exp(u)/(1+exp(u))^2, 1/(4*cosh((1/2)*u)^2)], u)

 

NULL

Download test1.mw

Any idea why plot fail when adding legend and using {1} instead of [1] ? Since both have one curve.

Maple 2026 and 2025.2. searched help but do not see anything on this so far.

restart;

plot({1},x = -10 .. 10,'legend'="A");

Error, (in plot) the legend option cannot be used when plotting a set of objects

plot([1],x = -10 .. 10,'legend'="A");

 

 

Download plot_legend_problem_march_25_2026.mw

Can someone explain what the meaning of "visible character width" for e.g. TextArea components is?

My understanding is that the width should correspond to the number of characters that are visible in the TextArea. But apparently this is not the case.

A definition of 4 allows at least 8 characters. A definition of 6 at least 12, 8 gives 16 and 10 gives 20.

Test_visible_character_width.mw

Mathematics often feels precise and deterministic. We solve equations, follow logical steps, and do our best to arrive at exact answers. But sometimes, surprisingly, randomness can also lead us to deep mathematical truths. One of the most famous examples of this idea is a problem from the 18th century known as Buffon’s Needle.

Imagine you have a floor made of long wooden planks placed side by side. The seams between the planks form a set of equally spaced parallel lines across the floor. Now, suppose you take a needle and randomly drop it onto the floor. Sometimes the needle lands entirely on one plank. Other times, it crosses one of the seams between planks, as shown below.

Now here is the curious question posed by the French mathematician Georges-Louis Leclerc, Comte de Buffon in the 1700s:

If we repeatedly drop the needle at random, what is the probability that it crosses one of the lines on the floor?

At first glance, this sounds like a simple probability puzzle. But the answer turns out to involve one of the most famous numbers in mathematics: π.

To keep things simple, assume the distance between the parallel lines on the floor is the same as the length of the needle. We can also imagine that all of our needles are thrown onto the same plank, potentially crossing onto the plank above or below. This configuration is equivalent to throwing the needle onto any plank as long as the planks are equally wide; this modification makes the analysis much simpler.

Every time the needle lands, two things determine whether it crosses a line:

  • The distance x from the center of the needle to the nearest line
  • The angle θ at which the needle lands with respect to the parallel lines

See a depiction of this below.

To determine the probability of a needle crossing one of these lines, we need to describe what a "random drop" of the needle means mathematically. If the lines are the same length apart as the length of the needle L, then the center of the needle can never be farther than L/2 from the nearest line. Therefore, 0 ≤ x ≤ L/2. Next, we can simplify our domain for θ. The problem is symmetric, so we only need to consider angles between 0 and π/2. Any given half of the needle then has a vertical reach of (L/2)sin(θ).

We will say a needle "crosses" a line precisely when the center lands close enough to a line that one end of the needle can reach across the line. This occurs when x ≤ (L/2)sin(θ).

An important assumption to make is that every pair (x,θ) in the rectangle 0 ≤ x ≤L/2, 0 ≤ θ ≤ π/2 is equally likely. We’re assuming the needle lands with uniform randomness over all vertical positions x and angles θ. This means that the probability of crossing a line is the fraction of this region where the inequalities above hold. That is, 

Probability = (area of favourable region) / (area of total region)

The "rectangle" formed by inequalities has a total area of (L/2) * (π/2) = π*L/4. The needle crosses a line exactly when x ≤ (L/2)sin(θ), so for a fixed angle θ, the allowable x values are 0 ≤ x ≤ (L/2)sin(θ). The favourable area is then:

The probability of a needle crossing a line is therefore:

This result leads to a fascinating idea. If the probability of crossing a line is 2/π, we can rearrange the formula to estimate π itself:

π ≈ 2N / C

where:

  • N = the total number of needle drops
  • C = the number of times the needle crosses a line

In other words, by performing a simple random experiment and counting how often the needle crosses a line, we can approximate π.

For example, suppose you drop the needle 10,000 times and it crosses a line 6,366 times. Plugging these values into the formula gives

π ≈ (2 × 10,000) / 6,366 ≈ 3.14

With enough trials, the estimate tends to get closer and closer to the true value of π. At the bottom of this post, I attached a Maple worksheet that simulates this phenomenon. Below are results from simulating this result using N = 10, 100 & 1000, respectively. Notice as N increases, our approximation for π tends to become more and more accurate.

Below is a more dynamic simulation from the Maple worksheet to show how the approximation stabilizes as N increases.

What makes Buffon’s Needle so fascinating is the unexpected connection between geometry, probability, and one of mathematics’ most important constants.

π usually appears when dealing with circles (circumference, area, rotation, etc). But in Buffon’s experiment, there are no circles at all. Instead, π emerges from the geometry of all the possible ways a needle can land on a set of parallel lines.

This was one of the earliest examples of what we now call a Monte Carlo method, which is essentially using random experiments to estimate numerical values. Today, similar techniques are used in physics, finance, computer graphics, and machine learning.

One of the best parts of Buffon’s Needle is that you can try it yourself. All you need is:

  • A toothpick or needle
  • A piece of paper with a sequence of parallel lines, each a distance of the needle's length apart
  • A lot of patience

Drop the needle repeatedly (N times), record how many times it crosses a line (C), and compute 2N/C. The more times you repeat the experiment, the closer your estimate will get to π.

After reading about this experiment, I was convinced that mathematics is not only about abstract symbols and formulas. Sometimes, even something as simple as dropping a needle onto the floor can reveal the hidden structure of elements of the universe that we would've otherwise never known were there.

 

Buffons_Needle_Simulation.mw

3 4 5 6 7 8 9 Last Page 5 of 2251