Maple Questions and Posts

These are Posts and Questions associated with the product, Maple

Hello, I need help in add/sum, there are two problems:

 

1. How we write triple summation (sigma) in Maple? (See pic)

Pic 1 (Triple Sigma)

I try sum(sum(sum or add(add(add but it isn't working.

 

 

2. How we write summation like in this pic?

Pic 2

I already try these syntax:

for e from 1 to 9 do

for k from 1 to 17 do

if i=(2*e-1) then next else

constraint12[2*e-1,k]:=add(x[2*e-1,i,k],i from i in T)=1

end if

end do

end do

 

For example, the expected result for e=2 and k=1 is like following equation:

x[2,1,1]+x[2,3,1]+x[2,4,1]+x[2,5,1]+...+x[2,17,1]+x[2,18,1]=1

But the result I get:

x[2,1,1]+x[2,2,1]+x[2,3,1]+...+x[2,18,1]=1

 

How to omit the x[2,2,1]?

 

Thank you.

pls help review this code, its doesnt return a solution

 

 

restart;
Digits := 16;
M := .5; lambda := .5; Pr := .72; beta := 1; L[w] := 0; m := 1; R := 1; Ec := 1;
N := 7;
for j from 0 to N do J[j] := sum(f[k](t)*(diff(f[j-k](t), `$`(t, 2))), k = 0 .. j) end do;
for i from 0 to N do K[i] := sum((diff(f[k](t), t))*(diff(f[i-k](t), t)), k = 0 .. i) end do;
for j from 0 to N do G[j] := sum(f[k](t)*(diff(theta[j-k](t), t)), k = 0 .. j) end do;
for j from 0 to N do H[j] := sum((diff(f[k](t), t))*theta[j-k](t), k = 0 .. j) end do;
for i from 0 to N do P[i] := sum((diff(f[k](t), t, t))*(diff(f[i-k](t), t)), k = 0 .. i) end do;
epsilon := 1; delta := 0;
f[0] := proc (t) options operator, arrow; L[w]+epsilon+delta*A*t+(1/2)*A*t^2 end proc;
1 2
t -> L[w] + epsilon + delta A t + - A t
2
theta[0] := proc (t) options operator, arrow; 1+B*t end proc;
t -> 1 + B t
NULL;
;
NULL;
NULL;
NULL;
NULL;
for i to N do f[i] := simplify(-((m+1)*(1/2))*(int(int(int(J[i-1], t = 0 .. eta), t = 0 .. eta), t = 0 .. eta))+m*(int(int(int(1-K[i-1], t = 0 .. eta), t = 0 .. eta), t = 0 .. eta))-M*(int(int(int(diff(f[i-1](t), t)-1, t = 0 .. eta), t = 0 .. eta), t = 0 .. eta))-lambda*(int(int(int(theta[i-1](t), t = 0 .. eta), t = 0 .. eta), t = 0 .. eta))); f[i] := unapply(f[i], eta); theta[i] := simplify(-3*Pr*R*(((m+1)*(1/2))*(int(int(G[i-1], t = 0 .. eta), t = 0 .. eta))-(2*m-1)*(int(int(H[i-1], t = 0 .. eta), t = 0 .. eta))+Ec*(int(int(P[i-1], t = 0 .. eta), t = 0 .. eta)))/(4+3*R)); theta[i] := unapply(theta[i], eta) end do;
NULL;
F(eta):=collect((∑)f[z](eta),eta):
Theta(eta):=collect((∑)theta[z](eta),eta):
with(numapprox);
for k from 2 to 5 do W[k] := pade(diff(F(eta), eta), eta, [k, k]); Q[k] := pade(Theta(eta), eta, [k, k]); SOLL1[k] := expand(coeff(numer(W[k]), eta^k)) = 1; SOLL2[k] := expand(coeff(numer(Q[k]), eta^k)) = 0; SOL[k] := solve({SOLL1[k], SOLL2[k]}, {A, B}); print([k] = SOL[k]) end do;
Warning, computation interrupted

 

 

 

 

 

 

The presentation below is on undergrad Quantum Mechanics. Tackling this topic within a computer algebra worksheet in the way it's done below, however, is an exciting novelty and illustrates well the level of abstraction that is now possible using the Physics package.

 

Quantum Mechanics: Schrödinger vs Heisenberg picture

Pascal Szriftgiser1 and Edgardo S. Cheb-Terrab2 

(1) Laboratoire PhLAM, UMR CNRS 8523, Université Lille 1, F-59655, France

(2) Maplesoft

 

Within the Schrödinger picture of Quantum Mechanics, the time evolution of the state of a system, represented by a Ket "| psi(t) >", is determined by Schrödinger's equation:

I*`ℏ`*(diff(Ket(psi, t), t)) = H*Ket(psi, t)

where H, the Hamiltonian, as well as the quantum operators O__S representing observable quantities, are all time-independent.

 

Within the Heisenberg picture, a Ket Ket(psi, 0) representing the state of the system does not evolve with time, but the operators O__H(t)representing observable quantities, and through them the Hamiltonian H, do.

 

Problem: Departing from Schrödinger's equation,

  

a) Show that the expected value of a physical observable in Schrödinger's and Heisenberg's representations is the same, i.e. that

Bra(psi, t)*O__S*Ket(psi, t) = Bra(psi, 0)*O__H(t)*Ket(psi, 0)

  

b) Show that the evolution equation of an observable O__H in Heisenberg's picture, equivalent to Schrödinger's equation,  is given by:

diff(O__H(t), t) = (-I*Physics:-Commutator(O__H(t), H))*(1/`ℏ`)

where in the right-hand-side we see the commutator of O__H with the Hamiltonian of the system.

Solution: Let O__S and O__H respectively be operators representing one and the same observable quantity in Schrödinger's and Heisenberg's pictures, and H be the operator representing the Hamiltonian of a physical system. All of these operators are Hermitian. So we start by setting up the framework for this problem accordingly, including that the time t and Planck's constant are real. To automatically combine powers of the same base (happening frequently in what follows) we also set combinepowersofsamebase = true. The following input/output was obtained using the latest Physics update (Aug/31/2016) distributed on the Maplesoft R&D Physics webpage.

with(Physics):

Physics:-Setup(hermitianoperators = {H, O__H, O__S}, realobjects = {`ℏ`, t}, combinepowersofsamebase = true, mathematicalnotation = true)

[combinepowersofsamebase = true, hermitianoperators = {H, O__H, O__S}, mathematicalnotation = true, realobjects = {`ℏ`, t}]

(1)

Let's consider Schrödinger's equation

I*`ℏ`*(diff(Ket(psi, t), t)) = H*Ket(psi, t)

I*`ℏ`*(diff(Physics:-Ket(psi, t), t)) = Physics:-`*`(H, Physics:-Ket(psi, t))

(2)

Now, H is time-independent, so (2) can be formally solved: psi(t) is obtained from the solution psi(0) at time t = 0, as follows:

T := exp(-I*H*t/`ℏ`)

exp(-I*t*H/`ℏ`)

(3)

Ket(psi, t) = T*Ket(psi, 0)

Physics:-Ket(psi, t) = Physics:-`*`(exp(-I*t*H/`ℏ`), Physics:-Ket(psi, 0))

(4)

To check that (4) is a solution of (2), substitute it in (2):

eval(I*`ℏ`*(diff(Physics[Ket](psi, t), t)) = Physics[`*`](H, Physics[Ket](psi, t)), Physics[Ket](psi, t) = Physics[`*`](exp(-I*H*t/`ℏ`), Physics[Ket](psi, 0)))

Physics:-`*`(H, exp(-I*t*H/`ℏ`), Physics:-Ket(psi, 0)) = Physics:-`*`(H, exp(-I*t*H/`ℏ`), Physics:-Ket(psi, 0))

(5)

Next, to relate the Schrödinger and Heisenberg representations of an Hermitian operator O representing an observable physical quantity, recall that the value expected for this quantity at time t during a measurement is given by the mean value of the corresponding operator (i.e., bracketing it with the state of the system Ket(psi, t)).

So let O__S be an observable in the Schrödinger picture: its mean value is obtained by bracketing the operator with equation (4):

Dagger(Ket(psi, t) = Physics[`*`](exp(-I*H*t/`ℏ`), Ket(psi, 0)))*O__S*(Ket(psi, t) = Physics[`*`](exp(-I*H*t/`ℏ`), Ket(psi, 0)))

Physics:-`*`(Physics:-Bra(psi, t), O__S, Physics:-Ket(psi, t)) = Physics:-`*`(Physics:-Bra(psi, 0), exp(I*t*H/`ℏ`), O__S, exp(-I*t*H/`ℏ`), Physics:-Ket(psi, 0))

(6)

The composed operator within the bracket on the right-hand-side is the operator O in Heisenberg's picture, O__H(t)

Dagger(T)*O__S*T = O__H(t)

Physics:-`*`(exp(I*t*H/`ℏ`), O__S, exp(-I*t*H/`ℏ`)) = O__H(t)

(7)

Analogously, inverting this equation,

(T*(Physics[`*`](exp(I*H*t/`ℏ`), O__S, exp(-I*H*t/`ℏ`)) = O__H(t)))*Dagger(T)

O__S = Physics:-`*`(exp(-I*t*H/`ℏ`), O__H(t), exp(I*t*H/`ℏ`))

(8)

As an aside to the problem, we note from these two equations, and since the operator T = exp((-I*H*t)*(1/`ℏ`)) is unitary (because H is Hermitian), that the switch between Schrödinger's and Heisenberg's pictures is accomplished through a unitary transformation.

 

Inserting now this value of O__S from (8) in the right-hand-side of (6), we get the answer to item a)

lhs(Physics[`*`](Bra(psi, t), O__S, Ket(psi, t)) = Physics[`*`](Bra(psi, 0), exp(I*H*t/`ℏ`), O__S, exp(-I*H*t/`ℏ`), Ket(psi, 0))) = eval(rhs(Physics[`*`](Bra(psi, t), O__S, Ket(psi, t)) = Physics[`*`](Bra(psi, 0), exp(I*H*t/`ℏ`), O__S, exp(-I*H*t/`ℏ`), Ket(psi, 0))), O__S = Physics[`*`](exp(-I*H*t/`ℏ`), O__H(t), exp(I*H*t/`ℏ`)))

Physics:-`*`(Physics:-Bra(psi, t), O__S, Physics:-Ket(psi, t)) = Physics:-`*`(Physics:-Bra(psi, 0), O__H(t), Physics:-Ket(psi, 0))

(9)

where, on the left-hand-side, the Ket representing the state of the system is evolving with time (Schrödinger's picture), while on the the right-hand-side the Ket `ψ__0`is constant and it is O__H(t), the operator representing an observable physical quantity, that evolves with time (Heisenberg picture). As expected, both pictures result in the same expected value for the physical quantity represented by O.

 

To complete item b), the derivation of the evolution equation for O__H(t), we take the time derivative of the equation (7):

diff((rhs = lhs)(Physics[`*`](exp(I*H*t/`ℏ`), O__S, exp(-I*H*t/`ℏ`)) = O__H(t)), t)

diff(O__H(t), t) = I*Physics:-`*`(H, exp(I*t*H/`ℏ`), O__S, exp(-I*t*H/`ℏ`))/`ℏ`-I*Physics:-`*`(exp(I*t*H/`ℏ`), O__S, H, exp(-I*t*H/`ℏ`))/`ℏ`

(10)

To rewrite this equation in terms of the commutator  Physics:-Commutator(O__S, H), it suffices to re-order the product  H  exp(I*H*t/`ℏ`) placing the exponential first:

Library:-SortProducts(diff(O__H(t), t) = I*Physics[`*`](H, exp(I*H*t/`ℏ`), O__S, exp(-I*H*t/`ℏ`))/`ℏ`-I*Physics[`*`](exp(I*H*t/`ℏ`), O__S, H, exp(-I*H*t/`ℏ`))/`ℏ`, [exp(I*H*t/`ℏ`), H], usecommutator)

diff(O__H(t), t) = I*Physics:-`*`(exp(I*t*H/`ℏ`), H, O__S, exp(-I*t*H/`ℏ`))/`ℏ`-I*Physics:-`*`(exp(I*t*H/`ℏ`), Physics:-`*`(H, O__S)+Physics:-Commutator(O__S, H), exp(-I*t*H/`ℏ`))/`ℏ`

(11)

Normal(diff(O__H(t), t) = I*Physics[`*`](exp(I*H*t/`ℏ`), H, O__S, exp(-I*H*t/`ℏ`))/`ℏ`-I*Physics[`*`](exp(I*H*t/`ℏ`), Physics[`*`](H, O__S)+Physics[Commutator](O__S, H), exp(-I*H*t/`ℏ`))/`ℏ`)

diff(O__H(t), t) = -I*Physics:-`*`(exp(I*t*H/`ℏ`), Physics:-Commutator(O__S, H), exp(-I*t*H/`ℏ`))/`ℏ`

(12)

Finally, to express the right-hand-side in terms of  Physics:-Commutator(O__H(t), H) instead of Physics:-Commutator(O__S, H), we take the commutator of the equation (8) with the Hamiltonian

Commutator(O__S = Physics[`*`](exp(-I*H*t/`ℏ`), O__H(t), exp(I*H*t/`ℏ`)), H)

Physics:-Commutator(O__S, H) = Physics:-`*`(exp(-I*t*H/`ℏ`), Physics:-Commutator(O__H(t), H), exp(I*t*H/`ℏ`))

(13)

Combining these two expressions, we arrive at the expected result for b), the evolution equation of a given observable O__H in Heisenberg's picture

