Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Dear MaplePrimes community,

I am currently struggling to use the simplify-command in my toolbox for symbolic generation of robot dynamics.

I created a procedure which calls the simplify command with some extra checks. There are symbolic expressions in the term to be simplified that also occur in the workspace of the worksheet calling the procedure.

The simplify command (called from within the procedure) shall regard them as symbolic expressions unaware of the content of the variable in the workspace. Nevertheless, the simplifications are performed with the global variables, even though they are declared local to the procedure.

Minimal example: The variable "l1" stands for "length 1" in a mechanic problem as well as "length of the expression"

restart:
with(LinearAlgebra): with(ArrayTools): with(codegen): with(CodeGeneration): with(StringTools):
read proc_simplify2:
T := m2*(l1+l2)*(qD2)^2: # dummy-expression for kinetic energy
l1 := length(T);
T_simpl := simplify2(T):
l2 := length(T_simpl);

Code for the file proc_simplify2:

simplify2 := proc (Term)
  # Simplify a term. Additionally check if the simplification is advantageous.
  # In some cases the term gets longer after the simplification. Then discard.
  # Give the local procedure variable a long name. They must not be identical in Term.
  local simplify_tmpvar_c1, simplify_tmpvar_c1sum, simplify_tmpvar_c2, \
        simplify_tmpvar_c2sum, simplify_tmpvar_nms, simplify_tmpvar_k, Term2:
  # Assume all contents of the Term to be local variables to this procedure
  # Otherwise, variables like "l1" can be overwritten by occurences in the calling worksheet.
  simplify_tmpvar_nms:=convert(indets(Term,name),list): # get list of symbols
  for simplify_tmpvar_k from 1 to ColumnDimension(simplify_tmpvar_nms) do
    if simplify_tmpvar_nms[simplify_tmpvar_k] = Pi or simplify_tmpvar_nms[simplify_tmpvar_k] = 0 then
      next: # 0 and Pi can not be variables
    end if:
    eval(sprintf("local %s;", String(simplify_tmpvar_nms[simplify_tmpvar_k]))); # assume local
   end do:

  # Get computational effort before simplification
  simplify_tmpvar_c1:=add(cost~(Term)): 
  simplify_tmpvar_c1sum := diff(simplify_tmpvar_c1,functions)+ \
                           diff(simplify_tmpvar_c1,additions)+ \
                           diff(simplify_tmpvar_c1,multiplications)+\
                           diff(simplify_tmpvar_c1,divisions):
  # Perform simplification. Attention: tries to use global variables to simplify the expression (see above)
  Term2 := simplify(Term):
  # Get effort after simplification
  simplify_tmpvar_c2:=add(cost~(Term2)): 
  simplify_tmpvar_c2sum := diff(simplify_tmpvar_c2,functions)+\
                           diff(simplify_tmpvar_c2,additions)+\
                           diff(simplify_tmpvar_c2,multiplications)+\
                           diff(simplify_tmpvar_c2,divisions):
  if simplify_tmpvar_c2sum > simplify_tmpvar_c1sum then
    # The simplification was not successful. Take old version.
    Term2 := Term:
  end if:
  return Term2:
end proc:

I would be glad for suggestions how to define the symbolic expressions in Term as local to the procedure or perhaps a better way to perform simplifications. As my program extends over several worksheets and the user may define an input file, I would not like to have to control all names of temporary variables that may occur at some point in the project. Until I tried to use the simplify-command, there was no problem regarding variable names. Is it perhaps possible that the variables are now only declared local in the for loop and not in the procedure?

Why 

evalf(evalf(''Pi''))

Produces 

But

evalf(''Pi''):
evalf(%)

Produces

      3.141592654

 

 

How do I calculate the derivative of the function f(x)=( (x^3) / (2) ) - 5x + 2 and plot the function and it's derivative on the same graph. 

I am newcommer in Maple. I am using Maple 2019. Just a simple question;

solve(x^2-3*x+4=0, x);

gives

1.50000000000000 + (9.09238836013723*10^(-59))*I, 1.50000000000000 - (9.09238836013723*10^(-59))*I

instead I need to show in the forms of radiacal. I have also the problem in dsolve command;

dsolve(2*diff(y(x),x$2)+3*diff(y(x),x)+4*y(x),y(x));

with the result

y(x) = (2.73949338633639*10^(-116) + (2.73949338633639*10^(-116))*I)*_C1 + (1. + (2.73949338633639*10^(-116))*I)*_C2

Thanks indeed in advance

