Maple 2024 Questions and Posts

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

I am trying to see if I can get speed up by using dsolve inside thread.

I made very simple example of global list of two differential equations to start with.

Next, created two threads where each picks one ode from the global list to process. So they should in theory run in parallel. The list of ode's is a global list in the worksheet for now.

But I keep getting error when calling dsolve 

               Error, (in dsolve) type `System` does not exist

I tried also passing the actual ode to the thread, still, same error.

Next, I did not pass anything, but called dsolve directly from inside thread proc on same ode. The ode is local variable inside the proc. I still get same error.

                        Does this mean dsolve is not supported by threads? 

But when I searched this subject, AI says it works in threads:

 

Everything works OK when I run dsolve in worksheet outside thread (i.e. normally).

I will show below worksheet showing these cases. I must not be doing something right. But what? Can one not pass data from global worksheet to the thread this way? Or does one needs to load something in each thread to make this work?

interface(version);

`Standard Worksheet Interface, Maple 2024.2, Windows 10, October 29 2024 Build ID 1872373`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1840 and is the same as the version installed in this computer, created 2024, December 2, 10:11 hours Pacific Time.`

libname;

"C:\Users\Owner\maple\toolbox\2024\Physics Updates\lib", "C:\Program Files\Maple 2024\lib"

Example 1. Passing index of list to thread

 

restart;

g_list:=[sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0,
         diff(y(x),x)=lambda*sin(lambda*x)*y(x)^2+a*cos(lambda*x)^n*y(x)-a*cos(lambda*x)^(n-1)]:

work_func:=proc(i::posint)  
  :-dsolve(g_list[i]):
end proc:

Threads:-Wait(  seq( Threads:-Create( work_func(i)), i=1..2) );

Error, (in dsolve) type `System` does not exist

Example 2. Passing actual ode itself to thread

 

restart;

g_list:=[sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0,
         diff(y(x),x)=lambda*sin(lambda*x)*y(x)^2+a*cos(lambda*x)^n*y(x)-a*cos(lambda*x)^(n-1)]:

work_func:=proc(ode::`=`)  
  :-dsolve(ode):
end proc:

Threads:-Wait(  seq( Threads:-Create( work_func(g_list[i])), i=1..2) );

Error, (in dsolve) type `System` does not exist

 

Example 3. Normal processing. No threads

 

restart;

g_list:=[sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0,
         diff(y(x),x)=lambda*sin(lambda*x)*y(x)^2+a*cos(lambda*x)^n*y(x)-a*cos(lambda*x)^(n-1)]:

work_func:=proc(ode::`=`)  
  :-dsolve(ode):
end proc:

for item in g_list do
    work_func(item);
od:

#no error

 

Example 4. do not pass anything. Just call dsolve

 

restart;

work_func:=proc(i::posint)  
  local x,t;
  local ode:=sin(t)*diff(x(t),t$2)+cos(t)*diff(x(t),t)+2*x(t)=0;
  :-dsolve(ode):
end proc:

Threads:-Wait(  seq( Threads:-Create( work_func(i)), i=1..2) );

Error, (in dsolve) type `System` does not exist

 

 

 

Download error_dsolve_using_threads_dec_26_2024.mw

restart;

Here are the graphs of a parabola and a straight line:

plots:-display(
        plot(x^2, x=-1..1),
        plot((x+1)/2, x=-1..1),
color=["Red","Green"]);

 

Suppose I want to plot the part of the parabola that lies below

the straight line, and suppose, just to be nasty, I choose to do it

with implicitplot:

plots:-implicitplot(y=x^2, x=-1..1, y=0..(x+1)/2);

 

That is not a parabola at all.  [And where does the "ynew" label come from?]

 

This behavior was introduced in Maple 2022.

In Maple 2021 we get the expected result:

plots:-implicitplot(y=x^2, x=-1..1, y=0..(x+1)/2);


 

Download mw.mw

I am looking for a more eligent way to convert a Vector to a Diagonal Matrix.

restart

 

 

with(LinearAlgebra):

 

V:=Vector[column](3, [0.5863730366, 0.1171249270, 0.2965020364])

Vector(3, {(1) = .5863730366, (2) = .1171249270, (3) = .2965020364})

(1)

Vm:=Matrix(3,[[V[1],0,0],[0,V[2],0],[0,0,V[3]]])

Matrix(3, 3, {(1, 1) = .5863730366, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = .1171249270, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = .2965020364})

(2)

Vm1:=Matrix(3,3):

for i to 3 do
Vm1[i,i]:=V[i];
end do:

Vm1

Matrix(3, 3, {(1, 1) = .5863730366, (1, 2) = 0, (1, 3) = 0, (2, 1) = 0, (2, 2) = .1171249270, (2, 3) = 0, (3, 1) = 0, (3, 2) = 0, (3, 3) = .2965020364})

(3)
 

 

Download 2024-12-26_Q_Diagonal_Matrix_from_Vector.mw

Hello,

This is a simple dynamics example illustrating the behavior of a disc as a pendulum under ideal conditions. Source attached.

Simple_Disk_Pendulum.mw

This is an ode from textbook. dsolve gives new error I have not seen before. 

Maple 2024.2 on windows 10.

interface(version);

`Standard Worksheet Interface, Maple 2024.2, Windows 10, October 29 2024 Build ID 1872373`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1839 and is the same as the version installed in this computer, created 2024, December 2, 10:11 hours Pacific Time.`

