Lesson09.mw
ORDINARY DIFFERENTIAL EQUATIONS POWERTOOL
Lesson 9 -- Application: Orthogonal Trajectories
Prof. Douglas B. Meade
Industrial Mathematics Institute
Department of Mathematics
University of South Carolina
Columbia, SC 29208
URL: http://www.math.sc.edu/~meade/
E-mail: meade@math.sc.edu
Copyright 2001 by Douglas B. Meade
All rights reserved
-------------------------------------------------------------------
Outline of Lesson 9
9.A Trajectories Orthogonal to a Family of Circles
Initialization
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
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"); |
[Back to ODE Powertool Table of Contents]