Sayed

 

Considering the follwoing expr:

A(x):=mue+(mun/gama)+(u0^2)-mud*x-mue*exp(x)-(mun/gama)*exp(gama*x)-(u0^2)*(1-2*x/u0^2)^(1/2);

where 

mue:=1/(1+alpha+beta);
mun:=alpha/(1+alpha+beta);
mud:=beta/(1+alpha+beta);
u0:=(mue+mun*gama)^(-1/2);
 and assuming the values of alpha and beta lie between 0.1..0.6 and gama=15 ro 20.

How do I determine those values of (alpha,beta,gama) satisfying conditions [(3), (4)], [(3), (5)] or [(3),(6)]?

conditions:

A(x[m] <> 0) = 0:

where x_m is an extreme point of A(x) (other than x=0),

d*A(x)/dx, x = x[m] < 0:

d*A(x)/dx, x = x[m] > 0:

d*A(x)/dx, x = x[m] = 0:

Can anyone please help me out with the following integration

 


                      f(x) = tanh(x)/sqrt(x^2+1)

 

limits x_initial =1, x_final =100

 

Thanks

 

Hi, 

 

Does it exist a way to get all the types a variable verifies?
For instance
x:=4;
type(x, t); # true for t in {positive, posint, algebraic, ...}

Thanks in advance

Hi,
How do I simplify the following polynomial:

 -(729 beta (1/2 (-1/9 (-5/27 beta-1/9) lambda^6-1/9 (1/9 beta^2 TT+(10/9 TE+2/3 TT) beta-1/9 TE) lambda^4+5/27 (2/5 TT (3/2 TT+TE) beta+TE (TE-2/5 TT)) beta lambda^2-1/9 TE beta^2 TT (-TT+TE)) p1(m,t)^2+(beta TT-1/3 lambda^2)^2 (-1/3 lambda^2+TE)^3 ((p2(m,t))/(lambda^2-3 TE)+3/2 ((lambda^2+TE) p1(m,t)^2)/((lambda^2-3 TE)^3))))/((3 beta TT-lambda^2)^3 (3 TE-lambda^2)^2),

as follows:

-3*beta*p2(m,t)/(lambda^2-3*beta*TT)+3*beta^2*(5*lambda^2-3*beta*TT)*p1(m,t)^2/(2*(lambda^2-3*beta*TT)^3)
?

