2448 Reputation

11 Badges

14 years, 170 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

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...






This approach sets up and solves three equations in the three unknowns k, s, t.  Perhaps a bit more intuitive?


I think the error message indicates that you used y, not y(x) (or the equivalents) in your ODE. All instances of the dependent variable should occur with the independent variable included.

Typeset math allows the use of just the name of the dependent variable, but even there, one can get into difficulties cutting corners.

Consider the following commands.

interface(rtablesize=100): # so large matrices are fully displayed

q:=plots:-implicitplot(eqn,t=-50..50,y=-200..200): # hyperbola, so there are two branches

Q[1][3]  # data Maple used for first branch

Q[2][3]  # data Maple used for second branch

Alternatively, you could solve for y explicitly. There would be two branches, y1(t) and y2(t). Then, you could evaluate y1 and y2 at any values of t that you found convenient, and the corresponding values of y would be determined.

First, maple sees the symbol u as a name, not as a function. If u is to be a function of x, y, and z, then you need to enter it as u(x,y,z) to obtain the functional dependence you claim.

Then, the name on the left, u__0, which will look like a subscripted u, needs to be followed by an assignment operator, not merely an = sign. The = sign is used to form equations, Use := (colon equal) as the assignment operator.

Third, if you can apply diff to u__0, but display only an = sign in your post, but yet claim that Maple produced derivatives of some of the terms on the right, then you did more in your worksheet than you reported here. If, indeed, you did what you reported here, then applying diff to u__0 would result in zero because u__0 would not stand for the expression on the right of your = sign. It wouldn't be assigned anything.

In the future, it would be better to upload the whole worksheet via the green arrow in the toolbar at the top of the posting window. Then, we could see exactly what it is that you did, and not have to guess.

Not sure if you want to compute with the result or merely display it. I think you might have trouble trying to compute with it.

Maple's differentiation operators assume that the order of partial differentiation is immaterial, which is mathematically the case for funtions that are sufficiently differentiable. So, even if you could assemble the operator and apply it, Maple's treatment of differentiation might not respect the order you are trying to impose.

For example, (D[]1,2]*D[2,1])(f(x,y)) = D[1,2](f(x,y))^2

However, I'm not sure this is the last word on the matter. If someone else has a way to do this, I'd be pleased to know.

Maple uses the Variation of Parameters formula to obtain the particular solution. The integrals in this formula can, and do often, return terms that are in the fundamental set of solutions, that is, are homogeneous solutions. There is, as far as I know, no way to filter these out. This has plagued me since I started using Maple in my DE classes as early as 1989. If there is a way to filter these terms from the particular solution, I think we would both like to know.

The best I can suggest is a collect on the general solution, collecting with respect to sin(2*t) (here).

Does anyone have a better solution?

1 2 3 4 5 6 7 Last Page 2 of 22