acer

30645 Reputation

29 Badges

18 years, 349 days
Ontario, Canada

Social Networks and Content at Maplesoft.com

MaplePrimes Activity


These are answers submitted by acer

Does this behavior get affected/improved if you change the interface(rtablesize) setting?

Does this behaviour get affected/improved if you manage to disable the (new in M2024) so-called scrollable rtable/Matrix/Vector display?

ps. I have changed your Post into a Question.

See the Comparing sum and add section on the ?sum,details Help page.

And also note that the add command has special evaluation rules on its first parameter.

Also, your myfac procedure can be done using mul (or add of the powers), instead of a loop. A symbolic formula for it can also be constructed using the product (or sum) commands.

Here is an explanation of how it was going wrong for you (note the error message's meaning), as well as alternatives mentioned.

NULL

restart

myfac := proc (n::nonnegint) local out, i, a, q; a := [3]; q := 2; out := a[1]; for i from 0 to n do out := out*q^i end do; out end proc

myfac(4)

3072

values := [seq(myfac(i), i = 0 .. 3)]

[3, 6, 24, 192]

add(values)

225

sum(myfac(i), i = 0 .. 3)

Error, invalid input: myfac expects its 1st argument, n, to be of type nonnegint, but received i

myfac(i)

Error, invalid input: myfac expects its 1st argument, n, to be of type nonnegint, but received i

add(myfac(i), i = 0 .. 3)

225

sum(('myfac')(i), i = 0 .. 3)

225

factor(sum(i, i = 1 .. n))

(1/2)*n*(n+1)

Alternate way to write myfac.
nb. Another is to use 3*2^add(i,i=0..n)
myfac2 := proc (n) local i; 3*mul(2^i, i = 0 .. n) end proc

seq(myfac2(i), i = 0 .. 3)

3, 6, 24, 192

Symbolic formula for myfac,
using product instead of mul
formula := 3*(product(2^i, i = 0 .. n)); formula := factor(formula); myfac3 := unapply(formula, n)

3*2^((1/2)*(n+1)^2-(1/2)*n-1/2)

3*2^((1/2)*n*(n+1))

proc (n) options operator, arrow; 3*2^((1/2)*n*(n+1)) end proc

seq(myfac3(i), i = 0 .. 3)

3, 6, 24, 192

add(myfac3(i), i = 0 .. 3)

225

Note also,

factor(sum(i, i = 0 .. n)); 3*2^%

(1/2)*n*(n+1)

3*2^((1/2)*n*(n+1))

NULL

Download sum_of_geometric_sequence_ac.mw

Is this more what you're after? (Using Maple 2021.2)

I notice that your 2D Input is actually entered using the sqrt command. So one alternative (to fixing it up after the fact) might be to instead enter those with (...)^(1/2) instead of sqrt(...).

restart

K := {w = a[3]*(9*lambda*a[4]*a[5]-2*a[3]^2)/(54*a[4]^2), a[1] = 0, a[2] = -(3*lambda*a[4]*a[5]-2*a[3]^2)/(6*a[4]), alpha[0] = -a[3]/(3*a[4]), alpha[1] = `&-+`(sqrt(-a[5]/(2*a[4]))), beta[0] = `&-+`(sqrt(-(lambda^2*B[1]^2*a[5]-lambda^2*B[2]^2*a[5]-mu^2*a[5])/(2*lambda*a[4])))}

{w = (1/54)*a[3]*(9*lambda*a[4]*a[5]-2*a[3]^2)/a[4]^2, a[1] = 0, a[2] = -(1/6)*(3*lambda*a[4]*a[5]-2*a[3]^2)/a[4], alpha[0] = -(1/3)*a[3]/a[4], alpha[1] = `&-+`((1/2)*(-2*a[5]/a[4])^(1/2)), beta[0] = `&-+`((1/2)*(-2*(lambda^2*B[1]^2*a[5]-lambda^2*B[2]^2*a[5]-mu^2*a[5])/(lambda*a[4]))^(1/2))}

subsindets(K, `&*`(rational, anything^(1/2)), proc (u) options operator, arrow; (u^2)^(1/2) end proc)

{w = (1/54)*a[3]*(9*lambda*a[4]*a[5]-2*a[3]^2)/a[4]^2, a[1] = 0, a[2] = -(1/6)*(3*lambda*a[4]*a[5]-2*a[3]^2)/a[4], alpha[0] = -(1/3)*a[3]/a[4], alpha[1] = `&-+`((-(1/2)*a[5]/a[4])^(1/2)), beta[0] = `&-+`((-(1/2)*(lambda^2*B[1]^2*a[5]-lambda^2*B[2]^2*a[5]-mu^2*a[5])/(lambda*a[4]))^(1/2))}

latex(%)

\left\{w =
\frac{a_{3} \left(9 \lambda  a_{4} a_{5}-2 a_{3}^{2}\right)}{54 a_{4}^{2}}
, a_{1} = 0, a_{2} =
-\frac{3 \lambda  a_{4} a_{5}-2 a_{3}^{2}}{6 a_{4}}, \alpha_{0} =
-\frac{a_{3}}{3 a_{4}}, \alpha_{1} = \mp \sqrt{-\frac{a_{5}}{2 a_{4}}}
, \beta_{0} =
\mp \sqrt{-\frac{\lambda^{2} B_{1}^{2} a_{5}-\lambda^{2} B_{2}^{2} a_{5}-\mu^{2} a_{5}}{2 \lambda  a_{4}}}
\right\}

KK := {w = a[3]*(9*lambda*a[4]*a[5]-2*a[3]^2)/(54*a[4]^2), a[1] = 0, a[2] = -(3*lambda*a[4]*a[5]-2*a[3]^2)/(6*a[4]), alpha[0] = -a[3]/(3*a[4]), alpha[1] = `&-+`((-a[5]/(2*a[4]))^(1/2)), beta[0] = `&-+`((-(lambda^2*B[1]^2*a[5]-lambda^2*B[2]^2*a[5]-mu^2*a[5])/(2*lambda*a[4]))^(1/2))}

{w = (1/54)*a[3]*(9*lambda*a[4]*a[5]-2*a[3]^2)/a[4]^2, a[1] = 0, a[2] = -(1/6)*(3*lambda*a[4]*a[5]-2*a[3]^2)/a[4], alpha[0] = -(1/3)*a[3]/a[4], alpha[1] = `&-+`((-(1/2)*a[5]/a[4])^(1/2)), beta[0] = `&-+`((-(1/2)*(lambda^2*B[1]^2*a[5]-lambda^2*B[2]^2*a[5]-mu^2*a[5])/(lambda*a[4]))^(1/2))}

latex(KK)

\left\{w =
\frac{a_{3} \left(9 \lambda  a_{4} a_{5}-2 a_{3}^{2}\right)}{54 a_{4}^{2}}
, a_{1} = 0, a_{2} =
-\frac{3 \lambda  a_{4} a_{5}-2 a_{3}^{2}}{6 a_{4}}, \alpha_{0} =
-\frac{a_{3}}{3 a_{4}}, \alpha_{1} = \mp \sqrt{-\frac{a_{5}}{2 a_{4}}}
, \beta_{0} =
\mp \sqrt{-\frac{\lambda^{2} B_{1}^{2} a_{5}-\lambda^{2} B_{2}^{2} a_{5}-\mu^{2} a_{5}}{2 \lambda  a_{4}}}
\right\}

NULL

Download latex2_ac.mw

I don't see num_steps defined or assigned. Perhaps you intend that as, say, ceil((tmax - 0)/dt) or similar.

You don't ever evalf the contents of U0, so everything blows up as enormous symbolic expressions. That's the basic reason why it appeared to take forever. I expect that you intended to utilize floating-point values.

You can use Tabulate to overwrite (in-place) an output of the running plotU. If you want all the intermediate plots shown then you could use print(plotU) instead of your original display(plotU). But note that your original display(plotU) wasn't being assigned to anything. If instead you were to assign all the individual plotU plots as entries in a table TT then after the loop you could display(entries(TT),insequence) and get an animation.

Numerical_Simulation_of_discrete_Klein-Gordon_Equation_ac.mw

ps. I have not revised or examined the underlying algorithm or its implementation. Commenting the code better might be useful.

It is more generally straightforward to programmatically access the results from the ifactors command, rather than from the ifactor command.

x := ifactors(6);

[1, [[2, 1], [3, 1]]]

x[2];

[[2, 1], [3, 1]]

x[2,1,1]

2

x[2,2,1]

3


Download ifactors_ex.mw

One aspect that makes it more sensible is that the methodology can be consistent whether the factors have multiplicity 1 or greater than 1. Eg, whether the original is say 6, or 72. But with ifactor the deconstruction would need a separate case for whether the power was 1 (in which case not actually present) or greater than 1.

a := "x^2";

"x^2"

StringTools:-RegSplit("\\^",a);

"x", "2"


Download regsplit_ex.mw

The codegen:-cost command does this computation (with addition and subtraction having the same "cost").

The individual numbers can be extracted in a usual manner, using coeff.

A := (g*m*s*y-g*m*t*x-g*n*r*y+g*n*t*w+g*o*r*x-g*o*s*w-h*l*s*y+h*l*t*x+h*n*q*y-h*n*t*v-h*o*q*x+h*o*s*v+h2*l*r*y-h2*l*t*w-h2*m*q*y+h2*m*t*v+h2*o*q*w-h2*o*r*v-j*l*r*x+j*l*s*w+j*m*q*x-j*m*s*v-j*n*q*w+j*n*r*v)/(c*h2*o*p*v+d*f*m*q*y-b*h*o*s*u-b*h2*k*r*y+b*h2*k*t*w+d*f*l*t*w-d*f*l*r*y+d*h*k*t*v+d2*f*l*r*x-d*j*m*q*u+d2*g*k*s*w-d2*g*k*r*x+b*h*o*p*x+b*h*n*t*u-b*h*n*p*y+c*f*o*q*x-d*h*k*q*y-d*g*o*r*u+d*g*o*p*w+d*g*m*t*u+c*j*n*q*u-c*j*n*p*v-c*j*l*s*u+c*j*l*p*x-c*g*k*s*y-c*f*o*s*v-d2*h2*k*q*w+d2*h2*k*r*v-c*f*n*q*y-c*f*l*t*x+c*f*l*s*y-b*j*n*r*u-b*f*o*r*x+c*g*n*p*y+c*g*k*t*x+a*h2*l*r*y-a*h2*l*t*w+c*h2*k*q*y+c*g*o*s*u-c*g*o*p*x-c*g*n*t*u-d*j*l*p*w-a*h*o*q*x+a*h*o*s*v+a*h*l*t*x+a*h*n*q*y-a*h*n*t*v+a*g*o*r*x-a*g*o*s*w-a*h*l*s*y+a*g*m*s*y-a*g*m*t*x-a*g*n*r*y+a*g*n*t*w+d*j*m*p*v+b*j*n*p*w+b*j*m*s*u-b*j*m*p*x+d*j*l*r*u+d*h*o*q*u+d*j*k*q*w-d*j*k*r*v-d2*h*l*p*x-d2*f*l*s*w-d2*f*m*q*x+d2*f*m*s*v+d2*f*n*q*w+d2*h2*l*p*w-d2*h2*l*r*u-d2*h2*m*p*v-a*j*l*r*x+a*j*l*s*w+a*j*m*q*x-a*j*m*s*v-a*j*n*q*w+a*j*n*r*v-b*f*m*s*y+b*f*m*t*x+b*f*n*r*y-b*f*n*t*w+b*f*o*s*w-d2*h*k*s*v+c*f*n*t*v-a*h2*m*q*y+a*h2*m*t*v+a*h2*o*q*w-a*h2*o*r*v-d2*f*n*r*v-d2*h*n*q*u+d2*h*k*q*x+d2*g*n*r*u-d2*g*n*p*w+b*h*k*s*y-d2*g*m*s*u+d2*h*n*p*v+c*h2*l*t*u-c*h2*l*p*y-b*h*k*t*x-b*j*k*s*w+b*j*k*r*x-c*h2*o*q*u-c*j*k*q*x+c*j*k*s*v+b*h2*o*r*u-b*h2*o*p*w+d2*g*m*p*x-c*h2*k*t*v-b*h2*m*t*u+b*h2*m*p*y-d*g*m*p*y-d*g*k*t*w+d*g*k*r*y+d*f*o*r*v-d*h*o*p*v+d2*h2*m*q*u-d*h*l*t*u+d2*h*l*s*u+d*h*l*p*y-d*f*o*q*w-d*f*m*t*v)

raw := codegen:-cost(A)

142*additions+552*multiplications+divisions

lprint(raw)

142*additions+552*multiplications+divisions

`~`[coeff](raw, [additions, multiplications, divisions])

[142, 552, 1]


Download Count_the_number_of_operations_in_A_ac.mw

note: If you do it by way of conversion to string then be wary of any special names that might contain the characters of the relevant operators. (That doesn't affect your example, of course.)

You might also be interested in some means of reducting of these numbers.

restart

A := (g*m*s*y-g*m*t*x-g*n*r*y+g*n*t*w+g*o*r*x-g*o*s*w-h*l*s*y+h*l*t*x+h*n*q*y-h*n*t*v-h*o*q*x+h*o*s*v+h2*l*r*y-h2*l*t*w-h2*m*q*y+h2*m*t*v+h2*o*q*w-h2*o*r*v-j*l*r*x+j*l*s*w+j*m*q*x-j*m*s*v-j*n*q*w+j*n*r*v)/(c*h2*l*t*u-c*h2*k*t*v+c*h2*k*q*y+d2*g*k*s*w-b*j*k*s*w-d*j*k*r*v-d*h*k*q*y-d2*h2*k*q*w-d*g*k*t*w+d*g*k*r*y+d*f*o*r*v-c*h2*l*p*y-d2*f*m*q*x+d2*f*m*s*v+d2*f*n*q*w-d2*f*n*r*v-d2*g*k*r*x+d*f*l*t*w+d*f*m*q*y-d*f*m*t*v-d2*g*n*p*w+b*h2*m*p*y-d*g*o*r*u+d2*h*l*s*u+c*g*k*t*x-c*g*k*s*y-c*f*o*s*v+c*f*o*q*x+c*f*n*t*v-c*f*n*q*y-c*f*l*t*x+c*f*l*s*y-b*j*n*r*u-d*f*o*q*w+a*j*n*r*v-b*f*m*s*y-c*g*n*t*u+c*g*n*p*y-d*j*m*q*u-b*h2*m*t*u-b*h2*o*p*w+d*j*m*p*v+d*j*l*r*u-b*j*m*p*x+b*j*m*s*u+b*j*n*p*w+c*h2*o*p*v-d*h*o*p*v-d2*g*m*s*u+d2*g*m*p*x+a*j*m*q*x+a*j*l*s*w-a*h2*o*r*v-a*j*l*r*x+a*h2*o*q*w-a*h2*m*q*y+a*h2*m*t*v+a*h2*l*r*y-a*h2*l*t*w-a*h*o*q*x+a*h*o*s*v+a*h*n*q*y-a*h*n*t*v-a*g*o*s*w-a*h*l*s*y+a*h*l*t*x-a*g*m*t*x-a*g*n*r*y+a*g*n*t*w+a*g*o*r*x-d*f*l*r*y+b*f*m*t*x+b*f*n*r*y-b*f*n*t*w-b*f*o*r*x+b*f*o*s*w+b*h*k*s*y+c*j*n*q*u-c*j*n*p*v+a*g*m*s*y-d2*h*n*q*u+d2*h*n*p*v-b*h*k*t*x+d*h*o*q*u-d2*h*l*p*x-d2*h*k*s*v+d2*h*k*q*x-c*h2*o*q*u+b*h2*k*t*w-b*h*n*p*y+b*h*n*t*u+d*h*k*t*v+d*h*l*p*y-d*h*l*t*u+b*h*o*p*x-b*h*o*s*u+c*j*k*s*v+c*j*l*p*x-c*j*l*s*u+d*j*k*q*w-b*h2*k*r*y-c*j*k*q*x+d2*h2*m*q*u-a*j*m*s*v-d2*h2*m*p*v+d*g*o*p*w+d*g*m*t*u-d*g*m*p*y-a*j*n*q*w-d2*h2*l*r*u+d2*h2*l*p*w+b*h2*o*r*u+b*j*k*r*x-d*j*l*p*w+d2*g*n*r*u-d2*f*l*s*w+d2*f*l*r*x-c*g*o*p*x+c*g*o*s*u+d2*h2*k*r*v)

raw := codegen:-cost(A)

142*additions+552*multiplications+divisions

new1 := simplify(A, size)

(((-r*y+t*w)*l+(q*y-t*v)*m-o*(q*w-r*v))*h2+((-s*y+t*x)*m+(r*y-t*w)*n-o*(r*x-s*w))*g+((s*y-t*x)*l+(-q*y+t*v)*n+o*(q*x-s*v))*h+((r*x-s*w)*l+(-q*x+s*v)*m+n*(q*w-r*v))*j)/((((-a*y+d2*u)*r+(a*w-c*u)*t-p*(-c*y+d2*w))*l+((a*y-d2*u)*q+(-a*v+b*u)*t-p*(b*y-d2*v))*m+((-a*w+c*u)*q+(a*v-b*u)*r+p*(b*w-c*v))*o+k*((-c*y+d2*w)*q+(b*y-d2*v)*r-t*(b*w-c*v)))*h2+(((-a*y+d2*u)*s+(a*x-d*u)*t-p*(-d*y+d2*x))*m+((a*y-d2*u)*r+(-a*w+c*u)*t+p*(-c*y+d2*w))*n+((-a*x+d*u)*r+(a*w-c*u)*s-p*(-c*x+d*w))*o+k*((-d*y+d2*x)*r+(c*y-d2*w)*s+t*(-c*x+d*w)))*g+(((a*y-d2*u)*s+(-a*x+d*u)*t+p*(-d*y+d2*x))*l+((-a*y+d2*u)*q+(a*v-b*u)*t+p*(b*y-d2*v))*n+((a*x-d*u)*q+(-a*v+b*u)*s-p*(b*x-d*v))*o-k*((-d*y+d2*x)*q+(b*y-d2*v)*s-t*(b*x-d*v)))*h+(((a*x-d*u)*r+(-a*w+c*u)*s+p*(-c*x+d*w))*l+((-a*x+d*u)*q+(a*v-b*u)*s+p*(b*x-d*v))*m+((a*w-c*u)*q+(-a*v+b*u)*r-p*(b*w-c*v))*n-k*((-c*x+d*w)*q+(b*x-d*v)*r-s*(b*w-c*v)))*j-f*(((-d*y+d2*x)*r+(c*y-d2*w)*s+t*(-c*x+d*w))*l+((d*y-d2*x)*q+(-b*y+d2*v)*s+t*(b*x-d*v))*m+((-c*y+d2*w)*q+(b*y-d2*v)*r-t*(b*w-c*v))*n-((-c*x+d*w)*q+(b*x-d*v)*r-s*(b*w-c*v))*o))

codegen:-cost(new1)

142*additions+245*multiplications+divisions

vars := indets(A, And(name, Not(constant))); new2 := (codegen:-optimize(unapply(A, vars[]), tryhard))(vars[])

(g*((s*y-t*x)*m-(r*y-t*w)*n+o*(r*x-s*w))-h*((s*y-t*x)*l-(q*y-t*v)*n+o*(q*x-s*v))+h2*((r*y-t*w)*l-(q*y-t*v)*m+o*(q*w-r*v))-j*((r*x-s*w)*l-(q*x-s*v)*m+n*(q*w-r*v)))/((f*((r*x-s*w)*l-(q*x-s*v)*m+n*(q*w-r*v))-g*((r*x-s*w)*k-(p*x-s*u)*m+(p*w-r*u)*n)+h*((q*x-s*v)*k-(p*x-s*u)*l+(p*v-q*u)*n)-h2*((q*w-r*v)*k-(p*w-r*u)*l+(p*v-q*u)*m))*d2+(-f*((r*y-t*w)*l-(q*y-t*v)*m+o*(q*w-r*v))+g*((r*y-t*w)*k-(p*y-t*u)*m+(p*w-r*u)*o)-h*((q*y-t*v)*k-(p*y-t*u)*l+(p*v-q*u)*o)+j*((q*w-r*v)*k-(p*w-r*u)*l+(p*v-q*u)*m))*d+(f*((s*y-t*x)*l-(q*y-t*v)*n+o*(q*x-s*v))-g*((s*y-t*x)*k-(p*y-t*u)*n+(p*x-s*u)*o)+h2*((q*y-t*v)*k-(p*y-t*u)*l+(p*v-q*u)*o)-j*((q*x-s*v)*k-(p*x-s*u)*l+(p*v-q*u)*n))*c+(-f*((s*y-t*x)*m-(r*y-t*w)*n+o*(r*x-s*w))+h*((s*y-t*x)*k-(p*y-t*u)*n+(p*x-s*u)*o)-h2*((r*y-t*w)*k-(p*y-t*u)*m+(p*w-r*u)*o)+j*((r*x-s*w)*k-(p*x-s*u)*m+(p*w-r*u)*n))*b+(g*((s*y-t*x)*m-(r*y-t*w)*n+o*(r*x-s*w))-h*((s*y-t*x)*l-(q*y-t*v)*n+o*(q*x-s*v))+h2*((r*y-t*w)*l-(q*y-t*v)*m+o*(q*w-r*v))-j*((r*x-s*w)*l-(q*x-s*v)*m+n*(q*w-r*v)))*a)

codegen:-cost(new2)

142*additions+245*multiplications+divisions

LC := MmaTranslator:-Mma:-LeafCount

`~`[LC]([A, new1, new2])

[917, 829, 848]

Download Count_the_number_of_operations_in_A_acc.mw

Sometimes one can beat simplify(...,size) for this kind of thing through special use of collect.

The applyrule command is not receiving what you think, due to usual evaluation rules for procedure calls.

You could do this, instead,

e1 := sin(2*sqrt(a*b)*(t+mu));

sin(2*(a*b)^(1/2)*(t+mu))

applyrule( sin(x::anything) = cos('expand'(x)), e1 );

cos(2*(a*b)^(1/2)*t+2*(a*b)^(1/2)*mu)


Download applyrule_defer.mw

You can use trace to see what applyrule was actually receiving, for your example.

e1 := sin(2*sqrt(a*b)*(t+mu)):
trace(applyrule):

applyrule( sin(x::anything) = cos(expand(x)), e1 );

{--> enter applyrule, args = sin(x::anything) = cos(x), sin(2*(a*b)^(1/2)*(t+mu))
...

The above trace details show that applyrule was actually receiving the first of these next two results as its first argument. But you want it to receive something like the second.

sin(x::anything) = cos(expand(x))
                   sin(x::anything) = cos(x)

sin(x::anything) = cos('expand'(x))
               sin(x::anything) = cos(expand(x))

Here I'm using the same formula in each of your cases.

restart;

styles:=[symbol=solidcircle,symbolsize=20]:

C:=[red,green,blue,magenta]:

nC := nops(C);

4

L:=[[1,2],[3,4],[-5,6],[-3,-2]];

[[1, 2], [3, 4], [-5, 6], [-3, -2]]

plots:-display(plottools:-point( L, styles[],
                                 color=[seq(C[],i=1..iquo(nops(L),nC)),
                                        C[..irem(nops(L),nC)][]] ))

#too few point for the colours;
L1:=[[1,2],[3,4],[-5,6]];

[[1, 2], [3, 4], [-5, 6]]

plots:-display(plottools:-point( L1, styles[],
                                 color=[seq(C[],i=1..iquo(nops(L1),nC)),
                                        C[..irem(nops(L1),nC)][]] ))

#too many point for the colours;
f:=rand(-5.0..5.0):
L2 := [seq([f(),f()],i=1..rand(25..35)())]: nops(L2);

31

plots:-display(plottools:-point( L2, styles[],
                                 color=[seq(C[],i=1..iquo(nops(L2),nC)),
                                        C[..irem(nops(L2),nC)][]] ))

 

Download 2024-09-06_Q_Extend_or_Truncate_List_of_Colours_ac.mw

Since it's the same formula (except for the name of the data list) making a re-usable procedure for it is very easy. Here's that revision:
List_of_Colours_ac2.mw


ps. I suppose a fun alternative might be to split the data list L into min(nops(C),nop(L)) separate lists (using say indexed position in L, modulo nops(C)) and then construct plots for each using the appropriate single color.

restart


I use the right-click menu to convert the following to an "atomic variable", ie, a special name which the GUI prints nicely but is in fact just a Maple name underneath.

   2-D Math -> Convert To -> Atomic Variable

`#mover(mi("x"),mo("¯"))`

`#mover(mi("x"),mo("¯"))`

lprint(%)

`#mover(mi("x"),mo("¯"))`

v := %

`#mover(mi("x"),mo("¯"))`

diff(v^2, v)

2*`#mover(mi("x"),mo("¯"))`

 


I can copy&paste from the output that I converted above, if I want to re-use it in additional 2D Input.

diff(sin(`#mover(mi("x"),mo("¯"))`^2), v)

2*`#mover(mi("x"),mo("¯"))`*cos(`#mover(mi("x"),mo("¯"))`^2)

`#mover(mi("x"),mo("¯"))`

`#mover(mi("x"),mo("¯"))`

``

Download How_do_I_make_an_accented_symbol_inert_ac.mw

More programmatic alternatives include temporary substitution (freeze & thaw, say) or (sometimes) using frontend.

I'll address your error message: [Length of output exceeds limit of 1000000]

If you are going to assign the odeplot result to a name then the GUI can get confused when trying to inline print/display the output. (...in the case that the plot structure is very large.)

You can get around that by doing it in two steps:

# Note that this next statement is terminated with a full colon.
phaseplot := odeplot(sol, [x(t), y(t)], 0 .. 20000, numpoints = 20000,
                     color = red, thickness = 2,
                     axes = boxed, gridlines,
                     title = "Phase-space Diagram"):

# Now, terminating with a semicolon, to show it.
phaseplot;

extra_steps_ac.mw

 

e := Int(1/(3*u^4 + u + 3), u):

IntegrationTools:-Change(e, u=y*x^(1/3), y);

    Int(x/(3*x^2*y^4+x*y+3*x^(2/3)),y)

One way is the following change of variables, after which the integration succeeds.

Then, the actions after the call to value are just to massage the form. You can adjust or fiddle with them to get variants.

But simplify of the difference between this form and your particular target form produces zero.

restart;

kernelopts(version);

`Maple 2024.0, X86 64 LINUX, Mar 01 2024, Build ID 1794891`

foo := Int(sqrt(x^2+sqrt(x^4+1))/(x+1)/sqrt(x^4+1),x=0..infinity);

Int((x^2+(x^4+1)^(1/2))^(1/2)/((x+1)*(x^4+1)^(1/2)), x = 0 .. infinity)

bar := IntegrationTools:-Change(foo,u=x^2 + sqrt(x^4 + 1)):

combine(evala(convert(simplify(value(bar)),ln)));

(1/8)*(2+2*2^(1/2))^(1/2)*ln(113+80*2^(1/2)+72*(1+2^(1/2))^(1/2)+52*(2+2*2^(1/2))^(1/2))


Download Int_CW.mw

It's not clear to me what might be your precise problem or actual goal.

But here is a modified example.

Test_ac.zip

Are you trying to get something like the following?

restart;

y := (1 + diff(u(r), r))*diff(u(r), r, r)
     + (1 + vs*u(r)/r + (1 - vs)/2*diff(u(r), r))*diff(u(r), r)/r
     - (1 + (1 + vs)/(2*r)*u(r))*u(r)/r^2;

(1+diff(u(r), r))*(diff(diff(u(r), r), r))+(1+vs*u(r)/r+(1/2)*(1-vs)*(diff(u(r), r)))*(diff(u(r), r))/r-(1+(1/2)*(1+vs)*u(r)/r)*u(r)/r^2

PDEtools:-dchange({r=R*rs, u(r)=h*U(R*rs)}, y, [rs, U]);

(1+h*(D(U))(R*rs))*h*((D@@2)(U))(R*rs)+(1+vs*h*U(R*rs)/(R*rs)+(1/2)*(1-vs)*h*(D(U))(R*rs))*h*(D(U))(R*rs)/(R*rs)-(1+(1/2)*(1+vs)*h*U(R*rs)/(R*rs))*h*U(R*rs)/(R^2*rs^2)


Download dchange_ex.mw

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