restart;

libname;

"C:\Users\Owner\maple\toolbox\2024\Physics Updates\lib", "C:\Program Files\Maple 2024\lib"

ode:=y(x)^2*diff(y(x),x$3)-(3*y(x)*diff(y(x),x)+2*x*y(x)^2 )*diff(y(x),x$2)+(2*diff(y(x),x)^2+2*x*y(x)*diff(y(x),x)+3*x^2*y(x)^2)*diff(y(x),x)+x^3*y(x)^3=0;

y(x)^2*(diff(diff(diff(y(x), x), x), x))-(3*y(x)*(diff(y(x), x))+2*x*y(x)^2)*(diff(diff(y(x), x), x))+(2*(diff(y(x), x))^2+2*x*y(x)*(diff(y(x), x))+3*x^2*y(x)^2)*(diff(y(x), x))+x^3*y(x)^3 = 0

dsolve(ode);

Error, (in factor) too many levels of recursion

infolevel[dsolve]:=5;

5

dsolve(ode);

Methods for third order ODEs:

--- Trying classification methods ---

trying 3rd order ODE linearizable_by_differentiation

differential order: 3; trying a linearization to 4th order

trying differential order: 3; missing variables

trying differential order: 3; exact nonlinear

trying 3rd order, integrating factor of the form mu(y'') for some mu

