solve used to be one of Maple's strongest commands -- it even subsumed simplify in power. But, over the years, dsolve slowly took over as the most powerful comand. At the same time, people started realizing that within the framework of differential equations, the toolbox was actually larger than the one for algebraic equations (and most algebraic tools are still available). So many tasks that one thinks of doing purely algebraically can also be done using differential equations, with perhaps the most surprising one is to factor multivariate polynomials via partial differential equations.
We are going to show a roundabout but rather effective method of solving some rather complicated (definite) integrals in closed-form via a rather unusual method: a special factorization of linear ODEs. The example we will use is a 2 week old question that has yet to get an answer.
First, the problem: compute the integral
The following is extracted from Jakob Nielsen's weekly newsletter on usability.
----------------------------------------------------------
While in London for last week's conference, I stopped by the British Museum. Among other exhibits, I saw King George III's collection of antique coins. Because this was part of an exhibition about the growth of knowledge during the Enlightenment period, the collection was shown in the way the King had organized it.
His Roman coins were sorted chronologically, which is the same system the Museum uses to this day. But the Greek coins were sorted alphabetically according to the name of the ruler depicted on the coin. This meant that coins issued at the same time would be in widely varying parts of the collection. It also meant that coins minted in the same city state would be dispersed across the collection. Not surprisingly, the British Museum no longer uses George III's system for its collection (except for this special exhibit).
Information architecture lessons:
In a previous comment, J. Tarr asks "what is Maple primarily intended to do?", and suggests that I might have something to say on the topic.
Some time ago I was asked the question: do you know how to do a change of variables in a multi-dimensional definite integral? I thought I knew, but I was wrong. I only know how to do a change of variable in a multi-dimensional indefinite integral.
For a bit of light relief, head on over to the online comic strip at phdcomics.com. If you've ever been a PhD student, be careful, this strip might make the nightmares come back...
The New York Times has a really interesting article ``They criticized Vista. And they should know.'' (you might need to register to see the article, I am not sure). It shows why Vista isn't really an upgrade to XP, mostly through emails between senior Microsoft executives. Basically, they knew it was a dud, and instead of going with the more honest approach they were at first planning, went with really misleading advertizing that made things much worse.
A search I was doing dug up this old gem, involving a discussion between Gerald Edgar and I over a Maple problem 16 years ago!
Easy challenge: improve on my solution to Gerald's problem.
History challenge: my email address shows as wmsical!jjcarett@watmath.waterloo.edu. Can you puzzle that out? That is really two questions, a) how is that an email address and b) what is 'wmsical' ?
This workshop is focused on the intersection of programming languages (PL) and mechanized mathematics systems (MMS). The latter category subsumes present-day computer algebra systems (CAS), interactive proof assistants (PA), and automated theorem provers (ATP), all heading towards fully integrated mechanized mathematical assistants that are expected to emerge eventually (cf. the objective of Calculemus).
This is the second PLMMS workshop, with the first workshop held with Calculemus 2007 in Hagenberg, Austria.
John Fredsted posted some interesting code dealing with permutations, and I suggested a small improvement. Here, I want to continue the story of that improvement. First, let us focus one particular line of code:
posMaps,negMaps := seq(map((perm::list) -> (x::list) -> [seq(op(perm[i],x),i=1..nops(perm))] ,perms),perms in [posPerms,negPerms]);
which uses a lexically scoped procedure to perform the permutations. The first thing to notice is that op(perm[i],x) is really equivalent to x[perm[i]]. Now that we have that perky op gone, we see that the resulting code expression will return unevaluated if x is unknown, unlike op which throws an error message (correctly so!). So now instead of using scoping, we can let Maple actually evaluate the inner perm[i] calls, and use unapply to recover a routine. Putting that together gives us my suggestion:
posMaps,negMaps := seq(map((perm::list) -> unapply([seq(x[perm[i]],i=1..nops(perm))],x),perms), perms in [posPerms,negPerms]);
9 min 48 sec ago
16 min 17 sec ago
27 min 36 sec ago
31 min 49 sec ago
35 min 40 sec ago
46 min 54 sec ago
54 min 58 sec ago
1 hour 47 min ago
3 hours 12 min ago
5 hours 15 min ago