Maple 2022 Questions and Posts

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

How do you substitute into a contravariant index of a tensor say

T[~mu, nu]     ?

Nothing seems to work, I tried to subs(~mu=~1,T[~mu, nu]), subs(mu=1,T[~mu, nu]), and all permutations.

Substituting values into the covariant index works fine but not contravariant.

Surely it must be possible ?

restart:with(Physics):

Setup(dimension=3,coordinates=(X=[x,y,z])):

Define(Tp3[~alpha,~beta,~gamma],B[~lambda,mu],T3[~rho,~epsilon,~sigma]):

Tp3[~alpha,~beta,~gamma]=B[~alpa,rho]B[~beta,epsilon]B[~gamma,sigma]T3[~rho,~epsilon,~sigma]

SumOverRepeatedIndices of the expression does not do anything. Why?

Thanks for the answer.

What should I do to simplify eq13 further using trig sum identities?
Thank you for your help in advance,

restart;

phi := (x,n,L) -> sqrt(2/L)*sin(n*Pi*x/L + 1/2*n*Pi);

proc (x, n, L) options operator, arrow; sqrt(2/L)*sin(n*Pi*x/L+(1/2)*n*Pi) end proc

(1)

 

eq1 := W[n,m](q,p) = simplify(1/Pi*Int(phi(q+y,n,L)*exp(-2*I*p*y)*phi(q-y,m,L),y=-L/2+abs(q)..L/2-abs(q)));

W[n, m](q, p) = 2*(Int(sin((1/2)*n*Pi*(2*q+2*y+L)/L)*exp(-(2*I)*p*y)*sin((1/2)*m*Pi*(2*q-2*y+L)/L), y = -(1/2)*L+abs(q) .. (1/2)*L-abs(q)))/(L*Pi)

(2)

eq2 := simplify(convert(eq1,int)) assuming(n,integer,m,integer);