Trying the formal computation of integrating factors depending on any 2 of [x, y, y', y'']

         *** Sublevel 2 ***

         Methods for first order ODEs:

         --- Trying classification methods ---

         trying a quadrature

         trying 1st order linear

         <- 1st order linear successful

Successful computation of 3 integrating factors: [x*exp(-1/2*x^2*(I*2^(1/2)+1))*KummerM(3/4+1/8*I*2^(1/2),3/2,I*2^(1/2)*x^2)/y(x), x*exp(-1/2*x^2*(I*2^(1/2)+1))*KummerU(3/4+1/8*I*2^(1/2),3/2,I*2^(1/2)*x^2)/y(x), x*exp(-1/2*x^2*(I*2^(1/2)+1))*(Int(x*KummerM(3/4+1/8*I*2^(1/2),3/2,I*2^(1/2)*x^2)*exp(-1/2*x^2*(I*2^(1/2)-1)),x)*KummerU(3/4+1/8*I*2^(1/2),3/2,I*2^(1/2)*x^2)-Int(x*KummerU(3/4+1/8*I*2^(1/2),3/2,I*2^(1/2)*x^2)*exp(-1/2*x^2*(I*2^(1/2)-1)),x)*KummerM(3/4+1/8*I*2^(1/2),3/2,I*2^(1/2)*x^2))/y(x)]

Attempting computing related first integrals...

Error, (in factor) too many levels of recursion

 

 

Download dsolve_factor_dec_24_2024.mw

tracelast;  gives long output with this at end

#(IntegrationTools:-Indefinite:-Polynomial,14): return poly/primitivepart*thisproc(primitivepart,var)
 IntegrationTools:-Indefinite:-Polynomial called with arguments: (8*I)*x*KummerM(3/4+((1/8)*I)*2^(1/2), 3/2, I*2^(1/2)*x^2)*x1*2^(1/2)-(3*I)*2^(1/2)*KummerM(3/4+((1/8)*I)*2^(1/2), 3/2, I*2^(1/2)*x^2)*y+(7*I)*2^(1/2)*KummerM(((1/8)*I)*2^(1/2)+7/4, 3/2, I*2^(1/2)*x^2)*y+12*x^2*KummerM(3/4+((1/8)*I)*2^(1/2), 3/2, I*2^(1/2)*x^2)*y+8*x*KummerM(3/4+((1/8)*I)*2^(1/2), 3/2, I*2^(1/2)*x^2)*x1+4*KummerM(((1/8)*I)*2^(1/2)+7/4, 3/2, I*2^(1/2)*x^2)*y, x1, nofactor = false
 #(IntegrationTools:-Indefinite:-Polynomial,8): newpoly := factor(poly)
Error, (in factor) too many levels of recursion
 locals defined as: p = p, primitivepart = primitivepart, base = base, exponent = exponent, subpolys = subpolys, change = change, newpoly = newpoly, u = u

Also, this error can not be cought using try/catch. 

I'm working on solving a system of ODEs in Maple that models an epidemic scenario, tracking the number of susceptible, infected, and recovered individuals over time. Here's what I've done so far:
Download sir_model.mw

Created a table of results at daily intervals with the following code:

results := [seq([t = tval, s = round(evalf(sol(tval)[2][1])), i = round(evalf(sol(tval)[2][2])),r = round(evalf(sol(tval)[2][2]))], tval = 0 .. 50)];

printf("%-10s %-15s %-15s %-15s\n", "Day", "Infected", "Recovered");
printf("---------------------------------------------\n");
for entry in results do
    printf("%-10d %-15d %-15d %-15d\n", entry[t],entry[s], entry[i], entry[r]);
end do;

but I encountered an error (in fprintf) integer expected for integer format

Maple's Student:-ODEs:-ODESteps solves an ode by doing change of variable on the independent variable, but the resulting ode is wrong and final answer is wrong.

Here is one such example

restart;
ode:=diff(diff(y(x),x),x)*sin(x)^2 = 2*y(x);
Student:-ODEs:-ODESteps(ode):

But this result is wrong. First of all, we can not have both x and t  in the same ode. This is what dchange gives

ode:=diff(y(x),x$2)*sin(x)^2-2*y(x)=0;
tr:={PDEtools:-Solve(t=ln(x),x)};
simplify(PDEtools:-dchange(tr,ode,[t]))

It looks like Student:-ODEs:-ODESteps is trying to solve  sin(x)^2*y'' + 2 y=0 as EULER type ode.

But Euler type ode will look like  x^2*y'' +2 y=0  

It seems to have confused sin(x)^2 with x^2. This change of variable it used only works for EULER type ode with polynomial coefficient, not trig coefficients.

Maple 2024.2 on Windows 10

 

restart;

Let x be some name:

x := asdf;

asdf

I wish to make a new name, y, whose value is the first character in x:

convert(x, string):
y := convert(%[1], name);

a

That works but seems too convoluted.  Is there a better way of doing that?

i already use this method for a lot of equation but this time something not normal hapening what is problem?

``

restart

with(PDEtools)

with(LinearAlgebra)

with(Physics)

with(SolveTools)

``

eq0 := -4*alpha*k^2*m^2*n^2*A[0]^2+4*beta*k*m*n^2*A[0]^3-4*gamma*k*m*n^2*A[0]^3+4*delta^2*m*n^2*A[0]^2-4*n^2*sigma*A[0]^4-4*m*n^2*w*A[0]^2 = 0

eq1 := -8*alpha*k^2*m^2*n^2*A[0]*A[1]+12*beta*k*m*n^2*A[0]^2*A[1]-12*gamma*k*m*n^2*A[0]^2*A[1]+8*delta^2*m*n^2*A[0]*A[1]-16*n^2*sigma*A[0]^3*A[1]+2*a*alpha*m*n*A[0]*A[1]-8*m*n^2*w*A[0]*A[1] = 0

eq2 := -4*alpha*k^2*m^2*n^2*A[1]^2+12*beta*k*m*n^2*A[0]*A[1]^2-12*gamma*k*m*n^2*A[0]*A[1]^2+4*delta^2*m*n^2*A[1]^2-24*n^2*sigma*A[0]^2*A[1]^2+a*alpha*m^2*A[1]^2+3*alpha*b*m*n*A[0]*A[1]-4*m*n^2*w*A[1]^2 = 0

eq3 := 4*beta*k*m*n^2*A[1]^3-4*gamma*k*m*n^2*A[1]^3-16*n^2*sigma*A[0]*A[1]^3+alpha*b*m^2*A[1]^2+alpha*b*m*n*A[1]^2+4*alpha*c*m*n*A[0]*A[1] = 0

eq4 := -4*n^2*sigma*A[1]^4+alpha*c*m^2*A[1]^2+2*alpha*c*m*n*A[1]^2 = 0

C := solve({eq0, eq1, eq2, eq3, eq4}, {a, b, c, `__ `*A[0]})

Warning, solving for expressions other than names or functions is not recommended.

 

(1)
 

NULL

Download problem.mw

It is not that this a terribly difficult to work out, but I feel I am probably missing something. I need to check if a 3D point lies on a 3D line. What is a good approach here. I started of with the idea all alpha's are equal. but there are exceptions. See P3 and P4

restart

NULL

l := `<,>`(3+2*alpha, 1+6*alpha, 4-5*alpha)

Vector[column](%id = 36893489809910741940)

(1)

NULL

P := [9, 19, -11]

[9, 19, -11]

(2)

seq(solve({l[i] = P[i]}, alpha), i = 1 .. 3)

{alpha = 3}, {alpha = 3}, {alpha = 3}

(3)

l1 := `<,>`(3+2*alpha, 1+0*alpha, 4-5*alpha)

Vector[column](%id = 36893489809910721460)

(4)

P1 := [9, 1, -11]

[9, 1, -11]

(5)

seq(solve({l1[i] = P1[i]}, alpha), i = 1 .. 3)

{alpha = 3}, {alpha = alpha}, {alpha = 3}

(6)

l2 := `<,>`(3+2*alpha, 1+0*alpha, 4-0*alpha)

Vector[column](%id = 36893489809910705556)

(7)

P2 := [9, 1, 4]

[9, 1, 4]

(8)

seq(solve({l2[i] = P2[i]}, alpha), i = 1 .. 3)

{alpha = 3}, {alpha = alpha}, {alpha = alpha}

(9)

l3 := `<,>`(3+2*alpha, 0+0*alpha, 4-0*alpha)

Vector[column](%id = 36893489809963852012)

(10)

P3 := [9, 0, 4]

[9, 0, 4]

(11)

seq(solve({l3[i] = P3[i]}, alpha), i = 1 .. 3)

{alpha = 3}, {alpha = alpha}

(12)

P4 := [9, 0, -2]

[9, 0, -2]

(13)

seq(solve({l3[i] = P4[i]}, alpha), i = 1 .. 3)

{alpha = 3}, {alpha = alpha}

(14)

 

Download 2024-12-21_Q_3D_point_lies_on_3D_line.mw

NULLComplex Numbers

 

Key Skills 11-48

NULLc11 := 2-3*i+(6+8*i)"(=)"8+5*i

c12 := 4+5*i-8+2*i"(=)"-4+7*i

c13 := -3+2*i-4+4*i"(=)"-7+6*i

c14 := 3-4*i+(3+4*i) = 6NULL

c15 := 2-5*i-8-6*i"(=)"-6-11*i

c16 := -8+4*i-2+2*i"(=)"-10+6*i

c17 := 3*(2-6*i)"(=)"6-18*i

c18 := -4*(2+8*i)"(=)"-8-32*i

NULLc19 := 2*i(2-3*i) = 2*i(2-3*i)NULL

c20 := 3*i*(-3+4*i) = 3*i*(-3+4*i)

c21 := (3-4*i)*(2+i) = (3-4*i)*(2+i)NULL

c22 := (5+3*i)*(2-i) = (5+3*i)*(2-i)

``

``

Download 1.3-Complex_Numbers_bad.mw

I'm trying to get my problems in standard form  a + bi . Questions 19 - 22 are wrong.

As a Maple beginner, I am now interested in symbolic calculations in Maple. As before, I set a problem from a subject area that interests me in order to learn from professional answers.

Determine all regular square (n;n) matrices (determinant not equal to zero) that are commutable with every regular (n;n) matrix with respect to matrix multiplication.

(I know the solution from long ago.)

2024-12-20_Q_simplification_Question.mw
Solve the general cubic. Apply values and simplify. 

Could someone show how Maple simplifies to the value of X=3? I tried doing it manually and I could not figure it out. 

Also is there a Help assistant to see the setps?

restart

 

 

X^3+a*X=b

X^3+X*a = b

(1)

 

 

sol:=solve(X^3+a*X=b,[X])

[[X = (1/6)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)-2*a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)], [X = -(1/12)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+((1/2)*I)*3^(1/2)*((1/6)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+2*a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3))], [X = -(1/12)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)-((1/2)*I)*3^(1/2)*((1/6)*(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3)+2*a/(108*b+12*(12*a^3+81*b^2)^(1/2))^(1/3))]]

