Maple 2023 Questions and Posts

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

I want to creat an interactive document for students. When user clicks in a coordinate-system a point shall come up. For this I need the relative (or absolute) coordinates of the actual mouse position. I cannot find the command for this. In other languages it is like getmousex, getmousey. Can anyone help, please?

As a part of my learning curve, I am trying to play with extending Maple's BernsteinBasis, which has only a limited support right now (BernsteinBasis - Maple Help (maplesoft.com)).

My goal is to implement basis operation on polynomials in Bernstein basis, so that derivatives, integrals and products of polynomials in  BernsteinBasis would be again expressed in BernsteinBasis.

While it looks like it is relatively easy to extend diff procedure, by using `diff/BernsteinBasis`, I didn't find anything similar for the int. Is there something like `int/BernsteinBasis`?

The problem is that when I am trying to implement my own int procedure in a module that  would extend standard int, it seems I need to manually implement logic for (at very least) linearity, so that int(p(x) + q(x), x) would decay into int(p(x), x) + int(q(x), x ) (I probably don't need more complex rewriting rules). So before trying this approach, is there any easy way such as with diff?
 

restart;

read("C:\\Users\\Igor\\Maple\\BernsteinPolynomials.mpl");

_m2141342686560

(1)

# General formula
diff(BernsteinBasis(k, n, a, b, x), x);

n*BernsteinBasis(k-1, n-1, a, b, x)/(b-a)-n*BernsteinBasis(k, n-1, a, b, x)/(b-a)

(2)

# In expressions
diff(2*x*BernsteinBasis(1, 2, 0, 1, x) + BernsteinBasis(2, 2, 0, 1, x), x);

2*BernsteinBasis(1, 2, 0, 1, x)+2*x*(2*BernsteinBasis(0, 1, 0, 1, x)-2*BernsteinBasis(1, 1, 0, 1, x))+2*BernsteinBasis(1, 1, 0, 1, x)

(3)

# Convertion to MatrixPolynomialObject works
p := diff(BernsteinBasis(1, 2, 0, 1, x) + BernsteinBasis(2, 2, 0, 1, x), x);
P := convert(p, MatrixPolynomialObject, x);
P:-Value(a);

p := 2*BernsteinBasis(0, 1, 0, 1, x)

 

P := Record(Value = Default[value], Variable = x, Degree = 1, Coefficient = coe, Dimension = [1, 1], Basis = BernsteinBasis, BasisParameters = [1, 0, 1], IsMonic = mon, OutputOptions = [shape = [], storage = rectangular, order = Fortran_order, fill = 0, attributes = []])

 

Matrix(%id = 36893490288797933188)

(4)

# Now, integrataion
with(BernsteinPolynomials);

[int]

(5)

# Still works
int(x^2, x);

(1/3)*x^3

(6)

# Not implemented but will be added later...
int(BernsteinBasis(1, 2, 0, 1, x), x);

"Will be implemented here..."

 

int(BernsteinBasis(1, 2, 0, 1, x), x)

(7)

# This is the problem: how to implement basis properties such as linearity?
int(2 * BernsteinBasis(1, 2, 0, 1, x), x);

int(2*BernsteinBasis(1, 2, 0, 1, x), x)

(8)

 

 

BernsteinPolynomials := module()
    description "Basic operations in Bernstein basis";
	option package;
	global BernsteinBasis, `diff/BernsteinBasis`;
	export int;

	BernsteinBasis := proc(k, n, a, b, x)
		description "Bernstein basis polynomial";
		if k::numeric then
			if k < 0 then 
				return 0;
			end if
		end if;
		if n::numeric then
			if n < 0 then 
				return 0; 
			end if;
			if k::numeric then
				if k > n then
					return 0;
				end if;
			end if;
		end if;
		'procname'(_passed)
	end proc;

	`diff/BernsteinBasis` := proc()
		description "Derivative of the Bernstein basis polynomial in the Bernstein basis";
		if _npassed = 6 then
			if _passed[-1] = _passed[-2] then
				_passed[2] * BernsteinBasis(_passed[1] - 1, _passed[2] - 1, _passed[3], _passed[4], _passed[5]) / (_passed[4] - _passed[3]) -
				_passed[2] * BernsteinBasis(_passed[1], _passed[2] - 1, _passed[3], _passed[4], _passed[5]) / (_passed[4] - _passed[3]);
			end if;
		end if;
	end proc;
	
	int := proc()
		description "Integral of the Bernstein basis polynomial in the Bernstein basis";
		if type(_passed[1], 'specfunc'(anything, BernsteinBasis)) then
		    print("Will be implemented here...");
		end if;
		:-int(_passed)
	end proc;

end module;

Download bernstein.mw

In my code, without knowing what the expression is, other than it has RootOf, the code called allvalues and got internal error 

Error, (in SolveTools:-Basis) invalid input: igcd received 5/7, which is not valid for its 2nd argument

Is this to be expected depending on the input, or is this some internal problem I need to report?

restart;
expr:=RootOf(R^4*b+R^2*a*_Z+2*_Z^2-exp(RootOf(tanh(1/2*(a^2-8*b)^(1/2)*(4*S-_Z)/a)^2*R^4*a^2-8*tanh(1/2*(a^2-8*b)^(1/2)*(4*S-_Z)/a)^2*R^4*b-R^4*a^2+8*R^4*b-8*exp(_Z))))

allvalues(expr)

Error, (in SolveTools:-Basis) invalid input: igcd received 5/7, which is not valid for its 2nd argument

Maple 2023.2 on windows 10

ps.  Reported to Maplesoft

In an old question, @mbras asked for a "partial" `convert/elsymfun`. However, SymPy's sympy.polys.rings.PolyElement.symmetrize seems to provide more examples that cannot be handled by the program that appeared in that question.
For instance, 

>>> from sympy import var
>>> var('x:z,p:r')
(x, y, z, p, q, r)
>>> from sympy.polys.polyfuncs import symmetrize
>>> symmetrize(x**2-(y**2+2**z),[y,x],formal=True,symbols=[p+p,q*q])[0]
-2**z - 4*p**2 + 2*q**2
>>> symmetrize(x*x*y+y*y*z+z*z*x,[y,x,z],formal=True,symbols=[p,q,r])
(0, x**2*y + x*z**2 + y**2*z, [(p, x + y + z), (q, x*y + x*z + y*z), (r, x*y*z)])

Though I can , can't the built-in  be generalized to such expressions (in other words, write the polynomial part of input as a symmetric part and a remainder with (named, if need be) elementary symmetric polynomials)?

Besides, since any symmetric polynomial can also be expressed in terms of the complete symmetric polynomials, is there a similar  command in Maple?

I wonder if this a bug or Am I overlooking something?

I set infolevel[dsolve]:=5; and first time calling dsolve(ode), it works as expected. It prints on the screen the trace and steps it did.  But when I repeat the command dsolve, now it only prints one line and the rest of info that were printed before no longer show.

Should not the same information be printed each time? This is what happens on another example I tried. It seems infolevel does not work the same depending on the ode being solved?  Here is a worksheet attached to show the above.

Is there a workaround to make it display same information each time?

Maple 2023.2 on windows 10.

 

restart;

21424

interface(version);

`Standard Worksheet Interface, Maple 2023.2, Windows 10, October 25 2023 Build ID 1753458`

ode:=[2*diff(x(t),t)+diff(y(t),t)=x(t)+y(t)+t,diff(x(t),t)+diff(y(t),t)=2*x(t)+3*y(t)+exp(t)];
infolevel[dsolve]:=5;
dsolve(ode);

[2*(diff(x(t), t))+diff(y(t), t) = x(t)+y(t)+t, diff(x(t), t)+diff(y(t), t) = 2*x(t)+3*y(t)+exp(t)]

5

-> Solving each unknown as a function of the next ones using the order: [y(t), x(t)]

-> Calling odsolve with the ODE diff(diff(y(x) x) x) = 4*(diff(y(x) x))-y(x)-3*x+1 y(x) singsol = none

Methods for second order ODEs:

--- Trying classification methods ---

trying a quadrature

trying high order exact linear fully integrable

trying differential order: 2; linear nonhomogeneous with symmetry [0,1]

trying a double symmetry of the form [xi=0, eta=F(x)]

-> Try solving first the homogeneous part of the ODE

   checking if the LODE has constant coefficients

   <- constant coefficients successful

   -> Determining now a particular solution to the non-homogeneous ODE

      trying a rational particular solution

      <- rational particular solution successful

<- solving first the homogeneous part of the ODE successful

{x(t) = exp((2+3^(1/2))*t)*c__2+exp(-(-2+3^(1/2))*t)*c__1-3*t-11, y(t) = -(1/2)*exp((2+3^(1/2))*t)*c__2*3^(1/2)+(1/2)*exp(-(-2+3^(1/2))*t)*c__1*3^(1/2)-(3/2)*exp((2+3^(1/2))*t)*c__2-(3/2)*exp(-(-2+3^(1/2))*t)*c__1-(1/2)*exp(t)+2*t+7}

dsolve(ode);

-> Solving each unknown as a function of the next ones using the order: [y(t), x(t)]

{x(t) = exp((2+3^(1/2))*t)*c__2+exp(-(-2+3^(1/2))*t)*c__1-3*t-11, y(t) = -(1/2)*exp((2+3^(1/2))*t)*c__2*3^(1/2)+(1/2)*exp(-(-2+3^(1/2))*t)*c__1*3^(1/2)-(3/2)*exp((2+3^(1/2))*t)*c__2-(3/2)*exp(-(-2+3^(1/2))*t)*c__1-(1/2)*exp(t)+2*t+7}

infolevel[dsolve]:=5;

5

dsolve(ode);

-> Solving each unknown as a function of the next ones using the order: [y(t), x(t)]

{x(t) = exp((2+3^(1/2))*t)*c__2+exp(-(-2+3^(1/2))*t)*c__1-3*t-11, y(t) = -(1/2)*exp((2+3^(1/2))*t)*c__2*3^(1/2)+(1/2)*exp(-(-2+3^(1/2))*t)*c__1*3^(1/2)-(3/2)*exp((2+3^(1/2))*t)*c__2-(3/2)*exp(-(-2+3^(1/2))*t)*c__1-(1/2)*exp(t)+2*t+7}

dsolve(ode);

-> Solving each unknown as a function of the next ones using the order: [y(t), x(t)]

{x(t) = exp((2+3^(1/2))*t)*c__2+exp(-(-2+3^(1/2))*t)*c__1-3*t-11, y(t) = -(1/2)*exp((2+3^(1/2))*t)*c__2*3^(1/2)+(1/2)*exp(-(-2+3^(1/2))*t)*c__1*3^(1/2)-(3/2)*exp((2+3^(1/2))*t)*c__2-(3/2)*exp(-(-2+3^(1/2))*t)*c__1-(1/2)*exp(t)+2*t+7}

ode:=diff(y(x),x$2)+y(x)=sin(x);
dsolve(ode);

diff(diff(y(x), x), x)+y(x) = sin(x)

Methods for second order ODEs:

--- Trying classification methods ---

trying a quadrature

trying high order exact linear fully integrable

trying differential order: 2; linear nonhomogeneous with symmetry [0,1]

trying a double symmetry of the form [xi=0, eta=F(x)]

-> Try solving first the homogeneous part of the ODE

   checking if the LODE has constant coefficients

   <- constant coefficients successful

   -> Determining now a particular solution to the non-homogeneous ODE

      building a particular solution using variation of parameters

<- solving first the homogeneous part of the ODE successful

y(x) = sin(x)*c__2+cos(x)*c__1+(1/2)*sin(x)-(1/2)*cos(x)*x

dsolve(ode);

Methods for second order ODEs:

--- Trying classification methods ---

trying a quadrature

trying high order exact linear fully integrable

trying differential order: 2; linear nonhomogeneous with symmetry [0,1]

trying a double symmetry of the form [xi=0, eta=F(x)]

-> Try solving first the homogeneous part of the ODE

   checking if the LODE has constant coefficients

   <- constant coefficients successful

   -> Determining now a particular solution to the non-homogeneous ODE

      building a particular solution using variation of parameters

<- solving first the homogeneous part of the ODE successful

y(x) = sin(x)*c__2+cos(x)*c__1+(1/2)*sin(x)-(1/2)*cos(x)*x

 


On a side note. the first line of the display is hard to read. Any one know what it is supposed to mean by the space between the 1 and y(x) at the end there?

Download infolevel_stops_working.mw

Another example where infolevel changes on second call to dsolve: The first call gives more information which is lost in the second call. There does not seem to be a way to fix this at user level.

restart;

23828

ode:=diff(y(x),x)+(a*x+y(x))*y(x)^2=0:
infolevel[dsolve]:=5:
dsolve(ode)

Methods for first order ODEs:

--- Trying classification methods ---

trying a quadrature

trying 1st order linear

trying Bernoulli

trying separable

trying inverse linear

trying homogeneous types:

trying Chini

differential order: 1; looking for linear symmetries

trying exact

trying Abel

The relative invariant s3 is: -1/27*a*(2*a^2*x^3-9)

The first absolute invariant s5^3/s3^5 is: 729*a^4*x^6*(2*a^2*x^3-15)^3/(2*a^2*x^3-9)^5

The second absolute invariant s3*s7/s5^2 is: 5/3/a^2*(2*a^2*x^3-9)/x^3*(2*a^4*x^6-21*a^2*x^3+18)/(2*a^2*x^3-15)^2

...checking Abel class AIL (45)

...checking Abel class AIL (310)

...checking Abel class AIR (36)

inverse of the transformation solving the problem is: {t = 1/2*(-2*a^2)^(1/3)*x, u(t) = -(-2*a^2)^(1/3)/a*y(x)}

<- Abel successful

y(x) = 2*a/(a^2*x^2+2*RootOf((-2*a^2)^(1/3)*AiryBi(_Z)*c__1*x+(-2*a^2)^(1/3)*x*AiryAi(_Z)+2*AiryBi(1, _Z)*c__1+2*AiryAi(1, _Z))*(-2*a^2)^(1/3))

dsolve(ode)

Methods for first order ODEs:

--- Trying classification methods ---

trying a quadrature

trying 1st order linear

trying Bernoulli

trying separable

trying inverse linear

trying homogeneous types:

trying Chini

differential order: 1; looking for linear symmetries

trying exact

trying Abel

<- Abel successful

y(x) = 2*a/(a^2*x^2+2*RootOf((-2*a^2)^(1/3)*AiryBi(_Z)*c__1*x+(-2*a^2)^(1/3)*x*AiryAi(_Z)+2*AiryBi(1, _Z)*c__1+2*AiryAi(1, _Z))*(-2*a^2)^(1/3))

 

Download another_example_info_level_changes.mw

I have done a complete clean reinstall of windows 10 and all programs on my pc.

In worksheet mode new files do not have the "default" red/brown text coluor ond the font is different. 

Might not be a problem but thought that was the default?

What have I changed or have Maple defaults changed?

restart

``

2+2

4

(1)

NULL

eq := x^3+x-7

x^3+x-7

(2)

NULL

Download 23-11-23_Q_inputs_to_worksheet_not_brown_red_colour.mw

This is strange problem. I have matrix M. when doing latex(M), it works. But when doing latex(simplify(evalf[16](M))) it gives internal Maple error 

Error, (in unknown) invalid input: ^ expects 2 arguments, but received 1

any workaround or ideas why it happens?

Maple 2023.2 on windows 10.

restart;

2848

interface(version)

`Standard Worksheet Interface, Maple 2023.2, Windows 10, October 25 2023 Build ID 1753458`

Physics:-Version();

`The "Physics Updates" version in the MapleCloud is 1590. The version installed in this computer is 1585 created 2023, October 29, 6:31 hours Pacific Time, found in the directory C:\Users\Owner\maple\toolbox\2023\Physics Updates\lib\`

expr:=Matrix(3, 3, [[(-a^2-b^2-c^2)^(1/2),b*c/a,-b*c/a],[0,-(a^2+b^2)/(-a^2-b^2-c^2)^(1/2),c*a/b-c^2/(-a^2-b^2-c^2)^(1/2)],[0,0,0]]);
latex(expr);

Matrix(3, 3, {(1, 1) = sqrt(-a^2-b^2-c^2), (1, 2) = b*c/a, (1, 3) = -b*c/a, (2, 1) = 0, (2, 2) = -(a^2+b^2)/sqrt(-a^2-b^2-c^2), (2, 3) = c*a/b-c^2/sqrt(-a^2-b^2-c^2), (3, 1) = 0, (3, 2) = 0, (3, 3) = 0})

\left[\begin{array}{ccc}
\sqrt{-a^{2}-b^{2}-c^{2}} & \frac{b c}{a} & -\frac{b c}{a}
\\
 0 & -\frac{a^{2}+b^{2}}{\sqrt{-a^{2}-b^{2}-c^{2}}} & \frac{c a}{b}-\frac{c^{2}}{\sqrt{-a^{2}-b^{2}-c^{2}}}
\\
 0 & 0 & 0
\end{array}\right]

expr:=simplify(evalf[16](expr));
latex(expr);

Matrix(3, 3, {(1, 1) = 1.*sqrt(-a^2-b^2-c^2), (1, 2) = b*c/a, (1, 3) = -1.*b*c/a, (2, 1) = 0., (2, 2) = (-1.*a^2-1.*b^2)/sqrt(-a^2-b^2-c^2), (2, 3) = c*a/b-1.*c^2/sqrt(-1.000000000*a^2-1.000000000*b^2-1.000000000*c^2), (3, 1) = 0., (3, 2) = 0., (3, 3) = 0.})

Error, (in unknown) invalid input: ^ expects 2 arguments, but received 1

 

(will send to Maplesoft)

Download latex_problem_after_using_evalf_nov_23_2023.mw

Anteriorly, I had done a question that you answered in the forum and it basically it was about the simplification of a equation. I'm posting the print of the screen and the code because the question of today is similarly, but not completely, because there are something that make more complicate the code that I devolved.

restart;
Hi := -Delta*S1^2 - J*S1*S2;
R1 := S1*exp(-beta*Hi);
R1 := add(R1, S1 = [--1, 0, 1]);
R2 := exp(-beta*Hi);
R2 := add(R2, S1 = [-1, 0, 1]);
S := R1/R2;
S := convert(S, trig, {J*S2});
S := simplify(S);
S := convert(S, exp, {Delta});

In this case I had to put in evidence the therm exp(Delta beta), where I simplified the expression. Now, we have more 2 variables (+2 and -2) to substitute in the equation. The code is:

restart;
Hi := -Delta*S1^2 - J*S1*S2;
R1 := S1*exp(-beta*Hi);
R1 := add(R1, S1 = [-2, -1, 0, 1, 2]);
R2 := exp(-beta*Hi);
R2 := add(R2, S1 = [-2, -1, 0, 1, -2]);
S := R1/R2;
S := convert(S, trig, {J*S2});
S := simplify(S);
S := convert(S, exp, {Delta});

In the last line we had the final equation

What should I change in the code for that my exponential function continue in evidence? This is, for my expression  be

(4*sinh(2*J*S2*beta) + 2*sinh(J*S2*beta)*exp(-3*Delta*beta))/(2*cosh(2*J*S2*beta) + 2*cosh(J*S2*beta)*exp(-3*Delta*beta) + exp(-4*Delta*beta))

Good day to all of you. 

I am working with a differential equation, got a first approximation setting all the constants equal to 1. But at the time to use the real values there appears the error numeric exception: division by zero.

I'll thanks any advice.

best regards

division_by_zero.mw

In the system below, I need to solve the solution algebraically (it is known in advance that from "V3" that a0=1,just open the V3 command).

V := exp(lambda*S) = S^4*a4 + S^3*a3 + S^2*a2 + S*a1 + a0;
V1 := subs(S = 2, V);
V2 := subs(S = 1, V);
V3 := subs(S = 0, V);
V4 := subs(S = -1, V);
V5 := subs(S = -2, V);
fsolve(subs(a0 = 1, {V1, V2, V4, V5}), {a1, a2, a3, a4});

I already know the answers, but I need maple to provide me with the command in the form

a1:=(1/6)*[8*sinh(lambda)-sinh(2*lambda)] and

a2:=(1/12)*[16*cosh(lambda)-cosh(2*lambda)-15],

a3:= ... etc.

What is the best way to do this?

I have this equation:

and I need to do some manipulation to obtain this:

I manage to get it but my manipulation is too long for my liking. Can someone show me a shorter version. I have linked the Maple document.

Manipulating_polynomial.mw

Thank you in advance for your help.

Mario

Why does _EnvLinalg95 only affect  (and ) and not and ? 
 

restart;

m := <3 , 4 | 4 , 3>;

m := Matrix(2, 2, {(1, 1) = 3, (1, 2) = 4, (2, 1) = 4, (2, 2) = 3})

(1)

LinearAlgebra:-Eigenvalues(m);

Vector(2, {(1) = 7, (2) = -1})

(2)

LinearAlgebra:-Eigenvectors(m);

Vector(2, {(1) = -1, (2) = 7}), Matrix(2, 2, {(1, 1) = -1, (1, 2) = 1, (2, 1) = 1, (2, 2) = 1})

(3)

LinearAlgebra:-EigenConditionNumbers(m);

Vector(2, {(1) = 1.00000000000000, (2) = 1.00000000000000}), Vector(2, {(1) = 8., (2) = 8.})

(4)

_EnvLinalg95 := true:

whattype(m);

Matrix

(5)

LinearAlgebra:-Eigenvalues(m);

Vector(2, {(1) = 7, (2) = -1})

(6)

LinearAlgebra:-Eigenvectors(m):

Error, (in Matrix) invalid input: `Matrix/MakeInit` expects its 1st argument, initializer, to be of type list(list), but received [proc (i, j) options operator, arrow; `if`(j = 1 and i <= 2, (Vector(2, {(1) = 1, (2) = 1}))[i], rhs(fill_opt)) end proc]

 

LinearAlgebra:-EigenConditionNumbers(m);

Vector(2, {(1) = 1.00000000000000, (2) = 1.00000000000000}), Vector(2, {(1) = 8., (2) = 8.})

(7)

_EnvLinalg95 := false:

LinearAlgebra:-Eigenvectors(m);

Vector(2, {(1) = -1, (2) = 7}), Matrix(2, 2, {(1, 1) = -1, (1, 2) = 1, (2, 1) = 1, (2, 2) = 1})

(8)


 

Download _EnvLinalg95.mw

I have read the help page of Eigenvectors but couldn't find anything related.

This looks like a bug I have not seen before. Any one seen this before?

Error, (in Handlers:-TrigExpOnly) cannot determine if this expression is true or false: tr_is_cos

Can others reproduce it? I am using Maple 2023.2 on windows 10

btw, I found that by doing int(evala(integrand),t) instead of int(integrand,t) then the error goes away but not all the time. Below are two examples. The first where evala() fixes it, but the second it does not fix it. 

Physics:-Version()

`The "Physics Updates" version in the MapleCloud is 1585 and is the same as the version installed in this computer, created 2023, October 29, 6:31 hours Pacific Time.`

interface(version);

`Standard Worksheet Interface, Maple 2023.2, Windows 10, October 25 2023 Build ID 1753458`

restart;

15332

integrand:=-(((sqrt(3)*sqrt(27983)*I + 276)*(-594 + 6*I*sqrt(3)*sqrt(27983))^(1/3) + 15*I*sqrt(3)*sqrt(27983) + (25*(-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3))/2 + 2265)*(-150 + (-150 + (-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3))*sqrt(3)*I - (-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3) + 24*(-594 + 6*I*sqrt(3)*sqrt(27983))^(1/3))*(150 + (-150 + (-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3))*sqrt(3)*I + (-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3) - 24*(-594 + 6*I*sqrt(3)*sqrt(27983))^(1/3))*((sqrt(3)*sqrt(27983)*I + 276)*(-594 + 6*I*sqrt(3)*sqrt(27983))^(1/3) - 15*I*sqrt(3)*sqrt(27983) - 2265)*exp(-t*((-594 + 6*I*sqrt(83949))^(2/3)/3 + (-594 + 6*I*sqrt(83949))^(1/3) + 50)/(-594 + 6*I*sqrt(83949))^(1/3))*(-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3)*((-594 + 6*I*sqrt(3)*sqrt(27983))^(2/3) + 12*(-594 + 6*I*sqrt(3)*sqrt(27983))^(1/3) + 150)*sin(t)*cos(t))/(10101630528*(sqrt(3)*sqrt(27983)*I - 99)^2*(sqrt(3)*sqrt(27983)*I + 27983/33)*exp(t)) - ((-594 + 6*I*sqrt(83949))^(2/3) + 12*(-594 + 6*I*sqrt(83949))^(1/3) + 150)*(2*I*sqrt(83949)*(-594 + 6*I*sqrt(83949))^(1/3) + 30*I*sqrt(83949) + 25*(-594 + 6*I*sqrt(83949))^(2/3) + 552*(-594 + 6*I*sqrt(83949))^(1/3) + 4530)*(-594 + 6*I*sqrt(83949))^(1/3)*(sqrt(83949)*(-594 + 6*I*sqrt(83949))^(1/3)*I - 15*I*sqrt(83949) + 276*(-594 + 6*I*sqrt(83949))^(1/3) - 2265)*exp(-t*((-594 + 6*I*sqrt(83949))^(2/3)/3 + (-594 + 6*I*sqrt(83949))^(1/3) + 50)/(-594 + 6*I*sqrt(83949))^(1/3))*(8*cos(t)^2/exp(t) - 4/exp(t))/(5196312*(sqrt(83949)*I + 27983/33)*(sqrt(83949)*I - 99)) + ((-594 + 6*I*sqrt(83949))^(2/3) + 12*(-594 + 6*I*sqrt(83949))^(1/3) + 150)*(2*I*sqrt(83949)*(-594 + 6*I*sqrt(83949))^(1/3) + 30*I*sqrt(83949) + 25*(-594 + 6*I*sqrt(83949))^(2/3) + 552*(-594 + 6*I*sqrt(83949))^(1/3) + 4530)*(-150 + (-594 + 6*I*sqrt(83949))^(2/3))*(-594 + 6*I*sqrt(83949))^(2/3)*exp(-t*((-594 + 6*I*sqrt(83949))^(2/3)/3 + (-594 + 6*I*sqrt(83949))^(1/3) + 50)/(-594 + 6*I*sqrt(83949))^(1/3))/(1154736*(sqrt(83949)*I + 27983/33)*(sqrt(83949)*I - 99)*exp(t)):

int(integrand,t)

Error, (in Handlers:-TrigExpOnly) cannot determine if this expression is true or false: tr_is_cos

 

Download handler_trig_exp_only_nov_18_2023.mw

But the trick of using evala() to avoid this error does not always work. Here is an example below. So need to find another workaround for this.

restart;

18704

interface(version);

`Standard Worksheet Interface, Maple 2023.2, Windows 10, October 25 2023 Build ID 1753458`

integrand2:=1/40406522112*I*(-594+6*I*3^(1/2)*27983^(1/2))^(2/3)*exp(t*(5/3*3^(1/2)*2^(1/2)
*sin(1/3*arctan(1/99*83949^(1/2))+1/6*Pi)-5*cos(1/3*arctan(1/99*83949^(1/2))+1/
6*Pi)*2^(1/2)-1))*(150+I*(-150+(-594+6*I*3^(1/2)*27983^(1/2))^(2/3))*3^(1/2)+(-\
594+6*I*3^(1/2)*27983^(1/2))^(2/3)-24*(-594+6*I*3^(1/2)*27983^(1/2))^(1/3))*(
2265+(276+I*(27983^(1/2)+92)*3^(1/2)-27983^(1/2))*(-594+6*I*3^(1/2)*27983^(1/2)
)^(1/3)+5*I*(-151+3*27983^(1/2))*3^(1/2)+15*27983^(1/2))*(2265-25*(-594+6*I*3^(
1/2)*27983^(1/2))^(2/3)+(276+I*(-276+27983^(1/2))*3^(1/2)+3*27983^(1/2))*(-594+
6*I*3^(1/2)*27983^(1/2))^(1/3)+15*I*(151+27983^(1/2))*3^(1/2)-45*27983^(1/2))*(
(-594+6*I*3^(1/2)*27983^(1/2))^(2/3)+12*(-594+6*I*3^(1/2)*27983^(1/2))^(1/3)+
150)*3^(1/2)*(-150+I*(-150+(-594+6*I*3^(1/2)*27983^(1/2))^(2/3))*3^(1/2)-(-594+
6*I*3^(1/2)*27983^(1/2))^(2/3)+24*(-594+6*I*3^(1/2)*27983^(1/2))^(1/3))/(I*3^(1
/2)*27983^(1/2)+27983/33)/(I*3^(1/2)*27983^(1/2)-99)^2/exp(t)*sin(t)*cos(t)-1/
20785248*I*(I*(-594+6*I*3^(1/2)*27983^(1/2))^(2/3)*3^(1/2)+(-594+6*I*3^(1/2)*
27983^(1/2))^(2/3)-150*I*3^(1/2)-24*(-594+6*I*3^(1/2)*27983^(1/2))^(1/3)+150)*
exp(5/3*3^(1/2)*sin(1/3*arctan(1/99*83949^(1/2))+1/6*Pi)*2^(1/2)*t-5*cos(1/3*
arctan(1/99*83949^(1/2))+1/6*Pi)*2^(1/2)*t-t)*(2265-25*(-594+6*I*3^(1/2)*27983^
(1/2))^(2/3)+(276+I*(-276+27983^(1/2))*3^(1/2)+3*27983^(1/2))*(-594+6*I*3^(1/2)
*27983^(1/2))^(1/3)+15*I*(151+27983^(1/2))*3^(1/2)-45*27983^(1/2))*(2265+(276+I
*(27983^(1/2)+92)*3^(1/2)-27983^(1/2))*(-594+6*I*3^(1/2)*27983^(1/2))^(1/3)+5*I
*(-151+3*27983^(1/2))*3^(1/2)+15*27983^(1/2))*(-594+6*I*3^(1/2)*27983^(1/2))^(1
/3)*3^(1/2)/(I*3^(1/2)*27983^(1/2)+27983/33)/(I*3^(1/2)*27983^(1/2)-99)*(8/exp(
t)*cos(t)^2-4/exp(t))+1/13856832*I*(-594+6*I*3^(1/2)*27983^(1/2))^(2/3)*(-450+I
*(-150+(-594+6*I*3^(1/2)*27983^(1/2))^(2/3))*3^(1/2)-3*(-594+6*I*3^(1/2)*27983^
(1/2))^(2/3))*exp(t*(5/3*3^(1/2)*2^(1/2)*sin(1/3*arctan(1/99*83949^(1/2))+1/6*
Pi)-5*cos(1/3*arctan(1/99*83949^(1/2))+1/6*Pi)*2^(1/2)-1))*(150+I*(-150+(-594+6
*I*3^(1/2)*27983^(1/2))^(2/3))*3^(1/2)+(-594+6*I*3^(1/2)*27983^(1/2))^(2/3)-24*
(-594+6*I*3^(1/2)*27983^(1/2))^(1/3))*(2265-25*(-594+6*I*3^(1/2)*27983^(1/2))^(
2/3)+(276+I*(-276+27983^(1/2))*3^(1/2)+3*27983^(1/2))*(-594+6*I*3^(1/2)*27983^(
1/2))^(1/3)+15*I*(151+27983^(1/2))*3^(1/2)-45*27983^(1/2))*3^(1/2)/(I*3^(1/2)*
27983^(1/2)+27983/33)/(I*3^(1/2)*27983^(1/2)-99)/exp(t):

int(integrand2,t);

Error, (in Handlers:-TrigExpOnly) cannot determine if this expression is true or false: tr_is_cos

int(evala(integrand2),t);

Error, (in Handlers:-TrigExpOnly) cannot determine if this expression is true or false: tr_is_cos

 

Download handler_trig_exp_version_2.mw

ps. send to Maplesoft support.

MmaTranslator:-Mma:-Chop  does not seem to work as advertised.. It is supposed to work like Mathematica's Chop, but it does not. Is this by design or is it a bug?

restart;

MmaTranslator:-Mma:-Chop(((1.378834798932344*10^(-15))*I)*t) ;

returns the same input (1.378834799*10^(-15))*I*t but

MmaTranslator:-Mma:-Chop(((1.378834798932344*10^(-15))*I));

now returns 0.

But compare to Mathematica:

This makes it not very useful to use if one has to remove all symbols from an expression first, Any workaround? Here is an actual example where I wanted to use it

ode:=[diff(x(t), t) = -3*x(t) + 4*y(t), diff(y(t), t) = 5*x(t) + 9*z(t), diff(z(t), t) = y(t) + 6*z(t)];
sol:=dsolve(ode):
evalf[16](sol);

gives

Gives

{x(t) = (0.8172764110864494 - (7.853170607134887*10^(-16))*I)*c__1*exp((1.894304969211800 - (1.378834798932344*10^(-15))*I)*t) - (1.150854759654687 + (3.398186702482929*10^(-16))*I)*c__2*exp((-6.475677505300665 + (3.730232887526917*10^(-17))*I)*t) + (0.3780227930126823 + (9.268277369231981*10^(-16))*I)*c__3*exp((7.581372536088866 + (1.198480681985453*10^(-15))*I)*t), y(t) = c__1*exp((1.894304969211800 - (1.378834798932344*10^(-15))*I)*t) + c__2*exp((-6.475677505300665 + (3.730232887526917*10^(-17))*I)*t) + c__3*exp((7.581372536088866 + (1.198480681985453*10^(-15))*I)*t), z(t) = (-0.2435641206911610 + (1.431838044809606*10^(-16))*I)*c__1*exp((1.894304969211800 - (1.378834798932344*10^(-15))*I)*t) + (-0.08015596744746927 + (4.286632781083632*10^(-16))*I)*c__2*exp((-6.475677505300665 + (3.730232887526917*10^(-17))*I)*t) + (0.6323620634472722 - (5.261170533293161*10^(-16))*I)*c__3*exp((7.581372536088866 + (1.198480681985453*10^(-15))*I)*t)}

But Chop does not work on this. 

Maple 2023.2

There seems to be a consensus about using ListTools:-SearchAll to locate an item in a list. However, this subroutine does not work on other expressions; A simple instance is that “ListTools:-SearchAll(1, [[1], 1]);” only outputs  while what I need is  (because both “op([1, 1], [[1], 1])” and “op([2], [[1], 1])” are ). And actually, I hope that there is a more general version in Maple.
For example, I intend to do something like 

restart;
expr, elem := ToInert(eval(`print/Diff`)), '_Inert_NAME'("_syslib"):
SearchAll(elem, expr);

and 

List:=[[[[cS,[[[cS,cS],cS],[[[cS,cS],[[cK,cK],cS]],cS]]],cS],cS],[[[cS,[[cK,cS],cK]],cK],cS]]: 
items:=Or([[[identical(cS),anything],anything],anything],[[identical(cK),anything],anything]): 
SearchAll(items,List); 

In other words, I need all positions of an operand of an expression (cf. op).

It may be manually checked that the "indices" of  in  include [5,1,1,2,1,1,1,2,1,2,1,2], [5,1,2,2,1,1,1,1,2,1,2], and [5,2,2,1,1,3,1,2], since 

patmatch(op([5, 1, 1, 2, 1, 1, 1, 2, 1, 2, 1, 2], expr), elem);
 = 
                              true

patmatch(op([5, 1, 2, 2, 1, 1, 1, 1, 2, 1, 2], expr), elem);
 = 
                              true

patmatch(op([5, 2, 2, 1, 1, 3, 1, 2], expr), elem);
 = 
                              true

Similarly, after some manual searchs, 

[[1], [1, 1, 1, 2], [1, 1, 1, 2, 2], [1, 1, 1, 2, 2, 1, 2], [2], [2, 1, 1, 2]]:
convert(typematch~(map2(`?[]`, List, `%`), items), `and`);
 = 
                              true

It turns out that all "indices" in  of  are [1][1,1,1,2][1,1,1,2,2][1,1,1,2,2,1,2][2], and [2,1,1,2].
But isn't there such a  command that can eliminate the need to manually retrieve them?

First 7 8 9 10 11 12 13 Last Page 9 of 27