W[n, m](q, p) = (-16*(I*((-(1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*L*p*sin(n*Pi*(abs(q)+q)/L)+(1/2)*cos(n*Pi*(abs(q)+q)/L)*(((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*n*Pi)*exp(I*p*(L-2*abs(q)))*sin(m*Pi*(L-abs(q)+q)/L)+16*exp(-I*p*(L-2*abs(q)))*(I*L*p*((-(1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(m*Pi*(abs(q)+q)/L)-(1/2)*cos(m*Pi*(abs(q)+q)/L)*m*((-(1/4)*m^2+(1/4)*n^2)*Pi^2+p^2*L^2)*Pi)*sin(n*Pi*(L-abs(q)+q)/L)+8*Pi*(-m*exp(I*p*(L-2*abs(q)))*((((1/4)*m^2-(1/4)*n^2)*Pi^2-p^2*L^2)*sin(n*Pi*(abs(q)+q)/L)+I*L*p*Pi*n*cos(n*Pi*(abs(q)+q)/L))*cos(m*Pi*(L-abs(q)+q)/L)+exp(-I*p*(L-2*abs(q)))*cos(n*Pi*(L-abs(q)+q)/L)*n*((((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(m*Pi*(abs(q)+q)/L)+I*L*p*Pi*m*cos(m*Pi*(abs(q)+q)/L))))/((m-n)^2*(m+n)^2*Pi^5-8*L^2*p^2*(m^2+n^2)*Pi^3+16*L^4*p^4*Pi)

(3)

Wigner function evaluated for q > 0 and q < 0, respectively

eq10 := simplify(eq2) assuming(q>0);
eq11 := simplify(eq2) assuming(q<0);
eq12 := simplify(eq10) assuming(m,integer,n,integer);
eq13 := simplify(eq11) assuming(m,integer,n,integer);

W[n, m](q, p) = (16*exp(-I*p*(L-2*q))*(I*p*L*((-(1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(n*Pi)+(1/2)*cos(n*Pi)*Pi*n*(((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2))*sin(2*m*Pi*q/L)-16*exp(I*p*(L-2*q))*(I*p*L*((-(1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(m*Pi)-(1/2)*Pi*cos(m*Pi)*((-(1/4)*m^2+(1/4)*n^2)*Pi^2+p^2*L^2)*m)*sin(2*n*Pi*q/L)+8*Pi*(exp(-I*p*(L-2*q))*((((1/4)*m^2-(1/4)*n^2)*Pi^2-p^2*L^2)*sin(n*Pi)+I*L*n*p*Pi*cos(n*Pi))*m*cos(2*m*Pi*q/L)-((((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(m*Pi)+I*L*m*p*Pi*cos(m*Pi))*cos(2*n*Pi*q/L)*n*exp(I*p*(L-2*q))))/((m-n)^2*(m+n)^2*Pi^5-8*L^2*p^2*(m^2+n^2)*Pi^3+16*L^4*p^4*Pi)

 

W[n, m](q, p) = (-8*exp(I*p*(L+2*q))*n*(((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(m*Pi*(L+2*q)/L)+8*m*(-exp(-I*p*(L+2*q))*((-(1/4)*m^2+(1/4)*n^2)*Pi^2+p^2*L^2)*sin(n*Pi*(L+2*q)/L)+I*Pi*n*p*L*(cos(n*Pi*(L+2*q)/L)*exp(-I*p*(L+2*q))-exp(I*p*(L+2*q))*cos(m*Pi*(L+2*q)/L))))/((m-n)^2*(m+n)^2*Pi^4-8*L^2*p^2*(m^2+n^2)*Pi^2+16*L^4*p^4)

 

W[n, m](q, p) = (8*(-1)^n*(((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*n*exp(-I*p*(L-2*q))*sin(2*m*Pi*q/L)-8*m*(-(-1)^m*exp(I*p*(L-2*q))*((-(1/4)*m^2+(1/4)*n^2)*Pi^2+p^2*L^2)*sin(2*n*Pi*q/L)+I*n*(cos(2*n*Pi*q/L)*exp(I*p*(L-2*q))*(-1)^m-exp(-I*p*(L-2*q))*(-1)^n*cos(2*m*Pi*q/L))*Pi*L*p))/((m-n)^2*(m+n)^2*Pi^4-8*L^2*p^2*(m^2+n^2)*Pi^2+16*L^4*p^4)

 

W[n, m](q, p) = (-8*exp(I*p*(L+2*q))*n*(((1/4)*m^2-(1/4)*n^2)*Pi^2+p^2*L^2)*sin(m*Pi*(L+2*q)/L)+8*m*(-exp(-I*p*(L+2*q))*((-(1/4)*m^2+(1/4)*n^2)*Pi^2+p^2*L^2)*sin(n*Pi*(L+2*q)/L)+I*Pi*n*p*L*(cos(n*Pi*(L+2*q)/L)*exp(-I*p*(L+2*q))-exp(I*p*(L+2*q))*cos(m*Pi*(L+2*q)/L))))/((m-n)^2*(m+n)^2*Pi^4-8*L^2*p^2*(m^2+n^2)*Pi^2+16*L^4*p^4)

(4)
 

 

Download test5.mw

how to determine lambda, m0, and n0? a_i, and c_i are constants and c^2 = c[1]^2 + c[2]^2. solA.mw

How do I solve equation (1) for omega, rho, lambda1, and lambda2? verif.mw

can we express 'X' in terms of 'L'? i.e., X = (some const)*L XintoL.mw

Why does 'simplify' not work when calculating Eigenvectors? Further, how can we express (2) in a more simplified form by using 'simplify'?simplify.mw

I am trying to solve the following recursion for any n, given a constant c. Here is my code for it:

c := 2:

A[i] := rsolve({a(0) = 1/n, a(i) = ((n - i + 1)/(n - i) + 1/(c*(n - i)))*a(i - 1)}, a);

total := evala(Simplify(sum(eval(A[i], i=k), k=0..n-1)));
evalf(eval(total, n = 6));

For c = 1, I get a valid (and correct) output, however for c = 2 for example, rsolve is returning A[i] = -GAMMA(-n)*GAMMA(-n + i - 1/2)/(GAMMA(-n - 1/2)*GAMMA(-n + i + 1)), which does not make sense when n is an integer. Is there something I am doing wrong here? Not sure why this is happening. Thanks!

im trying to write differential quadrature method i have successfully  generated system of equations using code but now im stuck with rk4 method to solve these equation in a loop kindly give me suggestions or modify the code

restart

with(orthopoly)

N := 5

5

(1)

P := proc (n, x) options operator, arrow; orthopoly[P](n, 2*x-1) end proc

P_N := simplify(P(N, x))

252*x^5-630*x^4+560*x^3-210*x^2+30*x-1

(2)

localroots := fsolve(P_N = 0, x, complex)

HFloat(0.04691007703066799), HFloat(0.23076534494715836), HFloat(0.4999999999999997), HFloat(0.7692346550528439), HFloat(0.9530899229693298)

(3)

for i to N do assign(x[i] = localroots[i]) end do

PRime := diff(P_N, x)

1260*x^4-2520*x^3+1680*x^2-420*x+30

(4)

for i to N do for j to N do if i <> j then a[i, j] := (eval(PRime, x = x[i]))/((x[i]-x[j])*(eval(PRime, x = x[j]))) else a[i, j] := (1-2*x[i])/(2*x[i]*(x[i]-1)) end if end do end do

u := proc (i) local u_x, expr, j; u_x := add(a[i, j]*u[j], j = 1 .. N); expr := -u[i]*u_x+x[i]; expr end proc; odes := [seq(u(i, [seq(u[j], j = 1 .. N)]), i = 1 .. N)]; for i to N do assign(o[i] = odes[i]) end do; for i to N do printf("u_%d = %s\n", i, convert(u(i), string)) end do

u_1 = -u[1]*(-10.1340811913091*u[1]+15.4039041703445*u[2]-8.08708750877537*u[3]+3.92079823166652*u[4]-1.10353370192667*u[5])+.046910077030668
u_2 = -u[2]*(-1.92051204726391*u[1]-1.51670643433575*u[2]+4.80550130432862*u[3]-1.85711605328765*u[4]+.488833230558754*u[5])+.230765344947158
u_3 = -u[3]*(.602336319455661*u[1]-2.87077648466948*u[2]-1.11022302462516e-015*u[3]+2.87077648466942*u[4]-.602336319455684*u[5])+.5
u_4 = -u[4]*(-.488833230558737*u[1]+1.85711605328767*u[2]-4.8055013043286*u[3]+1.51670643433578*u[4]+1.92051204726404*u[5])+.769234655052844
u_5 = -u[5]*(1.1035337019266*u[1]-3.92079823166643*u[2]+8.08708750877511*u[3]-15.4039041703442*u[4]+10.1340811913086*u[5])+.95308992296933

 

initial_conditions := [0.1e-1, 0.2e-1, 0.3e-1, 0.4e-1, 0.5e-1]

for i to N do printf("Initial condition for u_%d: u_%d(0) = %f\n", i, i, initial_conditions[i]) end do

Initial condition for u_1: u_1(0) = 0.010000
Initial condition for u_2: u_2(0) = 0.020000
Initial condition for u_3: u_3(0) = 0.030000
Initial condition for u_4: u_4(0) = 0.040000
Initial condition for u_5: u_5(0) = 0.050000

 

dt := .1

tf := 1

"local o_old;  o_old := Vector(n);    #` Loop to initialize o[i]old values`  for i from 1 to n do      o_old[i] := initial_conditions[i];      printf("Initial condition for u_%d: u_%d(0) = %f\\n", i, i, initial_conditions[i]);  end do:    time := t0;  while time < tf do  for i from 1 to n do      k[1, i] := dt * o[i](time,o_old[i]);   for i from 1 to n do  k[2,i]:=dt*o[i](time + dt/(2), o_old[i]+   (k[1, i])/(2));  end do:  for i from 1 to n do  k[3,i]:=dt*o[i](time+ o_old[i]+ (  k[1, i])/(2));  end do:  for i from 1 to n do  k[4,i]:=dt*o[i](time+dt,o_old[i]+k[1,i]);  end do:  for i from 1 to n do    0 _new[i]:=o_old[i]+(k[1,i]+2 *k[2,i]+2*k[3,i]+k[4,i]);  end do:  time := time + dt;     end do;      "

Error, illegal use of an object as a name

"local o_old;  o_old := Vector(n);    #` Loop to initialize o[i]old values`  for i from 1 to n do   o_old[i] := initial_conditions[i];   printf("Initial condition for u_%d: u_%d(0) = %f\\n", i, i, initial_conditions[i]);  end do:    time := t0;  while time < tf do  for i from 1 to n do   k[1, i] := dt * o[i](time,o_old[i]);  end do:  for i from 1 to n do  k[2,i]:=dt*o[i](time + dt/2, o_old[i]+ (k[1, i])/2);  end do:  for i from 1 to n do  k[3,i]:=dt*o[i](time+ o_old[i]+ (  k[1, i])/2);  end do:  for i from 1 to n do  k[4,i]:=dt*o[i](time+dt,o_old[i]+k[1,i]);  end do:  for i from 1 to n do  0 _new[i]:=o_old[i]+(k[1,i]+2 *k[2,i]+2*k[3,i]+k[4,i]);  end do:  time := time + dt;   end do;      "

 
 

NULL

Download dq_code.mw

Multiplaction "dot" in Maple 2022 is way too small - causes errors.

e.g. two variables multiplied s*m ends up being sm a new variable as I cannot really see that there is a missing multiplication operator between the variables. This causes huge unnecessary errors.

Maple 9.x e.g had nice clear and big operators and this kind of error was avoided.

How can I undo this unfortunate regression in Maple 2022 to increase the size of multiplication operator and other operators, so that they actually becom visible and not just a little dot almost a pixel in size.

If I was a falcon (20x20)^infinity then this would have been ok, but I am not, I am human.

So how do I change this unfortunate regression so that these errors can be avoided.?

Why does Maple 2022 still have only a history of ten files in the Recents ?

It makes it very difficult to search for files you opened but only realised later you need, but then it is long out of the silly 10 history list.

Isnt there a way to make a perpetual list so that all files opened are saved chronologiacally against date, or... at least be able to increase the silly 10 recent files to something like 30

Thanks

In my code, why  does InitState(5,5) return only one element of the vector while Coherent(5) returns 5 elements of the vector?

restart;

with(LinearAlgebra):

 

Coherent := proc({zeta:=1,phi:=Pi/2},n_max) local alpha,i,ICs:
 #alpha := sqrt(zeta)*exp(I*phi):
 ICs := Vector(n_max,i->evalc(evalf(exp(-zeta/2)/sqrt((i-1)!))*(sqrt(zeta)*exp(I*phi))^(i-1)),datatype=complex[8]);
end proc:

Projectile := proc({L:=1,sigma:=0.01,beta:=0.02,k0:=-5*Pi},n_max) local x0,g,c,v,ICs,j:
  x0 := evalf(beta*L);
  g := unapply(exp(-(x-x0)^2/2/sigma^2),x);
  c := evalf(int(g(x)^2,x=-L/2..L/2,numeric=true));
 
  v:=Vector(n_max,datatype=complex[8]);

  for j from 1 to n_max do:
     if (is(j,odd)) then  v[j]:= evalc[8](evalf(Int(cos(Pi*j*x/L)*g(x)*cos(k0*x),x=-L/2..L/2,method=_d01akc))+ I*evalf(Int(cos(Pi*j*x/L)*g(x)*sin(k0*x),x=-L/2..L/2,method=_d01akc)));
      else v[j]:= evalc[8](evalf(Int(sin(Pi*j*x/L)*g(x)*cos(k0*x),x=-L/2..L/2,method=_d01akc))+ I*evalf(Int(sin(Pi*j*x/L)*g(x)*sin(k0*x),x=-L/2..L/2,method=_d01akc)));
     end if:
  end do:

 ICs :=evalf[8](sqrt(2/L*c))*v;
end proc:

InitState := proc({zeta:=1,phi:=Pi/2,L:=1,sigma:=0.01,beta:=0.02,k0:=-5*Pi},d1,d2) local Z0:
z1 := Coherent(zeta,phi,d1);
#Z0:= MatrixMatrixMultiply(Coherent(zeta,phi,d1),Transpose(Projectile(L,sigma,beta,k0,d2))):
end proc:

Warning, (in InitState) `z1` is implicitly declared local

 

InitState(5,5); Coherent(5);

Vector(1, {(1) = .6065306597+0.*I})

 

Vector[column](%id = 36893490076814315516)

(1)
 

 

Download test3.mw

How can I get the evaluation of integration inside if-statement?

Thanks for your help in advance,

restart;

#L:=1:sigma:=0.01:beta:=0.2:k0:=-100:

#For Free particle
Projectile := proc({L:=1,sigma:=0.01,beta:=0.2,k0:=-100},n_max) local x0,g,c:
 x0:= beta*L;
 g := unapply(exp(-(x-x0)^2/2/sigma^2),x);
 #c := int(g(x)^2,x=-L/2..L/2,numeric=true);
 ub := (L/2-x0)/sqrt(2)/sigma;
 lb := (-L/2-x0)/sqrt(2)/sigma;
 a := Pi*sqrt(2)*sigma/L;
 b := sqrt(2)*k0*sigma;
 c := Pi*x/L;
 d := k0*x0;
 eq1 := [cos(a*n*z)*cos(b*z)/e^(z^2),cos(a*n*z)*sin(b*z)/e^(z^2),sin(a*n*z)*cos(b*z)/e^(z^2),sin(a*n*z)*sin(b*z)/e^(z^2)];
 eq1 := map(f->unapply(f,n,z),eq1);
 eq2 := [cos(n*c)*cos(d),cos(n*c)*sin(d),sin(n*c)*cos(d),sin(n*c)*sin(d)];
 eq2 := map(f->unapply(f,n,z),eq2);

 for j from 1 to n_max do:
   if (is(j,odd)) then eq11 := int(eq1[1](j,z),z=lb..ub,numeric=true);
   else 0;
   end if;
 end do:

end proc:

 

Warning, (in Projectile) `ub` is implicitly declared local

 

Warning, (in Projectile) `lb` is implicitly declared local

 

Warning, (in Projectile) `a` is implicitly declared local

 

Warning, (in Projectile) `b` is implicitly declared local

 

Warning, (in Projectile) `d` is implicitly declared local

 

Warning, (in Projectile) `eq1` is implicitly declared local

 

Warning, (in Projectile) `eq2` is implicitly declared local

 

Warning, (in Projectile) `j` is implicitly declared local

 

Warning, (in Projectile) `eq11` is implicitly declared local

 

Projectile(1);

int(cos(0.4442882938e-1*z)*cos(1.414213562*z)/e^(z^2), z = -49.49747467 .. 21.21320343)

(1)

 


Download SolnforProjectile_v3_3.mw

How to verify eq by using (2), (3) and (4)? Since lambda's, A's, B's and a are constant, but they appear as variables i.e., D[2](A1)..., (D[2] -> d/dt (derivative w.r.t 't')). Also q(n+1,t)- q(n,t) = a (const). Therefore, d/dt(q(n+1),t) - d/dt,(q(n,t))=0

verif_May24.mw

5 6 7 8 9 10 11 Last Page 7 of 43