2670 Reputation

12 Badges

16 years, 165 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 answers submitted by rlopez

Given that the OP asks for derivatives with respect to b and varphi, let's assume that these are the independent variables, and that x and r are just parameters. And for simplicity, let's call varphi just phi. Then the analysis can be simplified to w=w(b,phi) with the constraint f(b,phi)=0.

I believe that the constraint implies there can be only one independent variable. So, if a derivative with respect to b is expected, then the functional dependencies are w(b, phi(b)) =  W1(b) and the derivative with respect to b would be obtained via

diff(w,b)+diff(w,phi)*implicitdiff(f,phi,b) (using Maple's implicitdiff command).

When I calculate d_W1/db this way, and replace phi with phi(b,x,r) from the constrant, I obtain the same result as Rouben did by eliminating phi immediately.

If a derivative with respect to phi is expected, the the functional dependencies are w(b(phi),phi) = W2(phi) and the derivative with respect to phi would be obtained via


When I calculate d_W2/d_phi by this recipe, and replace phi with it's equivalent, I do not get the second result that Rouben obtained. I suspect that w(x,b,r,phi(x,b,r)) does not lead to the correct derivative with respect to phi, given that r is assumed to be a parameter and that b is the other independent variable.

I looked at this problem because it appeared to be one of the more challenging ones of the type that appear in Advanced Calculus textbooks where the intricacies of the chain rule for partial derivatives are expounded. (The issue of determining the independent variables seems to be important here.) If my interpretation is flawed, I would be pleased to be enlightened.



Maple's pdsolve command can only solve such a BVP with just one edge carrying a nonhomogeneous BC. So, break this problem into a sum of problems, each with just one edge carrying a nonhomogeneous BC. Then add the resulting solutions. Let q be Laplace's equation. Since the left edge already has a homogeneous BC, there are just three subproblems to solve. The first and third of the following return infinite series; the second one returns a closed-form expression.

pdsolve({q, u(0, y) = 0, u(Pi, y) = sinh(Pi)*cos(y), u(x, 0) = 0, u(x, Pi) = 0})

pdsolve({q, u(0, y) = 0, u(Pi, y) = 0, u(x, 0) = sin(x), u(x, Pi) = 0})

pdsolve({q, u(0, y) = 0, u(Pi, y) = 0, u(x, 0) = sin(0), u(x, Pi) = -sinh(x)})




The given equation is quadratic in x, so for k not 7, there are two distinct solutions. The first one Maple returned is equivalent to the one you declared to be "correct."

Under the radical, bring the minus sign into the parentheses and split the radical into sqrt(k)*sqrt(7-k). The sqrt(k) out front combines with the k in the denominator to give sqrt(k) in the denominator. Then the sqrt(7-k) in the numerator combines with the sqrt(k) in the denominator to give the form declared to be "correct."


Of course, some of these manipulations require that k be positive. That's why Maple returned the form it did, a form that would be valid for any k, even a complex number.

Have you tried the Import Data Assistant available via the Tools menu?

The easiest way to graph vectors is via the PlotVectors command in either of the VectorCalculus packages.

VectorCalculus:-PlotVector([`<1, 0, 0)>,<0, 1, 0>,<0, 0, 1>], color = [black, red, green]);

Notice how this command maps colors onto the list of vectors.


It looks like you are calculating arc length in polar coordinates, but without knowing rho(theta), we can't experiment with the integral. Apparently, LL is discontinuous. Try either an indefinite integral, or make assumptions on phi to obtain correct expressions between the discontinuities.

I've seen something like this come up when constructing involutes of a plane curve. (The unwinding of a string wrapped around the curve requires computation of arc length. Some curves need a strictly increasing arc-length function; for others, a discontinuous one!)

Try GivensRotationMatrix(Column(A,1),1,2). This yields the Givens rotation matrix that you expected.

The notation A[1] returns the first row, not the first column of A.

RJL Maplesoft

The Student Calculus1 package has a SecondDerivativeTest command, and there is also a Task Template in the Differential Calculus section (see Tools-Browse etc.) that implements this command in a more-or-less syntax-free way. Of course, the issues you raise about the code you wrote are certainly valid, but I did want to point out the existence of these built-in functionalities.

If you want to encase the transaction "enter 3 and press the Enter key" in a section, select the two execution groups and (a) in the Insert menu, select the very last option, namely, "Section" or use the keyboard shortcut Ctrl+period; or (b), in the toolbar, use the third icon to the right of the large "T".

If you want to insert an Execution Group above the line in which you entered the "3", place your cursor in that line and (a) select the option "Execution Group" in the Insert menu; or (b) press Ctrl+k. Then insert a section.

Help on the worksheet mode is available by executing the command ?worksheet. This brings you to the help page internally tracked by the full name worksheet,documenting,WorksheetMode (Worksheet).

Next time, don't spend 3 hours looking for information like this. Ask on this forum - users here with years of Maple experience know these things intuitively, even if they can't recall how they learned them.

simplify(prod) assuming ang>0, etc.

The product is a large expression containing csgn (complex sign of), a sure indication that Maple cannot determine appropriate signs in front of some terms. 

In the VectorCalculus packages, the two commands you want are PositionVector and PlotPositionVector. The first is used to define the surface as a two-parameter family of points. The second will draw the surface and any VectorFields defined via the VectorField command. The vectors drawn eminate from the surface, and I think that's what you wanted. Check the help pages for these commands to see how to put it all together.

p1 := plot(x, x = 0 .. 1);
p2 := plot(x^2, x = 0 .. 1);
plots:-display([p1, p2], legend = [a, b])

This works in Maple 2018, so in which version of Maple does this fail?

A multiple integral set with a single call to Int requires the ranges to be enclosed in list brackets. Thus, the "r" in


 will not be factored out.

The video you want to watch is


The part you want to see starts at about 22 minutes 30 seconds.

For functions of a single variable, the ideal notation for evaluating a derivative at x=c is f'(c). The parallel to this notation in several variables is the subscript notation, but a subscript cannot be an operator in Maple. Thus, f_sub_x(a,b) can only be made to work by the device illustrated in the Clickable Calculus video.

Let XXX stand for the mixed partial operator template in the Calculus palette.

In essence, the symbol f_sub_x is converted to an Atomic Variable, and then f_sub_x(x,y)=XXXf(x,y) is defined as a function, most easily done with the Context Panel's Assign Function option. When requesting that a partial derivative be calculated with this notation, again make f_sub_x an Atomic Variable and write f_sub_x(a,b)  and probably Control= to get inline evaluation and display.

I tried the OP's example with f_sub_xy (no spaces or commas) and it works correctly.

I have not been able to devise a better way in the more-than-ten years of searching that I've gone through for this notation.

plot(lhs(eq),x=0..100,-1..1) draws a graph where nearly vertical line segments cross the x-axis at the x-intercepts.

Using this information, apply the fsolve command.

fsolve(eq,x=20..30); get 22.37...

fsolve(eq,x=50..60); get 50.405...


3 4 5 6 7 8 9 Last Page 5 of 25