restart;
solve({l*(2*l^2*lambda^4*sigma*w*a[2]+l^2*lambda^2*mu*w*b[1]+6*l*lambda^2*m*sigma*a[0]^2-6*l*lambda^2*m*b[1]^2+6*l*m*mu^2*a[0]^2-l*lambda^2*rho*sigma*a[0]-l*mu^2*rho*a[0]+4*lambda^2*sigma*w*a[0]+4*mu^2*w*a[0]) = 0, l*(2*l^2*lambda^3*sigma*w*a[1]+6*l^2*lambda^2*mu*w*b[2]+2*l^2*lambda*mu^2*w*a[1]+12*l*lambda^2*m*sigma*a[0]*a[1]-12*l*lambda^2*m*b[1]*b[2]-l*lambda^2*rho*sigma*a[1]+12*l*m*mu^2*a[0]*a[1]-l*mu^2*rho*a[1]+4*lambda^2*sigma*w*a[1]+4*mu^2*w*a[1]) = 0, l*(5*l^2*lambda^3*sigma*w*b[2]-3*l^2*lambda^2*mu*sigma*w*a[1]-7*l^2*lambda*mu^2*w*b[2]-3*l^2*mu^3*w*a[1]+12*l*lambda^2*m*sigma*a[0]*b[2]+12*l*lambda^2*m*sigma*a[1]*b[1]-l*lambda^2*rho*sigma*b[2]+24*l*lambda*m*mu*b[1]*b[2]+12*l*m*mu^2*a[0]*b[2]+12*l*m*mu^2*a[1]*b[1]-l*mu^2*rho*b[2]+4*lambda^2*sigma*w*b[2]+4*mu^2*w*b[2]) = 0, l*(8*l^2*lambda^3*sigma*w*a[2]+6*l^2*lambda*mu^2*w*a[2]+12*l*lambda^2*m*sigma*a[0]*a[2]+6*l*lambda^2*m*sigma*a[1]^2+l^2*lambda*mu*w*b[1]-6*l*lambda^2*m*b[2]^2-l*lambda^2*rho*sigma*a[2]+12*l*m*mu^2*a[0]*a[2]+6*l*m*mu^2*a[1]^2-6*l*lambda*m*b[1]^2-l*mu^2*rho*a[2]+4*lambda^2*sigma*w*a[2]+4*mu^2*w*a[2]) = 0, -l*(4*l^2*lambda^3*mu*sigma*w*a[2]-l^2*lambda^3*sigma*w*b[1]+l^2*lambda*mu^2*w*b[1]-12*l*lambda^2*m*sigma*a[0]*b[1]+l*lambda^2*rho*sigma*b[1]-12*l*lambda*m*mu*b[1]^2-12*l*m*mu^2*a[0]*b[1]+l*mu^2*rho*b[1]-4*lambda^2*sigma*w*b[1]-4*mu^2*w*b[1]) = 0, 6*l^2*(l*lambda^2*sigma*w*a[2]+lambda^2*m*sigma*a[2]^2+l*mu^2*w*a[2]+m*mu^2*a[2]^2-lambda*m*b[2]^2) = 0, 2*l^2*(l*lambda^2*sigma*w*a[1]+6*lambda^2*m*sigma*a[1]*a[2]+3*l*lambda*mu*w*b[2]+l*mu^2*w*a[1]+6*m*mu^2*a[1]*a[2]-6*lambda*m*b[1]*b[2]) = 0, -2*l^2*(5*l*lambda^2*mu*sigma*w*a[2]-l*lambda^2*sigma*w*b[1]+5*l*mu^3*w*a[2]-6*lambda^2*m*sigma*a[1]*b[2]-6*lambda^2*m*sigma*a[2]*b[1]-l*mu^2*w*b[1]-6*lambda*m*mu*b[2]^2-6*m*mu^2*a[1]*b[2]-6*m*mu^2*a[2]*b[1]) = 0, 6*l^2*b[2]*(l*w+2*m*a[2]) = 0}, {a[0], a[1], a[2], b[1], b[2]});
Warning, solutions may have been lost
{a[0] = 0, a[1] = 0, a[2] = 0, b[1] = 0, b[2] = 0}, 

   /       l rho - 4 w                                        \ 
  { a[0] = -----------, a[1] = 0, a[2] = 0, b[1] = 0, b[2] = 0 }
   \          6 l m                                           / 
 

Problems with incomplete worksheet.

I have saved a .mw worksheet, which i cannot open in Maple, and i get an error code:
"There were problems during the loading process. Your worksheet may be incomplete"

I have attached a link, where a user is helped with the same problem, but i cannot understand the solution there has been given:

https://www.mapleprimes.com/questions/125503-Incomplete-Worksheet

I have attached the worksheets, and would be so gratefull for any help:

Beregningsdokument.mw
Beregningsdokument_2.mw


Best regards

Henrik Jorgensen

I am trying to work through an example in a textbook, but its a few years old and uses maple 2015. I am currently using the 2018 edition of maple. The code is an example of how to generate the points on an elliptic curve given a specific input. 
Here is the example code from the textbook:

epoints := proc(ec, x, ub, p)
    local ecurve, z, pct, k, i;
    pct := 0;
    for k from 0 to p-1 while pct <= ub do
        z := subs(x=k, ec) mod p;
        if z = 0 then
           pct := pct+1;
           ecurve[pct] := [k,z];
        fi:
        if z &^ ((p-1)/2) mod p = 1 then
           z := z &^ ((p+1)/4) mod p;
           ecurve[pct+1] := [k,z];
           ecurve[pct+2] := [k, -z mod p];
           pct := pct+2;
        fi:
    od:
    if pct > ub then
       pct := ub:
    fi:
    seq(ecurve[i], i=1..pct):
end:


Here is my code, written to work with Maple 2018:

ecpoints := proc (ec, x, ub, p) local ecurve, z, pct, k, i;
      pct := 0; for k from 0 to p-1 while pct <= ub
         do z := `mod`(subs(x = k, ec), p);
         if z = 0 then pct := pct+1;
            ecurve[pct] := [k, z] end if;
         if `mod`(z^((1/2)*p-1/2), p) = 1 then
            z := `mod`(z^((1/4)*p+1/4), p) = 1;
           ecurve[pct+1] := [k, z];
           ecurve[pct+2] := [k, `mod`(-z, p)];
           pct := pct+2 end if
   end do;
   if ub < pct then pct := ub end if;


   seq(ecurve[i], i = 1 .. pct)
end proc

