2985 Reputation

14 Badges

19 years, 143 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

@Mariusz Iwaniuk 

If q is Laplace's equation, then the following pdsolve command returns a weak solution to a BVP that has discontinuous boundary data.


Whether this is by design or by accident, I don't know.

If the design is to catch all BVPs with discontinuous BCs, then this example points to a bug that I would hate to see fixed. I would not want Maple to stop returning a weak solution to such a problem. This issue of pdsolve and weak solutions really needs clarification. It appears that pdsolve presently solves some BVPs with discontinuous BCs, but not all. I would rather see it solve more such problems rather than fewer.


Similar problems have been solved in this forum with Draghilev's method and with the DirectSearch package. This package is not built into Maple. It can be downloaded from the cloud.

Do a search on "Draghilev" in this forum and find examples that have been solved by both methods. Be advised that some posts in this forum have been saved with the tag "Dragilev".

If there is sufficient smoothness, etc., your particular example defines a curve parametrically. In principle, three equations in four unknowns can be solved for three of the unknowns in terms of the fourth. Hence, x=x(a), y=y(a), z=z(a). The nonlinearity in your equations might make the algebra of solving intractable, but a numeric solution should be possible. Note that for a given value of "a", there may be multiple points (x,y,z) that satisfy the equations. That would mean the curve so defined loops back over itself or has branches. The devil is always in the details.


The evolute of the ellipse x^2+4*y^2=4 is given parametrically by x=3/2*cos(t)^3,y=-3*sin(t)^3. Call this evolute E. An involute of this evolute is given vectorially by E-s*T, where T is a unit tangent vector and s is arc length. In an upcoming webinar (A Tale of Two Involutes, prepared but not yet scheduled), I will show that the arc-length function must look essentiallylike the graph drawn by the OP. A strictly increasing s(t) will not yield any correct involute. I found that the indefinite integral rather than the definite integral worked. The evolute E does not have a continuous tangent vector, and the points of discontinuity are the cause of the anomalous behavior.

The Maple command for obtaining a numeric solution of an equation is fsolve. While there is an implementation of Newton's method in the Student Calculus1 package, it is there as a pedagogic tool. The command is NewtonsMethod, and there is a Tutor that implements it. But I imagine that you need the fsolve command for what you have seemed to describe.


csgn first appears with argument I*kappa^4+((2*I)*n^2+12*I)*kappa^2-24*kappa*n+I*n^2*(n^2-12). The value of csgn hinges on the signs of the real and imaginary parts of this argument. If you give values to n and kappa, you will find that the signs of the real and imaginary parts will change depending on what values you give. Maple does not know what these values might be, so no simplification is possible unless the assumptions on n and kappa are more specific.

I tried simplify(the product) assuming n>0, kappa>0 and got a much simpler expression that appears to be strictly real.



Couldn't stop thinking about this question. Here's what I would have done to examine this vector field.


Explore(VectorField(<((rho/rho0)^2*exp((rho/rho0)^2), rho*sin(phi)^2/rho0, 1>, coords = cylindrical[rho, phi, z], output = plot, fieldoptions = [arrows = SLIM, fieldstrength = fixed]), rho0 = 1 .. 10.)

Notice that F0 has been set to 1 because it is a simple multiple of each coordinate. It can be included if it really matters.

The Explore command generates a graph controlled by a slider that varies the value of rho0.

The BasisFormat command controls the display format for vectors. I prefer seeing column vectors and not a sum of components multiplied by basis vectors.

In the Student VectorCalculus package, the VectorField command is modified to accept the option "output=plot". A graph of the vector field's arrows is returned. This avoids the need for invoking the fieldplot or fieldplot3d commands. See the help page for the VectorField command for the options that modify the look of the graph drawn with the VectorField command.



The problem you want to view is the third, and it starts at approximately 21 minutes.

It appears that the Enter key was pressed after each of the three lines of the do-loop. The loop has to be in one single execution group, and this is done by use of Shift-Enter, not just Enter.

There was one more trig function without parentheses. Once I fixed that last guy, r-vec display properly.

There are syntax errors: all trig functions require round parentheses. It is an error to write sin x. It must always be sin(x).

Also, the red error message tells you about another error: The variable r has been assigned to. Therefore, it is no longer a free name, so you can't differentiate with respect to r.

I don't understand why the vector r_vec is printing as a column vector. I tried <x,y,z> and that prints in Basis Format with basis vectors displayed. When I execute About(r_vec) I see that it is being defined as a Matrix, not a vector. I don't understand why.

I tyically work in the Student version of VC because it is more forgiving with respect to defining and redefining coordinate systems. In that package, r_vec displayed in Basis Format, not as a column vector. That's as much as I've discovered so far.

@gmzsvsclk Please define what you mean by "the points (t,y)"? Which points? I gave you a method for finding those points on a graph that Maple could be  made to draw. Obviously, you didn't want that collection of points, so which points do you want? You have also been given recipes for finding arbitrary points by solving explicitly for y. So, which points do you want?

For a single variable, Newton's method takes x[n+1] as the x-intercept on the line tangent to the graph of f(x) at x[n]. The Secant method replaces this tangent line with a secant line drawn through x[n-1] and x[n].

In the multivariate case, the Jacobian matrix in Newton's method can be replaced with alternatives, such as in Broyden's method. I'm not sure that such methods follow from a simple geometry that generalizes a secant line. In fact, Newton's method in the multivariate case is derived via Taylor expansions of each function, and not through any obvious geometry. If it can be so based, I've never seen it, and would appreciate a pointer to it.


The Roots command will succeed if Digits is set to at least 17. As several responses indicate, the calculation is delicate and subject to roundoff. I guess I missed that the first time I looked. Thanks to all who provided a sharper analysis.


Delete the number=1 option, and don't specify a derivative condition as an initial condition for a first-order ODE.

With the DEtools package installed, the following syntax works:

phaseportrait(X(t) = diff(X(t), t), X(t), t = -1 .. 2.5,[[X(0)=1],[X(0)=-1]])

but not phaseportrait(X(t) = diff(X(t), t), X(t), t = -1 .. 2.5,[[X(0)=1],[D(X)(0)=-1]])

The dsolve command can obtain the solution with the derivative IC, which can be graphed separately, then joined to the plaseportrait via the display command in the plots package.

p1:=DEtools:-phaseportrait(X(t) = diff(X(t), t), X(t), t = -1 .. 2.5,[[X(0)=1]]):

5 6 7 8 9 10 11 Last Page 7 of 20