eval(diff(O__H(t), t) = -I*Physics[`*`](exp(I*H*t/`ℏ`), Physics[Commutator](O__S, H), exp(-I*H*t/`ℏ`))/`ℏ`, Physics[Commutator](O__S, H) = Physics[`*`](exp(-I*H*t/`ℏ`), Physics[Commutator](O__H(t), H), exp(I*H*t/`ℏ`)))

diff(O__H(t), t) = -I*Physics:-Commutator(O__H(t), H)/`ℏ`

(14)


Download:    Schrodinger_vs_Heisenberg_picture.mw     Schrodinger_vs_Heisenberg_picture.pdf

Edgardo S. Cheb-Terrab
Physics, Differential Equations and Mathematical Functions, Maplesoft
Editor, Computer Physics Communications

Hello

It has been years since I last used maple so I apologize if my question makes no sense and my code is outdated (and wrong!).   

I need to write a function (proc) that uses a functional operator inside.  Something like

test:=proc()

local f,vars, func, aux, res;

f:=arg[1]; # a list

vars:=arg[2]: # a list

aux:=op(vars):

func:=aux -> f:  # a function from () to []

res:=func(op(func(aux))):

return(res):

end:

 

This is the basic idea of the proc.  If f:=[y, y*z-x, -15*x*y-x*z-x] and vars:=[x,y,z], the function of a function does not return as it supposes to.  Please tell me what I am doing wrong and how to improve and update the code.

 

