2448 Reputation

11 Badges

14 years, 195 days

Dr. Robert J. Lopez, Emeritus Professor of Mathematics at the Rose-Hulman Institute of Technology in Terre Haute, Indiana, USA, is an award winning educator in mathematics and is the author of several books including Advanced Engineering Mathematics (Addison-Wesley 2001). For over two decades, Dr. Lopez has also been a visionary figure in the introduction of Maplesoft technology into undergraduate education. Dr. Lopez earned his Ph.D. in mathematics from Purdue University, his MS from the University of Missouri - Rolla, and his BA from Marist College. He has held academic appointments at Rose-Hulman (1985-2003), Memorial University of Newfoundland (1973-1985), and the University of Nebraska - Lincoln (1970-1973). His publication and research history includes manuscripts and papers in a variety of pure and applied mathematics topics. He has received numerous awards for outstanding scholarship and teaching.

MaplePrimes Activity

These are replies submitted by rlopez

@Kitonum  The elegant simplicity of this latest solution is beautiful. Thanks for pouring your insights into this forum.

@DJJerome1976 I am as delighted with Preben's solution using freeze/thaw as you are! It allows the names u and v to be manipulated as names, but the vectors to be manipulated as objects. I'll be adding this trick to my Red Book of Maple Magic.

By the way, in Kitonum's solution using Equate, the sequence of two Equate commands results in a sequence of lists. In the Context Menu, there is a Join option that would join the contents of the two lists into one list. The code behind this Join option is a map of op, which Kitonum accomplishes with op~, again demonstrating his mastery of Maple syntax.

Just as I was about to post an answer to this question, Kitonum's equivalent solution appeared. Our solutions agree on the need to restructure the calculation because Maple does not have the ability to solve vector equations. Such equations must be reduced to equations between components.

Kitonum uses the efficient =~ to equate components of vectors, a construct that has appeared in Maple since the appearance of the Equate command that was formulated to do the same. "Equate" replaced the "equate" command in the old "student" package.

Being old-school, I would prefer the explicit Equate command. Kitonum's coding abilities far exceed mine, and his usage of coding techniques like =~ reflect his facility with Maple syntax.

@vv Just tried your suggestion, but I get the same result with and without the option singsol=all. The "implicit" option prevents Maple from solving for y. It's the solving for y that causes Maple to return the one expression that contains both solutions. When I solved the equation by hand, I noticed that I obtained sqrt(y) after the integration. So, if Maple is returning y=..., I wanted a way to see the step before. Hence, I thought of "implicit."

Maple's dsolve command gives the singular solution y=0 and a solution that can be put into the form (1/4)* (x-a)^2. Depending on whether the constant of integration "a" is positive or negative, this expression contains "both solutions" returned by Mathematica.

If the equation is solved "by hand" one gets 2*sqrt(y)=(c +/- x), so Maple is solving for y.

If the option "implicit" is included in the dsolve command, then all three solutions are returned, the singular solution y=0, and the two solutions x-2*sqrt(y)-a=0, x+2*sqrt(y)-a=0.


Using Kitonum's a[2] and aa[2], I find that simplify(a[2]/aa[2]) returns 1. However, simplifying the difference does not produce zero.

The Plane command in the Student MultivariateCalculus package will generate the representation of a plane from a list of three points it contains. The return already has had the equivalent of the primparts operator applied. It was in an attempt to understand just what the primparts command did that I spent time looking at these calculations. I ended up with the following code to generate all the planes induced by the given list L.

for k from 1 to nops(L) do
end do:

The Plane command creates a "plane object," which is, I believe, a module containing all the information about the plane. To see an equation for the plane, apply the GetRepresentation command. This returns an equation in the form a x+...=d, so some jiggering is needed to move everything to the left. Then, multiplication by the signum of the lead coefficient puts the equation in the desired form (as suggested by vv). Kitonum suggests a different strategy to make the lead coefficient positive.

By printing every equation on a separate line, it was easier to compare equations. I noticed that every equation contained the variable x. I added [[0,0,0],[1,0,0],[0,0,1]] to L and was happy to see that my code returned y=0 for that case.

I find that if I don't explore the various bits of code provided in the responses to the questions on MaplePrimes, I really don't learn much just by reading through these replies.



In an attempt to understand both the original question and Kitonum's procedure that answered it, I tinkered around with the notion of permutations. I then wrote the following lines of code.

end proc:


for k from 0 to 5 do
end do;

I got the same results as Kitonum. Of course, my code has no error checks, etc., so is rather simplistic, but I think it captures the task, and helped me understand what was initially asked. Kitonum writes wonderful and sophisticated code, but personally, I find it very difficult to extract mathematical concepts from slick computer code. I guess that's because I never studied coding formally, but came to it the way an amateur comes to woodworking. Something gets built, but there's a lot of noise and sawdust as a by-product.


Thank you for your kind words and your tolerance for my pedagogical leanings. I really believe that students learn more efficiently and effectively when a tool like Maple is used intellegently. Let's hope that Maplesoft provides me a platform for articulating this belief for a long time to come.

@Scot Gould 

Scot, thanks for the kind words. I guess Maplesoft is pretty fortunate that back then, you refrained from raising the question of a position at your institution. Don't know how I would have responded ten years ago, but I do know how I would respond now that I've retired from Maplesoft and am nearing my 76th birthday. And, yes, I'll continue being an active member of the MaplePrimes community.



Your kind words and encouragement is greatly appreciated. Thanks!


@Zahid Shareef 

I appreciate your kind words. Thanks.




In '91, I would have been teaching at the Rose-Hulman Institute of Technology in Terre Haute, Indiana. If you took your calculus at some other institution, then perhaps I have a clone I never knew about.

In any event, the real me will continue participating in the discussions on MaplePrimes.

Thanks for the kind words and encouragement.


Is the essential question "Can Maple be made to solve all the equations at once?" or is it "How can the separate sets of solutions be joined into one set?"

I don't know the answer to the first possiblity, but for the second, pdsolve returns a set of solutions, so if you want one big set, use the union command. The syntax is `union`(ans1,ans2,ans3,ans4) for forming the union of the individual sets.

@Carl Love 

As a reminder to all readers: The % refers to the CHRONOLOGICALLY last command executed, so if the worksheet is then executed out of the original order, the % will point to the wrong item. When I was teaching, my policy was to forbid the use of %, and to refuse to even look at a student's worksheet if it has a % in it. I took this draconian approach because of the many entanglements I had to sort out when students used this device.

4 5 6 7 8 9 10 Last Page 6 of 15