 Application Center - Maplesoft

# Lesson 9: Application: Orthogonal Trajectories

You can switch back to the summary page by clicking here.

Lesson09.mw

ORDINARY DIFFERENTIAL EQUATIONS POWERTOOL

Lesson 9 -- Application: Orthogonal Trajectories

Columbia, SC 29208

-------------------------------------------------------------------

 >

Outline of Lesson 9

9.A Trajectories Orthogonal to a Family of Circles

 >

Initialization

 > restart;

 > with( DEtools ):

 > with( plots ):

Warning, the name changecoords has been redefined

 >

9.A Trajectories Orthogonal to a Family of Circles

Two curves and that intersect at are orthogonal at if the tangents to each curve are perpendicular at .  Thus, the condition is necessary and sufficient for the two curves to be orthogonal at .  This condition says nothing more than that the slopes are negative reciprocals of each other at .

Two families of curves defined implicitly by and are orthogonal if any member of one family that intersects a curve of the other family, does so at right angles.  To understand what it means for two families of curves to be orthogonal, consider the following example.

The family of circles centered at ( , 0) with radius can be described as , or with

 > F := unapply( simplify( (x-c)^2+y^2-c^2 ), (x,y) ): 'F'(x,y) = F(x,y); >

Representative examples of this family of curves are seen in Figure 9.1.

 > plotF := C -> implicitplot( eval(F(x,y),c=C), x=-20..20, y=-10..10, scaling=constrained, grid=[60,60] ): p1 := display( seq( plotF(c), c=-9..9) ): display(p1, title="Figure 9.1"); >

To find the family of curves orthogonal to this family of circles, obtain the derivative for any curve of the family, expressed in a form independent of the parameter .  The derivative of a member of the family can be obtained by implicit differentiation of the equation The result of implicit differentiation is

 > diff_F := diff( F(x,y(x))=0, x ); >

and the derivative is

 > diff_with_c := simplify(isolate(diff_F, diff(y(x),x))); >

Unfortunately, this expression for the derivative contains the parameter .  That makes the expression dependent on the particular curve that selects from the family.  The desired expression for the derivative must be independent of this parameter.  Hence, eliminate by use of the equation .  Either solve for and substitute, or use

 > q := eliminate({F(x,y(x)),diff_with_c},c); >

The desired expression is implicitly contained in

 > q1 := q= 0; >

This equation can be solved for and the negative reciprocal obtained, or the derivative can be replace with to produce the differential equation of the orthogonal family.  The second approach gives the ODE

 > q2 := eval(q1, diff(y(x),x) = -1/diff(y(x),x)); >

The solution of this equation is

 > q3 := dsolve(q2, y(x), implicit); >

Combining the logarithms and exponentiating leads to

 > q4 := simplify(map(exp,combine(q3,ln,anything,symbolic))); >

Change the constant of integration to a simpler name to obtain

 > q5 := eval(q4, exp(-_C1)=2*a); >

Either multiply through by the denominator, or bring all terms to the left, add fractions, and select the numerator of the resulting expression on the left.  This would be

 > q6 := -numer(normal(lhs(q5)-rhs(q5))) = 0; >

To obtain a graph of members of this new family, use the same technique that produced Figure 9.1.  Begin by making the left side into the function .

 > G := unapply(eval(lhs(q6), y(x)=y),(x,y)): 'G'(x,y) = G(x,y); >

Then, Figure 9.2 contains members of the family orthogonal to the family described by the equation .

 > plotG := C -> implicitplot( eval(G(x,y),a=C), x=-20..20, y=-20..20, scaling=constrained, grid=[60,60], color=blue ): p2 := display( seq( plotG(a), a=-9..9) ): display(p2, title="Figure 9.2"); >

Figure 9.3 superimposes the curves of the two families.

 > display([p1,p2], title="Figure 9.3"); >