(2)

vals:=[a=6,b=45]

[a = 6, b = 45]

(3)

Nans:=(map(eval,sol,vals))

[[X = (1/6)*(4860+12*166617^(1/2))^(1/3)-12/(4860+12*166617^(1/2))^(1/3)], [X = -(1/12)*(4860+12*166617^(1/2))^(1/3)+6/(4860+12*166617^(1/2))^(1/3)+((1/2)*I)*3^(1/2)*((1/6)*(4860+12*166617^(1/2))^(1/3)+12/(4860+12*166617^(1/2))^(1/3))], [X = -(1/12)*(4860+12*166617^(1/2))^(1/3)+6/(4860+12*166617^(1/2))^(1/3)-((1/2)*I)*3^(1/2)*((1/6)*(4860+12*166617^(1/2))^(1/3)+12/(4860+12*166617^(1/2))^(1/3))]]

(4)

simplify(Nans)

[[X = 3], [X = (1/4)*(I*3^(1/2)*(180+44*17^(1/2))^(2/3)+(8*I)*3^(1/2)-(180+44*17^(1/2))^(2/3)+8)/(180+44*17^(1/2))^(1/3)], [X = -3/2-((1/2)*I)*51^(1/2)]]

(5)
 

 

Download 2024-12-20_Q_simplification_Question.mw

In a plane, equilateral triangles D(i) with side lengths a(i)= 2*i−1, i = 1; 2; 3; ... are arranged along a straight line g in such a way that the "right" corner point of triangle D(k) coincides with the "left" corner point of triangle D(k+1) and that the third corner points all lie in the same half-plane generated by g. Determine the curve/function on which the third corner points lie!

First 14 15 16 17 18 19 20 Last Page 16 of 43