2,734 reputation
1611
bio website stephenluttrell.com
location West Malvern, United Kingdom
age
visits member for 2 years, 4 months
seen 23 mins ago

I have been a Mathematica user since 1981, using version 0 to do QCD calculations for my PhD, and all subsequent versions to do research into various sorts of adaptive information processing. The use of Mathematica has been the key to almost every new result that I have discovered, because I can do "experiments" at the speed at which I think (more or less), so I don't get bored or lose my train of thought. Mathematica and I are a well-matched symbiotic pair!


2d
comment How to get NMinimize to work
In NMaximize and NMinimize use Method -> "SimulatedAnnealing", MaxIterations -> 500.
Sep
24
awarded  Autobiographer
Sep
21
answered Bug in ClusteringComponents yielding different results on practically same input?
Sep
21
comment Bug in ClusteringComponents yielding different results on practically same input?
The k-means algorithm can get trapped in a local minimum during optimisation, so try using the "RandomSeed" option of ClusteringComponents to vary its initial guess. I found that "RandomSeed" -> 12345 makes the results the same in both cases.
Sep
18
revised How can I create a set (list) provide a kind of rule/algorithm?
added 2 characters in body
Sep
18
answered How can I create a set (list) provide a kind of rule/algorithm?
Sep
16
awarded  Nice Answer
Sep
10
comment Hardware required to perform large symbolic calculations
@mitochondrial You say "Standard licence allows Mathematica use four core only" but it says on here that the standard licence allows you to run 8 "computation kernels". A 4-core i7 CPU hyperthreads 8 computation kernels (modulo the collisions that occur in hyper threading) but a 4-core i5 CPU does NOT hyperthread, so 4-core i7 (rather than 4-core i5) seems to be well-matched to the Mathematica "standard licence". I agree with other comments here that maxing out the RAM size is the top priority.
Sep
9
comment How to calculate the analytical result of this singular integral?
I noticed that the substitution $x = \cosh(t)$, $dx = \sinh(t) dt$, $\cosh(t)^2 - \sinh(t)^2 = 1$ transforms the integrand into a simpler form. However, this transformation doesn't seem to get you any closer to a closed-form solution to the integral, and you also need to know which way to go around the pole on the real line.
Sep
5
comment symbolic integration error
This also works: displace the endpoints of the integration, evaluate the integration, then move the endpoints back to their original locations: Integrate[1/\[Pi] ((1 - x) (1 + 2 x)^6)/Sqrt[1 - x^2], {x, -1 + a, 1 + a}] /. a -> 0.
Sep
4
revised Rewrite an expression as a sum of $SU(2)$ characters?
deleted 3 characters in body
Sep
4
comment Rewrite an expression as a sum of $SU(2)$ characters?
Yes. The second example is the expression at the top of the question. I added it to the end of my answer after its typos were corrected, but it doesn't really demonstrate anything more than what is in the body of my answer.
Sep
4
answered Rewrite an expression as a sum of $SU(2)$ characters?
Sep
4
comment Rewrite an expression as a sum of $SU(2)$ characters?
I don't see how your second expression is a factored form of your first expression. I am reading them as (first expression) 4 q^(-(1/2)) t^(3/2) (t + 2 q t^2) + t^2 (q + t) (1 + q t (1 + q t)) and (second expression) 4 ((q t)^(1/2) + (q t)^(-(1/2))) + (q t + 1 + (q t)^-1) ((q/t)^(1/2) + (q/t)^(-(1/2))).
Sep
3
comment Solving mixed integer programming using Mathematica
You could use the EM algorithm. A quick demo of this is (1) set up the problem m=100; n=10; data=RandomReal[{-1,1},{m,2}]; nodes=RandomReal[{-1,1},{n,2}];, (2) use EM to optimise the nodes clustering = NestList[(nearfun = Nearest[#]; Mean /@ GatherBy[data, nearfun]) &, nodes, 10];, (3) plot the sequence of optimisation steps movieframes = Map[ListPlot[{data, #}, AspectRatio -> Automatic, PlotStyle -> {Black, {PointSize[0.02], Red}}, PlotRange -> {{-1, 1}, {-1, 1}}] &, clustering];, and (4) animate the sequence ListAnimate[movieframes].
Sep
2
comment How to put the tensor product of two operators onto two variables?
You use Coefficient to extract coefficients from expressions. So, using the state[spin, index] notation in my original answer, the probability of position -1 is #.Conjugate[#]&[Coefficient[yourstate, {state["\[DownArrow]", -1], state["\[UpArrow]", -1]}]], where the pure function #.Conjugate[#]& computes this probability from the individual basis state amplitudes.
Sep
1
answered Use Mathematica to calculate the area enclosed between two curves
Aug
30
comment How to put the tensor product of two operators onto two variables?
You can display the results in the form that you want by simply using the Notation package (that I mentioned in my answer above) to map each internal state[index, spin] expression to your required state[spin, index] displayed output. You then get the best of both worlds - convenient internal computations AND convenient displayed output - with the Notation package connecting the two of these together.
Aug
30
comment How to put the tensor product of two operators onto two variables?
The easiest way to get the ordering you want is to define the basis state as state[index, spin] rather than state[spin, index], and to correspondingly adjust the definitions of how the H and S operators act on these basis states. Don't forget to remove the old definitions first, or start with a fresh kernel. Mathematica will then automatically display the result ordered as you want it to be.
Aug
29
comment Can Mathematica solve 625 linear coupled differential equations?
If DSolve or NDSolve don't do what you want, then you could break the solution process down into stages: (1) linearly transform the variables to diagonalise the system of DEs, (2) solve each diagonal DE, (3) transform the solutions back to the original variables.