many thanks

 

Ed

 

 

 

im just getting a generic recursive assignment plus first unused arg error

thats what the maple engine says im doing wrong ill get the number of recursives counted but i guess it just makes me the most angry because its like the same type of error for me every ******* time

hy 
need help 
i made this code but i can not get the answer ,help me to find out where i did wrong.

thanx in advance




restart;
f:=x->(x^3+3*x^2-1);
n:=30;
tol:=1e-9;
a[0]:=0;
b[0]:=10;
Digits :=15;

 

printf("No root F(x) abs(x[i+1]-x[i])\n");

for i from 1 to n do
t[i-1] :=evalf( (b[i-1]-a[i-1])/(f(b[i-1])-f(a[i-1])));
c[i-1] := evalf((a[i-1]*f(b[i-1])-b[i-1]*f(a[i-1]))/(f(b[i-1])-f(a[i-1])));
x[i] :=evalf( x[i-1]-t[i-1]*f(x[i-1])^2/(f(x[i-1])-f(c[i-1])));

printf("%d %10.15f %10.15f %10.15e \n",i,x[i],f(x[i]),abs(x[i]-x[i-1]));
if f(a[i-1])*f(c[i-1])<0 then
a[i]:=a[i-1];
b[i]:=c[i-1];
else
a[i]:=c[i-1];
b[i]:=b[i-1];
if abs(f(x[i]))<tol then
print("approximate solution"= x[i]);
print("No of iterations"= i);
break;
end if;
end if;
end do:

