Michael

217 Reputation

11 Badges

18 years, 11 days

MaplePrimes Activity


These are replies submitted by Michael

Hi: First of all, many thanks for spending so much time with a very thorough reply. Now that I have been thinking about it, let me try again from the viewpoint of a Maple user who is trying to solve a problem, as opposed to a computer algebra theorist. You start a calculation, work on it many hours and decide to quit for the day, so you save your worksheet and turn off the program. Next day you fire up Maple and run your worksheet to the point where you left off, and ... guess what? The answer you get isn't the same as the answer you had yesterday. So you track it down and discover that today Maple is writing (1-x) as -(x-1) and your substitutions didn't catch that one. So, you change your program, spend some more quality time with your problem, quit for the day and start again tomorrow. And to your horror, tomorrow you discover that (a-b) has become -(b-a), and the solution you wanted to the 10x10 matrix inversion is no longer the 5'th, but the second element. Well, you get the picture. So, let me try the question again from a very practical point of view - thanks to your explanation, I now understand why Maple may decide to reorder things according to its own random quirks as a calculation progresses, but surely there must be some way of restarting everything fresh when you go back to the beginning, so the code will always do its quirky thing reproducibly. That's the way computers are supposed to work. I have painfully discovered that starting every worksheet with a preemptive "restart" command isn't enough so there must be more to it than that. In short - how do you invoke a "clean" restart?
Yours is an interesting thought - hard to believe - so I tried it: Maple 11 gives the following results for this experiment: sqrt(exp(I*Pi)); I sqrt(exp(-I*Pi)); I sqrt(1/exp(-I*Pi)); I sqrt(1/exp(I*Pi)); I which means that Maple doesn't seem to have a means of distinguishing between the two approaches to a branch cut, unless there is a command that I haven't found (yet). So this explains another Maple mystery from a few months back: when I tried to evaluate the discontinuity of a complicated function across its branch cut by naively evaluating f(I*Pi)-f(-I*Pi), I kept getting the wrong answer.
Yours is an interesting thought - hard to believe - so I tried it: Maple 11 gives the following results for this experiment: sqrt(exp(I*Pi)); I sqrt(exp(-I*Pi)); I sqrt(1/exp(-I*Pi)); I sqrt(1/exp(I*Pi)); I which means that Maple doesn't seem to have a means of distinguishing between the two approaches to a branch cut, unless there is a command that I haven't found (yet). So this explains another Maple mystery from a few months back: when I tried to evaluate the discontinuity of a complicated function across its branch cut by naively evaluating f(I*Pi)-f(-I*Pi), I kept getting the wrong answer.
Thank you for taking the time to explain all that. It boggles the mind that someone would deliberately write a program that doesn't do the same thing when started from the same initial state. You wrote: "if I enter a polynomial in {x,y} and ask for the variables, should Maple return {x,y} or {y,x}"? Well, I don't care which it chooses, but once it has decided, according to whatever criteria it wants, it should make the same choice if again I ask the same question with the same conditions and polynomial. My understanding is that computer scientists solved this problem over 60 years ago when they invented pseudo-random numbers - random, but reproducibly so. What do you mean by the term "global order" and how does one "specify the domain for computations"? Is there some way to impose a different "global order" or some different "computation domain", at the cost of losing efficiency as the price for reproducibility?
Thank you for taking the time to explain all that. It boggles the mind that someone would deliberately write a program that doesn't do the same thing when started from the same initial state. You wrote: "if I enter a polynomial in {x,y} and ask for the variables, should Maple return {x,y} or {y,x}"? Well, I don't care which it chooses, but once it has decided, according to whatever criteria it wants, it should make the same choice if again I ask the same question with the same conditions and polynomial. My understanding is that computer scientists solved this problem over 60 years ago when they invented pseudo-random numbers - random, but reproducibly so. What do you mean by the term "global order" and how does one "specify the domain for computations"? Is there some way to impose a different "global order" or some different "computation domain", at the cost of losing efficiency as the price for reproducibility?
You are correct - I had noticed that as well - that is why I believe that Maple's answer is wrong when one uses f(k). Its one thing not to find an answer, since an answer to this problem is probably not known. Its something completely different to generate an incorrect answer. I was hoping that someone would show that the answer Maple came up with is somehow correct.
Sorry, but the case n=k doesn't satisfy the original recursion either (except for the first one: n=2).
The fact that it appears to hang is an interesting observation, but you should run it longer than 20 minutes to be sure. Maybe leave it running overnight? The real problem is that I don't even want to evaluate that sum. Maple tries to evaluate that sum inside another of its own procedures and gets stuck, so I have no control over it. My real problem is the following program: restart; rq:=Q(n+1)=Q(n)/x+4*(n+1)^2*Q(n)+4/3/x*n*(n+1)*(n+1/2); Ans:=rsolve(rq,Q(n)); and Maple freezes inside "rsolve". I speculate that it is trying to evaluate the sum I previously posted, which happens to be the answer. When you run the above program, does it freeze after about 20 minutes? By freeze, I mean a complete halt - nonresponsive cursor and keyboard. Sometimes the machine spontaneously reboots instead of freezing. Otherwise it might still be trying to solve the problem after 20 minutes and it will eventually emerge. Thanks Mike
The fact that it appears to hang is an interesting observation, but you should run it longer than 20 minutes to be sure. Maybe leave it running overnight? The real problem is that I don't even want to evaluate that sum. Maple tries to evaluate that sum inside another of its own procedures and gets stuck, so I have no control over it. My real problem is the following program: restart; rq:=Q(n+1)=Q(n)/x+4*(n+1)^2*Q(n)+4/3/x*n*(n+1)*(n+1/2); Ans:=rsolve(rq,Q(n)); and Maple freezes inside "rsolve". I speculate that it is trying to evaluate the sum I previously posted, which happens to be the answer. When you run the above program, does it freeze after about 20 minutes? By freeze, I mean a complete halt - nonresponsive cursor and keyboard. Sometimes the machine spontaneously reboots instead of freezing. Otherwise it might still be trying to solve the problem after 20 minutes and it will eventually emerge. Thanks Mike
Sorry, I don't understand your comment. The sum is from 0 to n-1 not n..n-1, and it was Maple itself that generated the statement in question. When run on my machine, Maple produces nothing except a CPU freeze. Does it freeze when run on your computer?
Sorry, I don't understand your comment. The sum is from 0 to n-1 not n..n-1, and it was Maple itself that generated the statement in question. When run on my machine, Maple produces nothing except a CPU freeze. Does it freeze when run on your computer?
Thanks. I had already tried "assuming" but that doesn't work because the original expression (as opposed to the simple test I posted) was calculated from the solution of a complicated set of equations and the "assuming" command didn't appear to propogate into the interior of "solve", so I kept getting the wrong answer. But I never met the "indets" command before, so thank you for that. Subsidiary question: can you always assume that the variable you are looking for will be the 5'th entry in the indets list as in your example? Otherwise, a program (as opposed to a one-off calculation with a human at the helm) would have to search the indets list for the desired variable, and that brings us back to square 1. Michael
Thanks. I had already tried "assuming" but that doesn't work because the original expression (as opposed to the simple test I posted) was calculated from the solution of a complicated set of equations and the "assuming" command didn't appear to propogate into the interior of "solve", so I kept getting the wrong answer. But I never met the "indets" command before, so thank you for that. Subsidiary question: can you always assume that the variable you are looking for will be the 5'th entry in the indets list as in your example? Otherwise, a program (as opposed to a one-off calculation with a human at the helm) would have to search the indets list for the desired variable, and that brings us back to square 1. Michael
Hi: There is a program called PDFCreator which you can pick up from various sources on the internet. It comes with the gnu licence so it is essentially free, but some people have taken to packaging it in a simple form and selling it for $5 on ebay. Anyway, it will convert any print operation into a PDF file, and it works nicely. So, with that program installed, just highlight whatever you want from a Maple worksheet, or the worksheet itself, and print it. Choose PDFCreator, instead of your default printer. You will end up with a .PDF file. Michael
Thanks. Could you please clarify: Under what conditions does (b^u)* (b^v) not equal b^(u+v) when b,u, and v are all complex? Thanks Michael
1 2 3 4 5 Page 4 of 5