## 2453 Reputation

14 years, 289 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.

## Here's how it was done...

The code for the animation resides in the button Animation 2. Unfortunately, if you are viewing the example on the web site, you can't access the code. Here's the essence of the code:

with(plots):
with(plottools):
with(VectorCalculus):
q := plot(x^2, x = 0 .. 1, filled = true):
F := transform((x,y)->[x,0,y]):
Q := plots:-display(F(q)):
V := RootedVector(root=[2,0,0],[0,0,1]):
A := PlotVector(V,color=black):
p := display([seq(rotate(Q, (2*Pi*(1/30))*k, [[2, 0, 0], [2, 0, 1]]), k = 0 .. 30)], insequence = true):
spin := display([A, p]):

p4 := translate(animate(plot3d,[[r,t,(r-2)^2],r=1..2,t=-Pi..x,coords=cylindrical,filled],x=-Pi..Pi, paraminfo=false,frames=31),2,0,0):
display([p4,spin],labels=[x,z,y],tickmarks=[4,[0],2], orientation=[-55,70], axes=frame,scaling=constrained);

The variable q contains a graph of the region to be rotated, but it lies in the xy-plane.

The function F changes the plot data structure q so that the y-height becomes the z-height, and the y-coordinate is set to zero.

Q is then the plot data structure for the transformed region q.

V  is the arrow used to represent the axis of rotation.

A is a graph of the arrow V.

The animation of the rotation of Q about V is given the name p. This animation has 31 frames, each of which is obtained by applying the rotate command to the image in Q.

When the animation p is joined to A, the graph of the arrow V, it is called "spin".

The animation p4 uses cylindrical coordinates to draw the ever-expanding surface of the solid of revolution. However, this animation has to be translated so its vertical axis coincides with the vector V. This is done with the translate command.

The final display joins the animation p4 with the animation "spin". The result is the given region rotated about the axis x=2, dragging along the surface of revolution generated as the region rotates.

This is not the most efficient code, and a worksheet containing all these frames is slow to load. The animation generated by Carl Love's code is less resource-intensive.

RJL Maplesoft

## ODE Analyzer Assistant?...

Perhaps the reference is to the ODE Analyzer Assistant, an interactive assistant that can be accessed from the Tools/Assistants menu, or via the command dsolve[interactive]().

Of course, the argument to this command could be the ODE, in which case the Assistant launches with the ODE already in it. Alternatively, first write the ODE, then use the Context Menu option Solve DE Interactively, to launch the Assistant with the ODE already in it.

In either case, this Assistant has been part of Maple for a number of releases, including Maple 17

RJL Maplesoft

## The normal field has direction of the pr...

In the PlotPositionVector command, the option "normal" plots the normal field in the direction of the principal normal, which, in the example given, is towards the center of curvature. There is no control within this command on the direction of this field, so, create the principal normal field, negate it, and add it to the PlotPositionVector command as a vectorfield option. The whole calculation would be something like

with(Student[VectorCalculus]):
R1:=PositionVector([p,p^2],polar[r,t]);
N:=PrincipalNormal(R1,normalized);
NN:=VectorField(ConvertVector(N,free));
PlotPositionVector(R1,p=1..2,vectorfield=-NN,points=[1.5]);

RJL Maplesoft

## 2D math and Context Menu...

In Document mode, using 2D math, type f(x)=2x, then use the Context Menu option "Assign Function".

The function f will be assigned, no pop-ups, no need to make setting changes, no syntax issues.

RJL Maplesoft

## Look at the Tangent Line task template...

Calculus-Differential->Applications->Tangent Line

This tools will detail the calculation of the tangent line, and also draw a graph of the function and its tangent line.

RJL Maplesoft

## print~...

S:=[A,B,C];

print~(S)[];

The empty list at the end of the print~ command suppresses the printing of an empty list at the end of the print job.

RJL Maplesoft

## This might be the best possible...

Use colors and the legend option to distinguish different curves. For example,

plot([x,x^2],x=0..1,color=[black,red],legend=[typeset(x),typeset(x^2)]);

RJL Maplesoft

## There appears to be a solution...

For each value of b>0 the first three boundary conditions can be satisfied. Write a procedure that takes in a value for b, and returns the solution f(b) that satisfies the ODE and the first 3 boundary conditions. Then, find b for which the last condition is satisfied.