Hey 

 

I just went from maple 18 to maple 2016. I use maple as a writing program aswell for notes and school.

 

I realized that maple 2016 does output lines when writing math in a textbox. This is kind of annoying since notes in chemistry is not allways a true mathematical expression. Therefore maple complains. Is there anyway to change this? 

Andreas

Hi all,

I was wondering how to go about validating some airfoil designs for my Formula SAE team's CFD results.  I know this is more common with simplier calculations but I'm hoping using Maple and maybe the new algebraic manipulation of non-comunitive differential operators, I could achive what I am after.   The two calculations of interest are the drag force and downforce.  Can someone shed some light? Thanks

Lets say we have to vectors u := Vector(3,[0,a_2,a_3]) and v :=Vector(3,[a_1,a_2,a_3]), in which a_1, a_2 and a_3 are arbitrary constants. It is clear that if we set a_1=0 we could see that u is contained in the vector space of v. Is there a function in Maple like isSubspace(u,v) which returns a boolean true or false?

An alternative interpretation could be that the image of u is a subset of the image of v.

Thank you alot for reading my question. 

 

When I try to use CodeTools:-Profiling:-Profile() (with no arguments), I get "kernel connection lost" after about a minute. Has anyone used this sucessfully, with no arguments? If so, would you please post a worksheet? I'm using Windows 8, if that makes a difference.

