roman_pearce

Mr. Roman Pearce

1703 Reputation

19 Badges

20 years, 244 days
CECM/SFU
Research Associate
Abbotsford, British Columbia, Canada

I am a research associate at Simon Fraser University and a member of the Computer Algebra Group at the CECM.

MaplePrimes Activity


These are replies submitted by roman_pearce

I agree that many of Mr. Bondarenko's bugs demonstrate sloppiness or a lack of testing, however it is important to recognize that most of his bugs come from the same handful of sources in the code. Usually there is missing functionality and sometimes no algorithm is available to do the problem. Other times multiple examples hit the bugs in the code over and over. There is no question that actual errors in the code must be fixed, however fixing even one issue comprehensively can easily take a week. If you try many of his old bugs in newer versions of Maple you will see that Maplesoft has made steady and consistent progress against his database of bugs. I think this probably the most that anyone can ask for if backwards compatibility is to be maintained.
What is it you want to do ? You can change the plot coloring in the plot menu to things like z=hue (z value maps to hue), etc. The default is a blend of {x,y,z} values.
What is it you want to do ? You can change the plot coloring in the plot menu to things like z=hue (z value maps to hue), etc. The default is a blend of {x,y,z} values.
Sorry that part of my post was not clear, I have updated the link to point to Wan's paper. The paper presents a dense algorithm, however he has hit on an extremely useful idea, and I think it could work for sparse matrices as well. It may be applicable trivially, because structured Gaussian elimination can be run (with restrictions for conditioning) to produce a small dense matrix from a large sparse matrix. Anyways, I just wanted to point out this approach because I think it's a really interesting example of using a numeric algorithm to construct an exact result. I don't know whether this alternative to modular methods will prove to be any better, but I think it's well worth investigating. As for Maple 11, I am aware of the improvements you mentioned and I am very encouraged by them. The characteristic polynomial command actually does more than just a dense modular method. It analyzes the sparse structure of the matrix to recognize blocks. I think these structured sparse algorithms are critical for improved performance on real problems now and in the future, because dense linear algebra can only take you so far.
I wouldn't bother trying to fix BSpline, it processes options then calls itself recursively (processing options again) for each spline. This is not a good way to construct 10000 splines. Other commands in CurveFitting have similar problems, and the entire package would need an overhaul to get good performance. If someone is ever going to do this, I suggest they construct a symbolic formula for curves up to a fixed degree and then evaluate the formula in a seq to construct the piecewise function. Alternatively (for splines anyway) you could make a module which stores the original data and calls an external function to do the interpolation in real time as values are requested. This would massively cut down on the storage requirements and eliminate the problem with piecewise (which was really not designed for this).
I would like to expand on this a little more. I think it is often the case in symbolic mathematics that you know a problem has been solved when it has been reduced to sparse linear algebra. The non-zero entries are pieces of information that you need and the rows express their linear relationships. It doesn't get any simpler than that. If the system is not too redundant then you have an efficient algorithm. If the system is triangular then you actually have a circuit which outputs the answer. At that point the problem is solved, and it's just a matter of having a good implementation. We need sparse triangularization and back substitution. This will produce fast algorithms for many things.
I appreciate your feedback, it gave me this idea: I think they could fix Maple's sparse rtable format simply by sorting the indices in lexicographic order. At least that's what you would get from op(A). What really needs to happen is they need a (possibly dense) list of rows, where each row is stored a sparse list of column=entry. I implemented this using Maple tables and it performs reasonably well (for Maple code). One day I will have to write a blog post about it. I have to nit-pick with something though: It's also good to be realistic. Sparse exact linear algebra could be a good addition for Maple as well as be lower down a great many people's priority lists. I totally disagree. I think solving linear equations is a basic thing, and it's something I would expect a computer to do well, as opposed to say, integration. It also makes no sense that Maple can factor polynomials and do other tasks which require sparse linear algebra when the LinearAlgebra commands are so lame. You're right that many users won't care, but many algorithms require this. I would bet that it is already one of the most frequently reimplemented things in the Maple library.
I have not had any problems with Maple 11 on my iBook G4 on 10.3.9, but that's a totally different PPC Mac :) Have you noticed any instability with other applications ? If not, it's almost certainly Maple. The second most likely culprit is Java. You should check that all the latest updates are installed, although updates are the third most likely culprit. If you do have random instabilities in other applications then you should check your Powermac for a coolant leak (it happens).
It would be nice if there were some nice online ``feature request'' portion of this site... I think they beat you to it: Product Suggestions
Maybe it's not acceptable for political reasons, but I wouldn't worry about teaching students a proprietary programming language. If the point of the class is to teach students to write programs, it doesn't really matter what language they use as long as it makes the concepts clear. I think I learned on PASCAL, which was pretty good for a 286 or whatever ridiculously outdated computer it was. Maple would have been much better. I'm not sure I like python that much. It certainly is an elegant language, but I think it is a mistake to use whitespace to denote program structure. I like Maple's delimiters: "end if", "end do", etc. There's no confusion with that. I think the worst possible language to teach first is Java. It has most of the complexity of C++ with TooManyLongCommandsInCamelCase and So.Many.Sub.Classes.I.Cant.See.What.Im.Doing. It has all the hallmarks of a somewhat useful idea being carried to the point where it obscures all other concepts.
Gifted students can (and probably will) discover it on their own, given the opportunity. It would be good to have a copy of Maple available for this purpose. For high school I would use Maple to teach computer programming, and the students who are interested in math (which will be most of them) could see that side of it too. I wouldn't use it in a standard high school math class. In fact, why doesn't Maplesoft market Maple to high schools as a tool to teach programming ? The language and interactivity is perfect for that.
I think the best time to introduce Maple is when computer assistance (with simple programming) is required, so that the purpose of the tool is obvious and necessary. I give some examples. At my university there is a second year course on non-linear dynamics. The students learn Maple so that they can enter simple functions, iterate them, and plot the behavior to see it. You can't really run these things by hand, and a calculator's small screen and limited input make it an inappropriate tool. A computer is the best tool, and Maple's programming language is quickly learned and it generates immediate (interactive) results. Exactly the same argument applies to courses on numerical analysis. Students can easily implement the algorithms and run them at different levels of precision. This is invaluable, not because it couldn't be done before, but because using Maple saves so much time. Another place where I would consider introducing Maple is in a first course on differential equations, around the time when Taylor series methods are introduced. Everyone at this point will know how to compute the series, and after doing a few examples by hand why not use a computer so that you can judge the overall effectiveness and limitations of the method ? This is a good time to get them plotting DEs as well. Finally, Maple can also be a good tool in less popular courses such as abstract algebra, number theory, and cryptography. The best way to test understanding of an algorithm is to implement it, and Maple makes this easy to do (and more importantly, to debug). This might label me as an "old coot", but I am much less convinced of Maple's value for courses like first year calculus and linear algebra. The audience is much larger so obviously there is more demand to push Maple into these courses, but I think the problem is that the students are too immature, they have too much to learn, and Maple doesn't provide enough benefit to justify the cost of learning it. I am talking here about the core Maple system, not the tutors and interactive assistants which have been bolted on. I think those could be very good for labs, although I personally haven't judged their effectiveness. In any case, I wouldn't make first year calculus or linear algebra students buy Maple. It doesn't provide enough value to them. I probably would make the non-linear dynamics students or numerical analysis students buy it, because they would find a need for it throughout their course. As for high school students - stay away. They are screwed up enough already, and I think it is entirely the fault of government institutions and companies relentlessly pushing their agendas into the curriculum to either a) sell stuff or b) look good. I don't see how Maple could really help high school students learn their mathematics.
As far as I know, Maple only implements a general method using function evaluations for implicitplot3d. It does not use dedicated methods for polynomials or analytic functions (which would compute derivatives), so it is unlikely to produce a satisfactory plot for your problem. You might try GNUPlot. For 2D implicit plots, Maple 11 is vastly improved over earlier versions, however the defaults are terrible.
I don't see how you could fix this. The user expects that if they have an array or table called t, then t refers to the table and t[i] accesses element i of it. If you try and make t and t[0] independent then if the user has a variable named t[0] and a table named t, they can't access the 0th element of the table. In Maple's current design, indexed names like t[0] are indexed into t, so this problem is avoided. The only difficulty is with users who don't understand why they can't mix t[0] and t in an expression. It should always be safe to use {t[0],t[1],...} when t is not used. I don't see an alternative that would work. You could make t_0 print a subscripted zero like in LaTeX and then make t[0] always print "t[0]", not subscripted. Then subscripted variables would always work and it would always be clear that t[0] is indexed into t. The downside is that you can't easily write t_i where i is a variable (ie: loop counter) so this would mostly be useless. In order to write t_i you would need to change _ to be an operator, and that would be a nightmare because it is used throughout the library. Does anyone else have any other alternatives ? Personally I would stick with the current design.
As acer points out, there isn't a 64-bit version of Maple 11 for Windows, so right there the maximum amount of memory that Maple can address is limited to 4GB of RAM. In fact, the real amount Maple can use is probably only 2GB, because the operating system partitions each application's address space and dedicates some large fraction of the memory to itself (so that the application can access operating system services). The default partition in Windows is 2GB/2GB. You can increase this to give each application 3GB of memory by adding a line to boot.ini, as described here: http://www.microsoft.com/whdc/system/platform/server/PAE/PAEmem.mspx Note that this happens on all multiprocess operating systems, not just Windows. On Linux there there is an option in the kernel to use 3GB/1GB. I'm not sure what OSX uses, does anybody know ? Are you using the 64-bit version of Windows ? There may be a compatibility problem. You should try to start the command line version of Maple and paste in your program and see if it runs.
First 24 25 26 27 28 29 30 Last Page 26 of 39