Here's the code I put together to see if this problem has a solution.

Eq:= diff(f(y),y\$3)+f(y)*diff(f(y),y\$2)-diff(f(y),y\$1)^2-(diff(f(y),y\$1)+y/2*diff(f(y),y\$2))=0;

R:=proc(b)

local bc,Q,F;

bc:=D(f)(0)=1,f(0)=0,(D@@2)(f)(b)=0;

Q:=dsolve({Eq,bc},f(y),numeric,output=listprocedure);

F:=rhs(Q[2]);

F(b);

end:

C:=x->x/2;

plot([R,C],.1..2);

The graphs of C and R intersect near b=1.5. I leave it to you to figure out how to solve the equation C(b)=R(b) numerically.

RJL Maplesoft

## There are simpler tools for this...

Since the feasible region is determined by linear inequalities, you can use the Linear Inequalities tutor in the Student Precalculus package. Simply access it through the Tools/Tutors/Precalculus menu. It launches with six default inequalities. Change the first four to the inequalities in your system, and uncheck the checkboxes for the last two.

At the bottom of the tutor the underlying command is displayed. It can be copied and pasted into a worksheet for modification/execution. The underlying command is "inequal" in the plots package.

Here's one version of the command after modifying the size of the bounding box and the colors. I think the labeldirections option can be deleted.

plots[inequal]({0 < x, 0 < y, x < 1, y < 1-x}, x = 0 .. 1, y = 0 .. 1, 'optionsexcluded' = ['color' = red], 'optionsfeasible' = ['color' = green], 'labels' = [x, y], 'labeldirections' = [HORIZONTAL, HORIZONTAL], 'axes' = NORMAL, 'scaling' = unconstrained)

Finally, here's a version of the implicitplot command that will also draw the feasible region.

plots:-implicitplot([x >= 0, x <= 1, y >= 0, y <= 1-x], x = 0 .. 1, y = 0 .. 1-x, filledregions = true)

RJL Maplesoft

## Clickable Calculus solution...

Look at the recorded solution here:

http://www.maplesoft.com/teachingconcepts/detail.aspx?cid=9

RJL Maplesoft

## Try drawing a graph...

Faced with the same question, I'd draw a graph to get some visual clues as to the behavior of the expression to the right y=...

After looking at the graph, I decided I'd check the limits as x -> infinity and -infinity. Once I had done that, I'd then match the observed behavior to the expression itself, analytically. For instance, the domain appears to be disjoint, and I'd examine the expression to understand exactly why this occurs.

RJL

## Are you typing in text or math?...

There are two modes of data entry in a Maple document. You can type in text mode or math mode. To toggle between the two modes, use function key F5, or the Text/Math buttons at the upper left of the toolbar.

In Text mode, everything typed is in the default font, which is non-italic. In Math mode, everything typed is in 2D math. So, it the issue is that you are typing text, set the mode to text and the cursor will be upright with no dotted rectangle around it. If you switch to Math mode, then the cursor will tilt and be surrounded with the dotted rectangle, and what's typed will be interpreted as mathematical notation.

## The surd command...

Maple represents the real n-th root of x as surd(x,n), where n is a positive integer.

Graph surd(x,3) from 1- to 1 to see the "whole" curve.

Similarly, surd(8,3) immediately returns 2.

Finally, note that convert(x^(1/3),surd) returns surd(x,3) which is displayed with a radical sign, but is internally represented by the surd construction.

## Another method?...

Try the following:

plots:-implicitplot([f(x,y,c),g(x,y,c),c],x=a..b,y=C..d);

where a,b,C,d are apropriate numbers. This command draws the curve y(x) parametrically. Might just work. (Your intimation that f and g are degree-16 polynomials is scary. I don't know how well Maple will do with such expressions.)

The implicitplot command takes options that help smooth out the curve. One I frequently use is gridrefine=n, where n is a positive integer.

## Try the Dragilev method?...

The worksheet at the end of the link

http://www.maplesoft.com/applications/view.aspx?SID=149514

details the Dragilev method for obtaining a numeric solution to a system such as yours. The worksheet is a Tips & Techniques article that appeared in the July Maple Reporter, and is stored in the Maple Application Center.