I think that I'll need to revert to the older kernelopts(profile= true).

In Maple V, Release 4 (1996):

 

_EnvX:=0; b:=0; proc() global b; print(_EnvX, b); assign('_EnvX=1, b=1'); print(_EnvX, b); end();
_EnvX:=0: b:=0: proc() global b; print(_EnvX, b); _EnvX:=1; b:=1; print(_EnvX, b); end();;

gives:
                                 0, 0
                                 0, 1

In newer Maple:

 

_EnvX:=0; b:=0; proc() global b; print(_EnvX, b); assign('_EnvX=1, b=1'); print(_EnvX, b); end proc();
_EnvX:=0: b:=0: proc() global b; print(_EnvX, b); _EnvX:=1; b:=1; print(_EnvX, b); end proc();

?


Hello! 

I'm trying to plt something, I can't see why Maple isn't multiplying these two rows as it should. 

Can anyone see the problem?

 

This preamble is loaded:

restart;

with(Units[Standard]);
with(ArrayTools);

with(LinearAlgebra);

with(Statistics);
with(plots);
with(CurveFitting);

 

 

 

 

 

with(plots):

with(LinearAlgebra):

 

asd := [3.5400000*10^5, 3.4700000*10^5, 3.3700000*10^5, 3.2700000*10^5, 3.1700000*10^5, 3.0900000*10^5, 3.0300000*10^5, 2.9600000*10^5, 2.9200000*10^5, 2.8900000*10^5, 2.8600000*10^5, 2.8500000*10^5, 2.8200000*10^5, 2.8100000*10^5, 2.7900000*10^5, 2.7800000*10^5, 2.7800000*10^5, 2.7700000*10^5, 2.7600000*10^5]:
 

NULL

asf := [0.2866400798e-1, 0.6112772793e-1, 0.9946549241e-1, .1349950150, .1645923341, .1877395591, .2054364684, .2189514789, .2293646837, .2374847679, .2439099369, .2490583805, .2532402792, .2566744211, .2595269747, .2619197962, .2639470478, .2656751966, .2671596322]:

 

asd*asf;

[354000.0000, 347000.0000, 337000.0000, 327000.0000, 317000.0000, 309000.0000, 303000.0000, 296000.0000, 292000.0000, 289000.0000, 286000.0000, 285000.0000, 282000.0000, 281000.0000, 279000.0000, 278000.0000, 278000.0000, 277000.0000, 276000.0000]*[0.2866400798e-1, 0.6112772793e-1, 0.9946549241e-1, .1349950150, .1645923341, .1877395591, .2054364684, .2189514789, .2293646837, .2374847679, .2439099369, .2490583805, .2532402792, .2566744211, .2595269747, .2619197962, .2639470478, .2656751966, .2671596322]

(1)

 

NULL

 

Thank you!

Download maple_what.mw

I did not understand fully some of the notation used in 2D when I had the tools->options->Display->Output display->2D. So I thought if I change it to Maple notation. I might see what the symbol actually mean.  But when I did so, the result was even more confusing. Full of typesetting:-mrow commands and hard to read.

Here is the output in 2D

restart;
int(1/( (x-a)*(x-b)),x=-infinity..infinity  );

And here is the output when I switched to Maple output:

I was expecting to see "normal" looking Maple commands, which I can understand. Even the Latex is easier to read than the above mumple jumple code:

 

Does this mean one should forget about using Maple notation for output from now on? Why is it the output so complicated?

I have a dataset:

NMP:=<0.530,0.555,0.572,0.592>:
ETOH:=<0.136,0.153,0.163,0.170>:

For these four data points [NMP,ETOH] I want to find the least square function in form of:

ln(ETOH/(1-ETOH-NMP))=a*ln(NMP/(1-ETOH-NMP))+b

also I need to find appropriate a,b constant values.

This function is implicite so I cannot use with(Statistics):NonlinearFit.

Can you help me how to determine a,b constants?

First 1061 1062 1063 1064 1065 1066 1067 Last Page 1063 of 2224