30 Reputation

5 Badges

6 years, 128 days

MaplePrimes Activity

These are questions asked by Bland3

I've been struggling to implement a more complicated version of the example from Acer here:

The basic idea is that Maple allows XML for typesetting (and maybe MathML? I don't use the MLs, so I can't speak to limitations or differences).

It's somewhat straightforward, but extremely tedious. The statement that this is " undocumented, but not overly difficult " may be true, but it's time-consuming to learn bits and pieces of any additional language just to typeset something that resembles extremely common typesetting language, and frankly feels like a waste of time. In a world where we have LaTeX, I don't see why Maple can't use LaTeX language for typesetting in plots. Python, MatLAB have this feature, and a homebrew version of this for Mathematica came up during my searching, but nothing useful for Maple. The Physics package  has some function to take the Maple and produce LaTeX code (untested by me so far), but not being able the other direction to typeset axes, titles, and textplots with LaTeX notation is shocking to me.

When one attempts the tag formating from html/XML like here:
or formatting, errors come up. Basic things like having control over a given character's size seem impossible without the tag formatting, and I tried for some time to get all sorts of variations of #mstyle to work using the syntax method of the linked question. The converters that I've found that go from LaTeX to MathML use this tag formatting.

Here are some examples that I made up to demonstrate acer's method and one particular area where the MathML spectactularly fails compared to LaTeX, and included to (current as of this moment) links that give element names for XML and symbol names for html/xml:

The contents are failing to be inserted, but the file downloads correctly from the preview for me.

I am making calculations on a block matrix of the form Matrix([[A,B],[-B,-A]])

with A real and symmetric and B real and antisymmetric. (For the physics savvy, this is the Bogoliubov-de Gennes form of the coefficient matrix for doing calculations.)

But this says if I have an eigenvector of the form (u,v) with eigenvalue E, then there is another eigenvector (v,u) with eigenvalue -E.

Now, my problem.. I have a problem that has two zero eigenvalues, but the numerical solver is giving one as zero and one as just very small. This is problematic because my eigenvectors don't have the symmetry that they should. For the non-zero eigenvectors, the error is small and doesn't matter so much. But the eigenvector corresponding to the zero eigenvalues are not guaranteed to be close.

Is there a way to demand my eigenvalues come in pairs for my matrices? Something that dependings on A,B being even or odd dimensional is fine. I care more about the symmetry than even/oddness.

Using the Physics package (the newest updates for Maple 2016), I am trying to get a basic setup of fermions on a lattice. My lattice is indexed j=1,...,L for some length, L (I'm trying just for L=4 by hand). Using combinat and arraytools and lsit tools, I can generate my entire list of configurations from [0,0,0,..,0], [1,0,0,...,0], ..., [1,1,...,1]. I read through this which should be even more general than my problem, but I'm not getting the anti-commutation relationships to work out properly. In that link, the original poster is putting the kets in by hand, I would like to generate them.

So I have this:


Setup(quantumop={cre,ann}, algebrarules={%AntiCommutator(cre[j],ann[k])=I*KroneckerDelta[j,k],%AntiCommutator(cre[j],cre[k])=0, %AntiCommutator(ann[j],ann[k])=0})

and my algebra is defined. But if I try to compute AntiCommutator(ann[1],ann[1]) is doesn't evaluate it but computes AntiCommutator(cre[1],ann[2]) perfectly fine.


Okay. The algebra is defined, then I create my configurations by using a traingular array and then permutations (and some list/array tools to product vectors that look like [0,0,0,0],[0,0,0,1],...,[1,1,1,1])

Config_Gen := proc(Length)
global Configurations;
local fermionarray,n_n,V,Ln,i_i;
fermionarray:= Array(triangular[upper],1..Length+1,1..Length,fill=1);
for n_n from 1 to Length+1 do
V[n_n] := fermionarray(n_n,1..Length);
Ln[n_n] := permute(convert(V[n_n],list));
end do;
Configurations := Ln[1];
for i_i from 2 to Length+1 do
    Configurations := [op( Configurations), op(Ln[i_i] ) ];
#    Configurations := Reverse([op( Configurations), op(Ln[i_i] ) ]);
end do;
 print("Table of configuratons is", fermionarray);
 print("The table written as a set of vectors is", V);
 print("Permutations of generators is", Ln);
 print("Full list of Configurations is", Configurations);
end proc;

For Config_Gen(4) this makes the configurations perfectly fine. Then I need to translate these configurations into creation operators acting on the 0-particle vacuum:

for i_i from 1 to 2^4 do
Ket(psi,Configurations[i_i]):= product(cre[j_j]^Configurations[i_i][j_j],j_j = 1 .. 4)* Ket(psi,Vacuum);
nnn:= sum(Configurations[i_i][j_j],j_j=1..4) :
Bra(psi,Configurations[i_i]):= fff* Bra(psi,Vacuum) * product(( ann[j_j] )^Configurations[i_i][j_j],j_j = 1 .. 4);
end do;
value(Simplify(Bra(psi,[1,1,0,1]) *Ket(psi,[1,1,0,1]) ));

Which generates the bras and kets. The factors of (-1) are chosen to give the correct bracket. A problem: For some reason, the product in Maple gives the same when I do Configurations[i_i][(4+1)-j_j].

Some other problems: When I go to evaluate AntiCommutator(ann[1],ann[2]) or more explicitly ann[1]*ann[2] + ann[2]*ann[1], the worksheet doesn't simplify. Is there a nice way to use the built in Annihilation and Creation operators of the physics package into the tensorproduct space on which I'd like to do calculations?





I have a coupled pair of anharmonic oscillators and need to calculate the stability matrix and find the lyaupanov exponent for how the nearby trajectories diverge. In particular, I have the Hamiltonian

H = (p1^2+p2^2 + q1^4+q2^4 + 12*q1^2*q2^2 )/2

and I need to compute the matrix M given by

dM/dt = J*Hess*M

where J := Matrix(4,4,[0,0,1,0,  0,0,0,1,  -1,0,0,0,  0,-1,0,0]), and the Hessian takes the form:

Matrix(4,4, [6*q1_12(t)^2 + 12*Q2_12(t)^2, 2*12*Q1_12(t)*Q2_12(t),0,0,   2*12*Q1_12(t)*Q2_12(t), 6*Q2_12(t)^2 + 12*q1_12(t)^2,0,0,    0,0,1,0,    0,0,0,1])

The solver finds the trajectories of p1,p2,q1,q2 fine, but I don't seem to find a way to incorporate their solutions as inputs to reevaluate the Hessian at each time step. I read through and the dsolve since I'm trying to do this numerically.

I thought I could get around this just by resolving the trajectories, but it's spitting out an error that arrays must be initialized with lists.

The actual code is here:

Sorry, I still need to clean it up a bit. Any help would be appreciated. I need to calculate M(t), then calculate the matrix norm and find the exponent.





Page 1 of 1