The problem is with the output. The output should be [0, 5], [0, 14], [2, 4], [2, 15], [3, 6], [3, 13], [4, 6], [4, 13], [6, 0], [10, 16], [10, 3], [12, 6], [12, 13], [14, 16], [14, 3], [18, 17], [18, 2].
What I get is [0, 5 = 1], [0, 14 = 18], [2, 4 = 1], [2, 15 = 18], [3, 6 = 1], [3, 13 = 18], [4, 6 = 1], [4, 13 = 18], [6, 0], [10, 16 = 1], [10, 3 = 18], [12, 6 = 1], [12, 13 = 18], [14, 16 = 1], [14, 3 = 18], [18, 17 = 1], [18, 2 = 18]. 
Any hints on what I could be doing wrong here or what is going on?

Hello

Moving from Mathematica to Maple and back these couple of days is driving me insane.  I get stuck trying to translate very simple things for not knowing each command belongs to each software.  Therefore I do apologize for another silly question. 

Given the list of indexed variables

varA := [A[1, 0], A[1, 1], A[1, 2], A[1, 3], A[1, 4], A[1, 5], A[1, 6], A[1, 7], A[1, 8], A[1, 9], A[2, 0], A[2, 1], A[2, 2], A[2, 3], A[2, 4], A[2, 5], A[2, 6], A[2, 7], A[2, 8], A[2, 9], A[3, 0], A[3, 1], A[3, 2], A[3, 3], A[3, 4], A[3, 5], A[3, 6], A[3, 7], A[3, 8], A[3, 9]]

how to apply the following substitution 

varA/. {Subscript[A, m_, 2] -> Subscript[B, m, 3], 
  Subscript[A, m_, 3] -> Subscript[B, m, 2], 
  Subscript[A, m_, 5] -> Subscript[B, m, 6], 
  Subscript[A, m_, 6] -> Subscript[B, m, 5], 
  Subscript[A, m_, 7] -> Subscript[B, m, 9], 
  Subscript[A, m_, 9] -> Subscript[B, m, 7]}

After trying a couple of commands such as map, subs, etc. I decide to try fromMma but no avail.  

Many thanks for the patience and help.

 

Ed

 

 

I want to solve the following system of PDEs with Maple: 

In fact, I want to determine q1,n1,p1,nn1,qn1,pn1 as a functions of pphi1 (assume  ne1(X,T)=(alpha/(2))*pphi1(X,T))

(mu, nu, beta, lambda, TE , alpha and TT are constant, but q1,n1,p1,nn1,qn1,pn1 depend on (X,T))

How do I do that?             

                   
> diff(q1(X, T), X)-lambda*(diff(n1(X, T), X)) = 0;

diff(pphi1(X, T), X)+TE*(diff(p1(X, T), X))-lambda*(diff(q1(X, T), X)) = 0;

-lambda*(diff(p1(X, T), X))+3*(diff(q1(X, T), X)) = 0;

-lambda*(diff(nn1(X, T), X))+diff(qn1(X, T), X) = 0;

-lambda*(diff(qn1(X, T), X))+beta*TT*(diff(pn1(X, T), X))-beta*(diff(pphi1(X, T), X)) = 0;

-lambda*(diff(pn1(X, T), X))+3*(diff(qn1(X, T), X)) = 0;

-mu*ne1(X, T)-nu*nn1(X, T)+n1(X, T) = 0;

 

 

 

Dear All, 

 

I am trying to solve the following differential equation, which is a kind of Spherical Harmonics. Can anyone please help me out how to solve this?

((D@@2)(y))(r)+(D(y))(r)/r-sin(y(r))*cos(y(r))/r^2+sin(y(r))^2/r-sin(y(r))-sin(2*y(r)) = 0

 

Thanks 

Hello every one:

I am trying to plat the graph of a function (which has been defined in my code). I use the plat 3D operator but it doesn't give me the correct plot . I even increase the digites and numpoints but appearently it gave me less precise plot . 

The problem of plots is as follows :

First I defined the function V and  asking maple to compute the values of V at some random points, spacially at (0,0) , (0,2*Pi) and (2*Pi,0) . It gave me 0 which means Maple computes the values correctly because it can be mathematically proved  that this function has the value 0 on all the board of a triangle with vertices (0,0) , (0,2*Pi) and (2*Pi,0) . 

As you can see in my code maple doesn't show the correct value (0)  for the boundary points even at (0,0) ! 

 

I don't know how shoud I fix this problem.You can find my code in attached .Thanks in advanced for your help. Maple_question.mw 

First 556 557 558 559 560 561 562 Last Page 558 of 2217