<?xml version="1.0" encoding="UTF-8"?>
<Worksheet><Version major="6" minor="1"/><View-Properties><Hide name="Section Range"/><Hide name="Group Range"/><Zoom percentage="100"/></View-Properties><Styles><Layout alignment="left" firstindent="0.0" name="Heading 2" spaceabove="4.0" spacebelow="4.0"/><Layout alignment="left" firstindent="0.0" name="Heading 1" spaceabove="6.0" spacebelow="6.0"/><Layout alignment="centred" name="_pstyle321"/><Layout alignment="centred" name="_pstyle320"/><Layout name="Normal"/><Layout alignment="centred" name="_pstyle287"/><Layout alignment="centred" name="_pstyle286"/><Layout alignment="centred" name="_pstyle285"/><Layout alignment="centred" name="_pstyle284"/><Layout alignment="centred" name="_pstyle283"/><Layout alignment="centred" name="_pstyle282"/><Layout alignment="centred" name="_pstyle281"/><Layout alignment="centred" name="_pstyle280"/><Layout name="_pstyle319"/><Layout alignment="centred" name="_pstyle318"/><Layout alignment="centred" name="_pstyle317"/><Layout alignment="centred" name="_pstyle316"/><Layout alignment="centred" name="_pstyle315"/><Layout alignment="centred" name="_pstyle314"/><Layout alignment="centred" name="_pstyle313"/><Layout alignment="centred" name="_pstyle312"/><Layout alignment="centred" name="_pstyle311"/><Layout alignment="centred" name="_pstyle310"/><Layout alignment="centred" name="_pstyle279"/><Layout alignment="centred" name="_pstyle278"/><Layout alignment="centred" name="_pstyle277"/><Layout alignment="centred" name="Author" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" name="_pstyle276"/><Layout alignment="centred" name="_pstyle275"/><Layout alignment="centred" name="_pstyle274"/><Layout alignment="centred" name="_pstyle273"/><Layout alignment="centred" name="_pstyle272"/><Layout name="_pstyle271"/><Layout alignment="centred" name="_pstyle309"/><Layout alignment="centred" name="_pstyle308"/><Layout alignment="centred" name="_pstyle307"/><Layout alignment="centred" name="_pstyle306"/><Layout alignment="centred" name="_pstyle305"/><Layout alignment="centred" name="_pstyle304"/><Layout alignment="centred" name="_pstyle303"/><Layout bullet="dash" name="Dash Item" spaceabove="3.0" spacebelow="3.0"/><Layout alignment="centred" name="_pstyle302"/><Layout alignment="centred" name="_pstyle301"/><Layout alignment="centred" name="_pstyle300"/><Layout alignment="centred" name="Title" spaceabove="12.0" spacebelow="12.0"/><Layout alignment="centred" name="_pstyle299"/><Layout alignment="centred" name="_pstyle298"/><Font background="[0,0,0]" bold="true" family="Arial" italic="false" name="Heading 2" size="14" underline="false"/><Font background="[0,0,0]" bold="true" family="Arial" italic="false" name="Heading 1" size="18" underline="false"/><Font background="[0,0,0]" bold="true" executable="true" family="Monospaced" foreground="[255,0,0]" name="Maple Input"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle321" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle283"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle320" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="Page Number" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle281"/><Font background="[0,0,0]" italic="true" name="_cstyle280"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="Normal" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle287" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle286" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle285" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Text" opaque="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle284" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle283" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle282" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle281" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle280" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Times New Roman" italic="false" name="_pstyle319" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle318" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle317" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="_cstyle279"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle316" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="_cstyle278"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle315" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="_cstyle277"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle314" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="_cstyle276"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle313" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle275"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle312" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle274"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle311" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle273"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle310" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle272"/><Font background="[0,0,0]" italic="true" name="_cstyle271"/><Font background="[0,0,0]" italic="true" name="_cstyle270"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle279" size="12" underline="false"/><Font background="[0,0,0]" executable="false" family="Times New Roman" foreground="[0,0,0]" name="2D Math" opaque="false" size="12"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle278" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle277" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="Author" size="12" underline="false"/><Font background="[0,0,0]" foreground="[0,128,128]" italic="false" name="Hyperlink" underline="true"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle276" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle275" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle274" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle273" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle272" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" foreground="[255,0,0]" name="2D Input" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle271" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle309" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle308" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle307" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle269"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle306" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle268"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle305" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle267"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle304" size="12" underline="false"/><Font background="[0,0,0]" italic="true" name="_cstyle266"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle303" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="Dash Item" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle302" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle301" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle300" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="_cstyle257"/><Font background="[0,0,0]" family="Times New Roman" name="2D Comment" underline="false"/><Font background="[0,0,0]" bold="true" family="Arial" italic="false" name="Title" size="18" underline="true"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle299" size="12" underline="false"/><Font background="[0,0,0]" bold="false" family="Arial" italic="false" name="_pstyle298" size="12" underline="false"/></Styles><Page-Numbers enabled="false" first-number="1" first-numbered-page="1" horizontal-location="right" style="Page Number" vertical-location="bottom"/><Group><Input><Text-field layout="Title" style="Title">The Shooting Method for the Solution</Text-field><Text-field layout="Title" style="Title">of Two-Point Boundary Value Problems</Text-field><Text-field layout="Author" style="Author">Douglas B. Meade</Text-field><Text-field layout="Author" style="Author">Department of Mathematics</Text-field><Text-field layout="Author" style="Author">University of South Carolina</Text-field><Text-field layout="Author" style="Author">Columbia, SC 29208, USA;</Text-field><Text-field layout="Author" style="Author">E-mail: <Hyperlink bold="false" family="Arial" hyperlink="true" linktarget="mailto:meade@math.sc.edu" size="12" style="Hyperlink">meade@math.sc.edu</Hyperlink> </Text-field><Text-field layout="Author" style="Author">WWW URL:  <Hyperlink bold="false" family="Arial" hyperlink="true" linktarget="http://www.math.sc.edu/~meade/" size="12" style="Hyperlink">http://www.math.sc.edu/~meade/</Hyperlink><Font bold="false" italic="false" size="12" style="_cstyle257" underline="false"> </Font></Text-field><Text-field layout="Author" style="Author"/><Text-field layout="Author" style="Author">Copyright 2004: Douglas B. Meade</Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Introduction</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">One of the strengths of Maple is its ability to provide a wide variety of information about solutions to differential equations.  Explicit, implicit, parametric, series, Laplace transform, numerical, and graphical solutions can all be obtained via the  <Font bold="false" italic="false" size="12" style="2D Input">dsolve</Font>  command.  Numerical solutions are of particular interest due to the fact that exact solutions do not exist, in closed form, for most engineering and scientific applications. The numerical solution methods available within <Font bold="false" italic="false" size="12" style="2D Input">dsolve</Font> are applicable only to  <Font bold="false" family="Arial" size="12" style="_cstyle266" underline="false">initial value problems</Font>.  Thus, at first glance, Maple appears to be very limited in its ability to analyze the multitude of two-point boundary value problems that occur frequently in engineering analysis.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">A commonly used numerical method for the solution of two-point boundary value problems is the  <Font bold="false" family="Arial" size="12" style="_cstyle267" underline="false">shooting method</Font>.  This well-known technique is an iterative algorithm which attempts to identify appropriate initial conditions for a related initial value problem (IVP) that provides the solution to the original boundary value problem (BVP).</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The first objective of this paper is to describe the shooting method and its Maple implementation,  <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>.  Then,  <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>  is used to analyze some common two-point BVPs from chemical engineering:</Text-field></Input></Group><Group><Input><Text-field layout="Dash Item" style="Dash Item">the Blasius solution for laminar boundary-layer flow past a flat plate,</Text-field><Text-field layout="Dash Item" style="Dash Item">the reactivity behavior of porous catalyst particles subject to both internal mass concentration gradients and temperature gradients, and</Text-field><Text-field layout="Dash Item" style="Dash Item">the steady-state flow near an infinite rotating disk.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 2" style="Heading 2">Acknowledgement</Text-field></Title><Group><Input><Text-field layout="Normal" style="Text"><Font family="Arial">This worksheet was originally published in the Maple Technical Newsletter. The citation for that article is:</Font></Text-field><Text-field layout="Normal" style="Text"><Font family="Arial">	Douglas B. Meade, Bala S. Haran, and Ralph E. White, <Font italic="true">The shooting technique for</Font></Font></Text-field><Text-field layout="Normal" style="Text"><Font family="Arial" italic="true">	the solution of two-point boundary value problems</Font><Font family="Arial">, MapleTech, <Font bold="true">3</Font>(1) 1996, pp. 85-93.</Font></Text-field><Text-field layout="Normal" style="Text"><Font family="Arial">While the applications are description of the problems is nearly the same as in the original paper, the Shoot package has been almost completely rewritten and updated for Maple 9.5.</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">This worksheet, and <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>, were originally created in Maple V Release 3.  The update to Release 5, and Maple 6, has required a complete reimplementation of <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>.  The worksheet, for Maple 9.5, is also significantly modified in some places.  However, the content and functionality are as close as possible to that of the original.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Please let me know if you have any problems or questions. I also would like to hear about any successes that you have using <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Thank you!</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Douglas B. Meade</Text-field><Text-field layout="_pstyle319" style="_pstyle319"><Hyperlink bold="false" family="Times New Roman" hyperlink="true" linktarget="mailto:meade@math.sc.edu" size="12" style="Hyperlink">meade@math.sc.edu</Hyperlink> </Text-field><Text-field layout="_pstyle319" style="_pstyle319">December 2004</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Initialization</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">restart;</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ShootLib := "C:\\Documents and Settings/DMeade/Desktop/Shoot9/":</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">libname := ShootLib, libname:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">with( Shoot );</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">with( plots ):</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">A Maple Implementation of the Simple Shooting Method</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">The basic idea of the shooting method for two-point boundary value problems is to reformulate the problem as a nonlinear parameter estimation problem. The new problem requires the solution of a related initial value problem (IVP) with initial conditions chosen to approximate the boundary conditions at the other endpoint.  If these boundary conditions are not satisfied to the desired accuracy, the process is repeated with a new set of initial conditions until the desired accuracy is achieved or an iteration limit is reached.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">To be more specific, consider the two-point BVP for a coupled system of  <Equation input-equation="n" style="2D Comment">NiMlIm5H</Equation>  first-order ODEs</Text-field></Input></Group><Group><Input><Text-field layout="_pstyle272" style="_pstyle272">         <Equation input-equation="diff(y(t),t) = f(t,y(t));" style="2D Comment">NiMvLSUlZGlmZkc2JC0lInlHNiMlInRHRiotJSJmRzYkRipGJw==</Equation></Text-field><Text-field layout="_pstyle273" style="_pstyle273">                                                         <Equation input-equation="y[i](a) = alpha[i]" style="2D Comment">NiMvLSYlInlHNiMlImlHNiMlImFHJiUmYWxwaGFHRic=</Equation> ,  <Equation input-equation="i=1..m[1]" style="2D Comment">NiMvJSJpRzsiIiImJSJtRzYjRiY=</Equation>                                    (1)</Text-field><Text-field layout="_pstyle274" style="_pstyle274">                 <Equation input-equation="y[m[1]+j](b) = beta[j];" style="2D Comment">NiMvLSYlInlHNiMsJiYlIm1HNiMiIiJGLCUiakdGLDYjJSJiRyYlJWJldGFHNiNGLQ==</Equation> ,  <Equation input-equation="j=1..m[2]" style="2D Comment">NiMvJSJqRzsiIiImJSJtRzYjIiIj</Equation>       </Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The vector <Equation input-equation="y" style="2D Comment">NiMlInlH</Equation> contains the <Equation input-equation="n" style="2D Comment">NiMlIm5H</Equation> unknown functions of the independent variable <Equation input-equation="t" style="2D Comment">NiMlInRH</Equation>.  The unknown functions are ordered so that the first <Equation input-equation="m[1]" style="2D Comment">NiMmJSJtRzYjIiIi</Equation> (0&lt;<Equation input-equation="m[1]" style="2D Comment">NiMmJSJtRzYjIiIi</Equation>&lt;<Equation input-equation="n" style="2D Comment">NiMlIm5H</Equation>) components of <Equation input-equation="y" style="2D Comment">NiMlInlH</Equation> have boundary conditions at <Equation input-equation="t=a" style="2D Comment">NiMvJSJ0RyUiYUc=</Equation>.  The remaining <Equation input-equation="m[2]" style="2D Comment">NiMmJSJtRzYjIiIj</Equation> := <Equation input-equation="n-m[1]" style="2D Comment">NiMsJiUibkciIiImJSJtRzYjRiUhIiI=</Equation> components of the solution have boundary conditions specified at a second point, <Equation input-equation="t=b" style="2D Comment">NiMvJSJ0RyUiYkc=</Equation>. The Maple procedure  <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>  supports nonlinear boundary conditions at <Equation input-equation="t=b" style="2D Comment">NiMvJSJ0RyUiYkc=</Equation>. In particular, <Equation input-equation="`(1)`[2]" style="2D Comment">NiMmSSQoMSlHNiI2IyIiIw==</Equation>  and <Equation input-equation="`(1)`[3]" style="2D Math">NiMmSSQoMSlHNiI2IyIiJA==</Equation>  can be replaced with <Equation input-equation="r[i](y(a)) = 0" style="2D Math">NiMvLSZJInJHNiI2I0kiaUdGJzYjLUkieUdGJzYjSSJhR0YnIiIh</Equation> and  <Equation input-equation="r[j](y(b))=0" style="2D Comment">NiMvLSYlInJHNiMlImpHNiMtJSJ5RzYjJSJiRyIiIQ==</Equation>,  where each <Equation input-equation="r" style="2D Math">NiNJInJHNiI=</Equation> is a differentiable function of <Equation input-equation="n" style="2D Math">NiNJIm5HNiI=</Equation> variables. The examples discussed in this paper all use <Equation input-equation="r[j](y(b)) " style="2D Comment">NiMtJiUickc2IyUiakc2Iy0lInlHNiMlImJH</Equation> := <Equation input-equation="y[m[1]+j](b)-beta[j]" style="2D Comment">NiMsJi0mJSJ5RzYjLCYmJSJtRzYjIiIiRiwlImpHRiw2IyUiYkdGLCYlJWJldGFHNiNGLSEiIg==</Equation>.  (Note that if <Equation input-equation="m[2]=0" style="2D Comment">NiMvJiUibUc2IyIiIyIiIQ==</Equation>, then <Equation input-equation="`(1)`" style="2D Math">NiNJJCgxKUc2Ig==</Equation> is an initial value problem.)</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The shooting method seeks to identify a vector of parameters <Equation input-equation="s" style="2D Comment">NiMlInNH</Equation> in <Equation input-equation="R^m[2] " style="2D Comment">NiMpJSJSRyYlIm1HNiMiIiM=</Equation>so that the solution, denoted by <Equation input-equation="y(t,s)" style="2D Comment">NiMtJSJ5RzYkJSJ0RyUic0c=</Equation>, to the initial value problem</Text-field><Text-field layout="_pstyle277" style="_pstyle277">      <Equation input-equation="diff(y,t) = f(t,y(t,s)) " style="2D Comment">NiMvLSUlZGlmZkc2JCUieUclInRHLSUiZkc2JEYoLUYnNiRGKCUic0c=</Equation>  </Text-field><Text-field layout="_pstyle278" style="_pstyle278">                                                          <Equation input-equation="y[i](a,s) = alpha[i]" style="2D Comment">NiMvLSYlInlHNiMlImlHNiQlImFHJSJzRyYlJmFscGhhR0Yn</Equation> ,   <Equation input-equation="i = 1 .. m[1]" style="2D Comment">NiMvJSJpRzsiIiImJSJtRzYjRiY=</Equation>                                       (2)       </Text-field><Text-field layout="_pstyle279" style="_pstyle279">  <Equation input-equation="y[m[1]+j](a,s) = s[j]" style="2D Comment">NiMvLSYlInlHNiMsJiYlIm1HNiMiIiJGLCUiakdGLDYkJSJhRyUic0cmRjA2I0Yt</Equation> ,    <Equation input-equation="j = 1 .. m[2]" style="2D Comment">NiMvJSJqRzsiIiImJSJtRzYjIiIj</Equation></Text-field><Text-field layout="Normal" style="Normal">agrees with the solution to (1). Note that (2) is simply (1) with the boundary conditions at <Equation input-equation="t=b" style="2D Comment">NiMvJSJ0RyUiYkc=</Equation> replaced with unknown initial conditions at <Equation input-equation="t=a" style="2D Comment">NiMvJSJ0RyUiYUc=</Equation>. To determine the correct initial values, consider the ``objective function'' <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation> with components</Text-field><Text-field layout="_pstyle320" style="_pstyle320">   <Equation input-equation="F[j](s)" style="2D Comment">NiMtJiUiRkc2IyUiakc2IyUic0c=</Equation> := <Equation input-equation="y[m[1]+j](b,s)-beta[j]" style="2D Comment">NiMsJi0mJSJ5RzYjLCYmJSJtRzYjIiIiRiwlImpHRiw2JCUiYkclInNHRiwmJSViZXRhRzYjRi0hIiI=</Equation>,      <Equation input-equation="j=1..m[2]" style="2D Comment">NiMvJSJqRzsiIiImJSJtRzYjIiIj</Equation>   .</Text-field><Text-field layout="Normal" style="Normal">Then (1) is solvable if and only if there exists <Equation input-equation="s" style="2D Comment">NiMlInNH</Equation> in <Equation input-equation="R^m[2]" style="2D Comment">NiMpJSJSRyYlIm1HNiMiIiM=</Equation> so that <Equation input-equation="F(s)=0" style="2D Comment">NiMvLSUiRkc2IyUic0ciIiE=</Equation>.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The success of this process depends primarily on the iterative procedure used to construct a sequence of parameter vectors that converges to a zero of <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation>.  While any numerical root-finding algorithm could be employed for this step, one step of the Newton-Raphson method is most commonly used. That is, given an initial guess <Equation input-equation="s^0" style="2D Comment">NiMqJCUic0ciIiE=</Equation> in <Equation input-equation="R^m[2]" style="2D Comment">NiMpJSJSRyYlIm1HNiMiIiM=</Equation>, define a sequence of initial conditions {<Equation input-equation="s^k" style="2D Comment">NiMpJSJzRyUia0c=</Equation>} by</Text-field><Text-field layout="_pstyle321" style="_pstyle321"> <Equation input-equation="s^(k+1)" style="2D Comment">NiMpJSJzRywmJSJrRyIiIkYnRic=</Equation> := <Equation input-equation="s^k-(JF(s^k))^(-1)*F(s^k)" style="2D Comment">NiMsJiklInNHJSJrRyIiIiomKS0lI0pGRzYjRiQsJEYnISIiRictJSJGR0YsRidGLg==</Equation></Text-field><Text-field layout="Normal" style="Normal">for all <Equation input-equation="k" style="2D Comment">NiMlImtH</Equation> &gt;= 0.  To implement this, note that the vector <Equation input-equation="F(s^k)" style="2D Comment">NiMtJSJGRzYjKSUic0clImtH</Equation> is directly available from the solution of (2), but the Jacobian matrix  <Equation input-equation="JF(s^k)" style="2D Comment">NiMtJSNKRkc2IyklInNHJSJrRw==</Equation> requires the values of <Equation input-equation="diff(y[m[1]+i](b,s^k), s[j])" style="2D Comment">NiMtJSVkaWZmRzYkLSYlInlHNiMsJiYlIm1HNiMiIiJGLiUiaUdGLjYkJSJiRyklInNHJSJrRyZGMzYjJSJqRw==</Equation> for all <Equation input-equation="i,j=1..m[2]" style="2D Comment">NiQlImlHLyUiakc7IiIiJiUibUc2IyIiIw==</Equation>. These values can be obtained by solving the <Equation input-equation="n" style="2D Comment">NiMlIm5H</Equation> IVPs in (2) together with the <Equation input-equation="n*m[2]" style="2D Comment">NiMqJiUibkciIiImJSJtRzYjIiIjRiU=</Equation> sensitivity equations ([2, p. 226], [3, pp. 54--58]):</Text-field><Text-field layout="_pstyle275" style="_pstyle275"><Equation input-equation="diff(diff(y[i](t),s[j]),t)  = diff(f,y[i]) * diff(y[i],s[j])" style="2D Comment">NiMvLSUlZGlmZkc2JC1GJTYkLSYlInlHNiMlImlHNiMlInRHJiUic0c2IyUiakdGLyomLUYlNiQlImZHRioiIiItRiU2JEYqRjBGOA==</Equation>,   <Equation input-equation="i = 1..n" style="2D Comment">NiMvJSJpRzsiIiIlIm5H</Equation>,  <Equation input-equation="j = 1..m[2]" style="2D Comment">NiMvJSJqRzsiIiImJSJtRzYjIiIj</Equation>   </Text-field><Text-field layout="Normal" style="Normal">with corresponding initial conditions</Text-field><Text-field layout="_pstyle276" style="_pstyle276">                                 <Equation input-equation="diff( y[i],s[j]) = 0" style="2D Comment">NiMvLSUlZGlmZkc2JCYlInlHNiMlImlHJiUic0c2IyUiakciIiE=</Equation>  ,      for all <Equation input-equation="i=1..m[1]" style="2D Comment">NiMvJSJpRzsiIiImJSJtRzYjRiY=</Equation>, <Font bold="false" italic="false" size="12" style="2D Comment"> </Font><Equation input-equation="j = 1..m[2]" style="2D Comment">NiMvJSJqRzsiIiImJSJtRzYjIiIj</Equation>               
     <Equation input-equation="diff(y[m[1]+j],s[j]) = delta[i*j]" style="2D Comment">NiMvLSUlZGlmZkc2JCYlInlHNiMsJiYlIm1HNiMiIiJGLiUiakdGLiYlInNHNiNGLyYlJmRlbHRhRzYjKiYlImlHRi5GL0Yu</Equation>,     for all <Equation input-equation="i,j = 1 .. m[2]" style="2D Comment">NiQlImlHLyUiakc7IiIiJiUibUc2IyIiIw==</Equation>         </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The above algorithm is known as the <Font bold="false" family="Arial" size="12" style="_cstyle270" underline="false">simple</Font>, or <Font bold="false" family="Arial" size="12" style="_cstyle269" underline="false">single</Font>, <Font bold="false" family="Arial" size="12" style="_cstyle268" underline="false">shooting method</Font>.  While this method is effective for many problems, there are some problems that are encountered in practice [4].  Assume (1) has a unique solution. There is no guarantee that the initial value problem (2) has a solution on the interval <Equation input-equation="[a,b]" style="2D Math">NiM3JEkiYUc2IkkiYkdGJQ==</Equation> for all <Equation input-equation="s" style="2D Math">NiNJInNHNiI=</Equation> in  <Equation input-equation="R^m[2]" style="2D Comment">NiMpJSJSRyYlIm1HNiMiIiM=</Equation>   . Even if (2) does have a solution on <Equation input-equation="[a,b]" style="2D Math">NiM3JEkiYUc2IkkiYkdGJQ==</Equation> the problem may be stiff.  In such a case the solution at <Equation input-equation="t=b" style="2D Comment">NiMvJSJ0RyUiYkc=</Equation> may be so inaccurate as to make the results of the Newton-Raphson step meaningless.  When the solution at <Equation input-equation="t=b" style="2D Comment">NiMvJSJ0RyUiYkc=</Equation> is known with sufficient accuracy, the local convergence of the Newton-Raphson step may prevent the iterations from converging to a solution of the original boundary value problem (1).  This difficulty can be addressed by replacing the Newton-Raphson step with another iterative solver with improved convergence properties (<Font bold="false" family="Arial" size="12" style="_cstyle271" underline="false">e.g.</Font>, modified Newton's method and Broyden's method).  The <Font bold="false" family="Arial" size="12" style="_cstyle274" underline="false">multiple</Font>, or <Font bold="false" family="Arial" size="12" style="_cstyle273" underline="false">parallel</Font>,<Font bold="false" family="Arial" size="12" style="_cstyle272" underline="false"> shooting method</Font> addresses the other difficulties.  As these problems are generally more pronounced as <Equation input-equation="b-a" style="2D Comment">NiMsJiUiYkciIiIlImFHISIi</Equation> increases, it seems appropriate to consider partitioning the interval into <Equation input-equation="N" style="2D Comment">NiMlIk5H</Equation> subintervals. Then, using compatibility conditions between the subintervals, a well-posed IVP is obtained on each subinterval.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The combination of Maple's symbolic and numerical facilities for manipulating and solving IVPs provide an excellent environment for the translation of the simple shooting method into the Maple programming language.  The syntax for this procedure, called <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>, closely follows the syntax of <Font bold="false" italic="false" size="12" style="2D Input">dsolve</Font>.  In particular, the data structures returned by <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> are identical to the ones returned by <Font bold="false" italic="false" size="12" style="2D Input">dsolve/numeric</Font>.  Thus, all the techniques and tools for manipulating Maple's numerical solutions of differential equations,  <Font bold="false" family="Arial" size="12" style="_cstyle275" underline="false">e.g.</Font> <Font bold="false" italic="false" size="12" style="2D Input">plots[odeplot]</Font>, can be used to interpret the results from <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>.  (For convenience, shoot is stored as a Maple repository (i.e., package).  This repository can be obtained from the author's website at <Hyperlink bold="false" family="Arial" hyperlink="true" linktarget="http://www.math.sc.edu/~meade/maple/Shoot9/Shoot9.zip" size="12" style="Hyperlink">http://www.math.sc.edu/~meade/maple/Shoot9/Shoot9.zip</Hyperlink> .  The source code for <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>, including on-line help documentation, is available upon request from the author.)</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Other numerical methods for the solution of two-point boundary value problems have also been developed on other platforms.  One of the most well-known is the  <Font bold="false" italic="false" size="12" style="_cstyle276" underline="false">fortran</Font> subroutine <Font bold="false" italic="false" size="12" style="_cstyle277" underline="false">COLSYS</Font> [4] (available on the WWW from Netlib).  The numerical method used in this routine is collocation of B-splines at Gaussian points [5].  Finite difference methods can be easily implemented using <Font bold="false" italic="false" size="12" style="_cstyle278" underline="false">Matlab</Font>'s <Font bold="false" italic="false" size="12" style="_cstyle279" underline="false">fsolve</Font> command.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The examples discussed in this paper provide samples of how simple shooting, in particular <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>, can be applied to the analysis of boundary value problems that are encountered in chemical engineering.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">A First Example</Text-field></Title><Group><Input><Text-field alignment="left" layout="Normal" style="Text">Prior to showing the use of shoot for realistic problems in chemical engineering, let's start with a relatively standard problem from elementary ODEs:</Text-field><Text-field alignment="centred" layout="Normal" style="Text">
         <Equation input-equation="(diff(Y(t), t, t))+Y(t) = cos(t)" style="2D Math">NiMvLCYtSSVkaWZmR0kqcHJvdGVjdGVkR0YnNiUtSSJZRzYiNiNJInRHRitGLUYtIiIiRilGLi1JJGNvc0c2JEYnSShfc3lzbGliR0YrRiw=</Equation>                          
                                            <Equation input-equation="Y(1) = 3" style="2D Math">NiMvLUkiWUc2IjYjIiIiIiIk</Equation>                                        (3)
     <Equation input-equation="Y(3) = 1" style="2D Math">NiMvLUkiWUc2IjYjIiIkIiIi</Equation>     </Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Text">This problem is solvable directly with Maple's built-in <Hyperlink bold="false" executable="false" family="Times New Roman" hyperlink="true" linktarget="Help:dsolve" size="12" style="Hyperlink">dsolve</Hyperlink> command:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">dsolve( {diff( Y(t),t,t ) + Y(t) = cos(t),
         Y(1)=3, Y(3)=1},
        Y(t) );</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">Sexact := unapply( rhs(%), t ):</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Text"><Font family="Arial">This was not the case when shoot was first written (in 1996 for Maple V, Release 3).</Font></Text-field><Text-field layout="Normal" style="Text"/><Text-field layout="Normal" style="Text"><Font family="Arial">To solve the same problem with the shooting method, first restate the problem as a first-order system</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">ODE:={diff(Y(t),t)  = Yp(t),
      diff(Yp(t),t) = -Y(t)+cos(t)}:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Text">for the function, Y, and its first derivative, Yp = Y' </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">FNS:={ Y(t), Yp(t) }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">with initial conditions</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">IC:={ Y(1)=3,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">      Yp(1)=alpha }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and boundary conditions</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BC:={ Y(3)=1 }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Note that the initial condition for the auxiliary function Yp reflects that alpha is the shooting parameter for this problem.  This can be handled by <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> without modification:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">infolevel[shoot]:=1:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">S:=shoot( ODE, IC, BC, FNS,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">          [alpha=0.0] ):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">S(3);</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">evalf( Sexact(3) );</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">Pshoot := odeplot( S, [t,Y(t)], t=1..3,
                   legend=["Y(t) [shoot]"] ):</Text-field></Input><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">Pexact := plot( Sexact(t), t=1..3,
                style=point, color=blue,
                legend=["Y(t) [exact]"] ):</Text-field></Input><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">display( [Pshoot,Pexact], view=[1..3,0..5],
         title="Comparison of shooting method and exact solutions" );</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Laminar Boundary-Layer Flow Past a Flat Plate</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">Consider a fluid stream with velocity <Equation input-equation="u[0]" style="2D Comment">NiMmJSJ1RzYjIiIh</Equation> and kinematic viscosity <Equation input-equation="nu" style="2D Comment">NiMlI251Rw==</Equation> in which a thin plate is inserted parallel with the fluid flow. Determining the velocity of the fluid in the region close to the plate is the <Font bold="false" family="Arial" size="12" style="_cstyle281" underline="false">Blasius problem</Font> [6, p. 233].  Assuming the flow is steady, incompressible, and Newtonian, the plate is infinitely wide, and neglecting buoyancy, the equations of motion and continuity are:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">alias( U=u(x,y), V=v(x,y) ):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">PDE:={ U*diff(U,x)+V*diff(U,y)-nu*diff(U,y$2)=0,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">       diff(U,x)+diff(V,y)=0 };</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">where <Equation input-equation="u" style="2D Comment">NiMlInVH</Equation> and <Equation input-equation="v" style="2D Comment">NiMlInZH</Equation> are the <Equation input-equation="x" style="2D Comment">NiMlInhH</Equation>- and <Equation input-equation="y" style="2D Comment">NiMlInlH</Equation>-components of the fluid velocity.  The boundary conditions consist of the ``no-slip'' conditions on the boundary of the plate: <Equation input-equation="u(x,0)" style="2D Comment">NiMtJSJ1RzYkJSJ4RyIiIQ==</Equation>=<Equation input-equation="v(x,0)" style="2D Comment">NiMtJSJ2RzYkJSJ4RyIiIQ==</Equation>=0, and the free stream-merge condition <Equation input-equation="limit( u(x,y), y=infinity) = u[0] " style="2D Comment">NiMvLSUmbGltaXRHNiQtJSJ1RzYkJSJ4RyUieUcvRislKWluZmluaXR5RyZGKDYjIiIh</Equation> , for all <Equation input-equation="x" style="2D Comment">NiMlInhH</Equation>&gt;0.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">A similarity transformation can be used to reduce this parabolic system of PDEs to a single ODE.  This can be done by choosing the dimensionless similarity variable to be:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">simsubs:=eta(x,y)=y*sqrt(u[0]/nu/x/2);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The corresponding nondimensional stream function for the flow is:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">stream:=psi(x,y)=sqrt(2*nu*x*u[0])*f(eta(x,y));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Thus, the velocities can be expressed as:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Usubs:=U=diff(rhs(stream),y);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">Vsubs:=V=-diff(rhs(stream),x);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Substituting the stream function representations of the velocities into the PDEs is tedious to complete by hand.  Fortunately, this is exactly one of Maple's strengths:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">ODE:=simplify(subs(Usubs,Vsubs,simsubs,PDE));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The trivial fulfillment of the continuity equation is evident in this result. However, the first equation is not so readily identified.  To simplify this further, note that each argument to <Equation input-equation="f" style="2D Comment">NiMlImZH</Equation>, and its derivatives, is simply <Equation input-equation="eta" style="2D Comment">NiMlJGV0YUc=</Equation>.  To force this simplification,</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">simsubs2:=solve(subs(eta(x,y)=eta,simsubs),{y});</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">ODE:=simplify(subs(simsubs2,ODE),symbolic);</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">It is now easy to identify the Blasius equation</Text-field><Text-field layout="_pstyle281" style="_pstyle281">     <Equation input-equation="diff( f(eta), eta$3 ) + f(eta) * diff(f(eta),eta$2) = 0" style="2D Comment">NiMvLCYtJSVkaWZmRzYkLSUiZkc2IyUkZXRhRy0lIiRHNiRGKyIiJCIiIiomRihGMC1GJjYkRigtRi02JEYrIiIjRjBGMCIiIQ==</Equation>,        <Equation input-equation="eta" style="2D Comment">NiMlJGV0YUc=</Equation>&gt;0.</Text-field><Text-field layout="Normal" style="Normal">The conversion of the boundary conditions can be done by inspection. The resulting conditions are  <Equation input-equation="f(0)" style="2D Comment">NiMtJSJmRzYjIiIh</Equation> = <Equation input-equation="f*`'`(0)" style="2D Comment">NiMqJiUiZkciIiItJSInRzYjIiIhRiU=</Equation> = <Equation input-equation="0" style="2D Comment">NiMiIiE=</Equation>  and <Equation input-equation="limit( diff(f(eta),eta), eta=infinity ) = 1" style="2D Comment">NiMvLSUmbGltaXRHNiQtJSVkaWZmRzYkLSUiZkc2IyUkZXRhR0YtL0YtJSlpbmZpbml0eUciIiI=</Equation>.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The ``boundary condition'' at <Equation input-equation="eta=infinity" style="2D Comment">NiMvJSRldGFHJSlpbmZpbml0eUc=</Equation> presents a problem.  However, a simple asymptotic analysis shows that solutions at <Equation input-equation="eta" style="2D Comment">NiMlJGV0YUc=</Equation>=10 are safely in the far-field.  The problem now takes the form of a third-order two-point boundary value problem for <Equation input-equation="f" style="2D Comment">NiMlImZH</Equation> on [0,10].  The reformulation as a first-order system is straightforward; let  <Equation input-equation="g := f*`'`" style="2D Comment">NiM+JSJnRyomJSJmRyIiIiUiJ0dGJw==</Equation>  and  <Equation input-equation="h := f*`''`" style="2D Comment">NiM+JSJoRyomJSJmRyIiIiUjJydHRic=</Equation>,  then </Text-field><Text-field layout="_pstyle282" style="_pstyle282">         <Equation input-equation=" f*`'` = g" style="2D Comment">NiMvKiYlImZHIiIiJSInR0YmJSJnRw==</Equation> ,                    <Equation input-equation="f(0)=0" style="2D Comment">NiMvLSUiZkc2IyIiIUYn</Equation>                        </Text-field><Text-field layout="_pstyle283" style="_pstyle283">                                   <Equation input-equation="g*`'` = h" style="2D Comment">NiMvKiYlImdHIiIiJSInR0YmJSJoRw==</Equation>,                    <Equation input-equation="g(0)=0" style="2D Comment">NiMvLSUiZ0c2IyIiIUYn</Equation>                                         (4)     </Text-field><Text-field layout="_pstyle284" style="_pstyle284">         <Equation input-equation="h*`'` = -f*h" style="2D Comment">NiMvKiYlImhHIiIiJSInR0YmLCQqJiUiZkdGJkYlRiYhIiI=</Equation>,                <Equation input-equation="h(0)=beta" style="2D Comment">NiMvLSUiaEc2IyIiISUlYmV0YUc=</Equation>                        </Text-field><Text-field layout="Normal" style="Normal">where <Equation input-equation="beta" style="2D Comment">NiMlJWJldGFH</Equation> is the control parameter.  The objective is to find <Equation input-equation="beta" style="2D Comment">NiMlJWJldGFH</Equation> so that the solution to (4) satisfies the boundary condition <Equation input-equation="g(10)=1" style="2D Comment">NiMvLSUiZ0c2IyIjNSIiIg==</Equation>.  Since there is only one boundary condition at <Equation input-equation="eta=10 " style="2D Comment">NiMvJSRldGFHIiM1</Equation> we have <Equation input-equation="m[2]=1" style="2D Comment">NiMvJiUibUc2IyIiIyIiIg==</Equation> and <Equation input-equation="s=beta" style="2D Comment">NiMvJSJzRyUlYmV0YUc=</Equation>.  The sensitivity equations that are obtained from (3), together with their accompanying initial values, are:</Text-field><Text-field layout="_pstyle285" style="_pstyle285">     <Equation input-equation="f[beta]*`'` = g[beta]" style="2D Comment">NiMvKiYmJSJmRzYjJSViZXRhRyIiIiUiJ0dGKSYlImdHRic=</Equation> ,                                 <Equation input-equation="f[beta](0)=0" style="2D Comment">NiMvLSYlImZHNiMlJWJldGFHNiMiIiFGKg==</Equation>              </Text-field><Text-field layout="_pstyle286" style="_pstyle286">                       <Equation input-equation="g[beta]*`'` = h[beta]" style="2D Comment">NiMvKiYmJSJnRzYjJSViZXRhRyIiIiUiJ0dGKSYlImhHRic=</Equation> ,                                 <Equation input-equation="g[beta](0)=0" style="2D Comment">NiMvLSYlImdHNiMlJWJldGFHNiMiIiFGKg==</Equation>                             (5)</Text-field><Text-field layout="_pstyle287" style="_pstyle287">     <Equation input-equation="h[beta]*`'` = -f[beta]*h - f*h[beta]" style="2D Comment">NiMvKiYmJSJoRzYjJSViZXRhRyIiIiUiJ0dGKSwmKiYmJSJmR0YnRilGJkYpISIiKiZGLkYpRiVGKUYv</Equation> ,                    <Equation input-equation="h[beta](0)=1" style="2D Comment">NiMvLSYlImhHNiMlJWJldGFHNiMiIiEiIiI=</Equation>               </Text-field><Text-field layout="Normal" style="Normal">where, for example,  <Equation input-equation="f[beta](t,beta):=diff(f(t,beta),beta)" style="2D Comment">NiM+LSYlImZHNiMlJWJldGFHNiQlInRHRigtJSVkaWZmRzYkLUYmRilGKA==</Equation>.  Now, assume that an approximate solution to (4) and (5) has been computed with <Equation input-equation="s=s^k" style="2D Comment">NiMvJSJzRylGJCUia0c=</Equation>,  <Font bold="false" family="Arial" size="12" style="_cstyle280" underline="false">i.e.</Font>,  <Equation input-equation="beta=beta^k" style="2D Comment">NiMvJSViZXRhRylGJCUia0c=</Equation>.  Then, assuming <Equation input-equation="abs( g(10,beta^k)-1 )" style="2D Comment">NiMtJSRhYnNHNiMsJi0lImdHNiQiIzUpJSViZXRhRyUia0ciIiJGLiEiIg==</Equation>  is not sufficiently small, the next iteration will be made with</Text-field><Text-field layout="_pstyle280" style="_pstyle280">
     <Equation input-equation="beta^(k+1) :=beta^k - ( g(10,beta^k)-1 ) / ( g[beta](10,beta^k) ) " style="2D Comment">NiM+KSUlYmV0YUcsJiUia0ciIiJGKEYoLCYpRiVGJ0YoKiYsJi0lImdHNiQiIzVGKkYoRighIiJGKC0mRi42I0YlRi9GMUYx</Equation>.   
</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">While it is important to understand how <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> obtains its approximations, it is also a tremendous advantage to use Maple to both compute automatically, and symbolically, the sensitivity equations and iteratively solve the combined system of IVPs and take one step of the Newton-Raphson method until the boundary conditions are satisfied within a prescribed tolerance.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Now, define the dependent variables for the first-order system:</Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">FNS:={ f(eta), g(eta), h(eta) }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and the differential equations which they satisfy:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">ODE:={ diff(f(eta),eta)=g(eta),</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">       diff(g(eta),eta)=h(eta),</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">       diff(h(eta),eta)=-f(eta)*h(eta) }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The initial condition for <Equation input-equation="f*`''`" style="2D Comment">NiMqJiUiZkciIiIlIycnR0Yl</Equation> is unknown, and the boundary condition at <Equation input-equation="eta=10" style="2D Comment">NiMvJSRldGFHIiM1</Equation> is the control for our iterations:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">IC:={ f(0)=0, g(0)=0, h(0)=beta }:</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BC:=g(10)=1:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">We take the first shot with <Equation input-equation="beta=0" style="2D Comment">NiMvJSViZXRhRyIiIQ==</Equation>, and iterate until the boundary condition is satisfied to six decimal places:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">infolevel[shoot]:=1;</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">S:=shoot( ODE, IC, BC, FNS, beta=0,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">          abserr=Float(5,-7), output=listprocedure, method=taylorseries ):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">This solution can be analyzed using any of the standard Maple tools for manipulating the numerical solution of a differential equation. A common place to begin is a plot of the solution, including labels to distinguish the different curves:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">odeplot( S, [ [eta,f(eta)],</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">            [eta,g(eta)], [eta,h(eta)] ],0..4,
            labels=[`eta`,``], legend=["f","f '","f ''"],
            title="Blasius solution for flat-plate boundary layer" );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">With increasing distance from the leading edge of the plate in the downstream direction the thickness <Equation input-equation="delta" style="2D Comment">NiMlJmRlbHRhRw==</Equation> of the retarded boundary layer increases continuously as increasing quantities of fluid become affected. In the boundary layer the velocity of the fluid increases from zero at the wall (no slip) to its full value which corresponds to external frictionless flow. The velocity reaches 99% of its bulk value when  <Equation input-equation="f*`'`(eta) = 0.99 " style="2D Comment">NiMvKiYlImZHIiIiLSUiJ0c2IyUkZXRhR0YmJCIjKiohIiM=</Equation>:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">fp0:=subs( S, g(eta) ):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">fp := proc(x)</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">  if not type(evalf(x),`numeric`) then</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">    'procname'(x);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">  else</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">    fp0(x);</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">  end if;</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">end proc:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">eta[`99%`]=fsolve( fp(eta)=0.99, eta=3..4 );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The solution returned by <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> is obtained with <Font bold="false" italic="false" size="12" style="2D Input">method=taylorseries</Font> and the function used in <Font bold="false" italic="false" size="12" style="2D Input">fsolve</Font> must be written to avoid evaluation in cases when the argument is not numeric.  But, in the end, the result is equivalent to the one reported in the original paper.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The corresponding boundary layer thickness is:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">delta[`99%`]=subs(eta=rhs(%), combine(rhs(op(simsubs2))) );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">As is now evident, the thickness of the boundary layer decreases with decreasing viscosity.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The shear stress,<Equation input-equation=" tau=mu\ * diff(u,y)" style="2D Comment">NiMvJSR0YXVHKiYlI211RyIiIi0lJWRpZmZHNiQlInVHJSJ5R0Yn</Equation>, is:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">tau:=mu*simplify(diff(subs(simsubs,rhs(Usubs)),y));</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Note that a large velocity gradient across the flow creates considerable shear stress in the boundary layer.  The wall shear stress is:</Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">tau[w]:=subs( (D@@2)(f)(0)=subs(S,h(eta))(0), subs( y=0, tau ) );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The analysis can be continued to obtain an understanding of parameters such as the displacement thickness and drag coefficient.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Infinite Rotating Disk</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal">Consider the steady fluid flow generated when the infinite plane <Equation input-equation="z=0" style="2D Comment">NiMvJSJ6RyIiIQ==</Equation>, immersed in a Newtonian viscous fluid, rotates about the axis <Equation input-equation="r=0" style="2D Comment">NiMvJSJyRyIiIQ==</Equation>  with a constant angular velocity <Equation input-equation="omega" style="2D Comment">NiMlJm9tZWdhRw==</Equation>.  The viscous drag of the rotating surface creates a swirling flow toward the disk.  The motion is characterized in terms of the pressure, <Equation input-equation="p" style="2D Comment">NiMlInBH</Equation>, and the three components of the velocity, <Equation input-equation="v^r" style="2D Comment">NiMpJSJ2RyUickc=</Equation>, <Equation input-equation="v^theta" style="2D Comment">NiMpJSJ2RyUmdGhldGFH</Equation>, <Equation input-equation="v^z" style="2D Comment">NiMpJSJ2RyUiekc=</Equation>, in cylindrical coordinates.  The radial symmetry of this problem eliminates <Equation input-equation="theta" style="2D Comment">NiMlJnRoZXRhRw==</Equation> as a independent variable.  Thus, with <Equation input-equation="rho" style="2D Comment">NiMlJHJob0c=</Equation> and <Equation input-equation="nu" style="2D Comment">NiMlI251Rw==</Equation> denoting the density and kinematic viscosity of the fluid and writing partial derivatives as subscripts, the equations of continuity and conservation of momentum reduce to [6]:</Text-field><Text-field layout="_pstyle298" style="_pstyle298">                <Equation input-equation="1/r" style="2D Comment">NiMqJiIiIkYkJSJyRyEiIg==</Equation> <Equation input-equation="(r * v^r )[r]" style="2D Comment">NiMmKiYlInJHIiIiKSUidkdGJUYmNiNGJQ==</Equation> + <Equation input-equation="(v^z)[z]" style="2D Comment">NiMmKSUidkclInpHNiNGJg==</Equation>  = <Equation input-equation="0" style="2D Comment">NiMiIiE=</Equation>,                                                                                </Text-field><Text-field layout="_pstyle299" style="_pstyle299">      <Equation input-equation="v^r * ( v^r )[r] + v[z] (v^r )[z]" style="2D Comment">NiMsJiomKSUidkclInJHIiIiJkYlNiNGJ0YoRigmLSZGJjYjJSJ6RzYjRiVGLkYo</Equation> - <Equation input-equation="1/r" style="2D Comment">NiMqJiIiIkYkJSJyRyEiIg==</Equation> <Equation input-equation="(v^theta)^2" style="2D Comment">NiMqJCklInZHJSZ0aGV0YUciIiM=</Equation>  = <Equation input-equation="-1/rho" style="2D Comment">NiMsJComIiIiRiUlJHJob0chIiJGJw==</Equation> <Equation input-equation="p[r]" style="2D Comment">NiMmJSJwRzYjJSJyRw==</Equation> + <Equation input-equation="nu" style="2D Comment">NiMlI251Rw==</Equation> ( <Equation input-equation="(v^r)[rr]" style="2D Comment">NiMmKSUidkclInJHNiMlI3JyRw==</Equation> + <Equation input-equation="1/r" style="2D Comment">NiMqJiIiIkYkJSJyRyEiIg==</Equation> <Equation input-equation="(v^r)[r]" style="2D Comment">NiMmKSUidkclInJHNiNGJg==</Equation> + <Equation input-equation="(v^r)[zz]" style="2D Comment">NiMmKSUidkclInJHNiMlI3p6Rw==</Equation> - <Equation input-equation="v^r/r^2" style="2D Comment">NiMqJiklInZHJSJyRyIiIiokRiYiIiMhIiI=</Equation> )                  (6)</Text-field><Text-field layout="_pstyle300" style="_pstyle300">     <Equation input-equation="v^r * (v^theta)[r] + v^z * (v^theta)[z]" style="2D Comment">NiMsJiomKSUidkclInJHIiIiJilGJiUmdGhldGFHNiNGJ0YoRigqJilGJiUiekdGKCZGKjYjRi9GKEYo</Equation> + <Equation input-equation="1/r" style="2D Comment">NiMqJiIiIkYkJSJyRyEiIg==</Equation> <Equation input-equation="v^r * v^theta" style="2D Comment">NiMqJiklInZHJSJyRyIiIilGJSUmdGhldGFHRic=</Equation>  = <Equation input-equation="nu" style="2D Comment">NiMlI251Rw==</Equation> ( <Equation input-equation="(v^theta)[rr]" style="2D Comment">NiMmKSUidkclJnRoZXRhRzYjJSNyckc=</Equation> + <Equation input-equation="1/r" style="2D Comment">NiMqJiIiIkYkJSJyRyEiIg==</Equation> <Equation input-equation="(v^theta)[r]" style="2D Comment">NiMmKSUidkclJnRoZXRhRzYjJSJyRw==</Equation> + <Equation input-equation="(v^theta)[zz]" style="2D Comment">NiMmKSUidkclJnRoZXRhRzYjJSN6ekc=</Equation> - <Equation input-equation="v^theta/r^2" style="2D Comment">NiMqJiklInZHJSZ0aGV0YUciIiIqJCUickciIiMhIiI=</Equation> )                                      </Text-field><Text-field layout="_pstyle301" style="_pstyle301">     <Equation input-equation="v^r * (v^z)[r] + v^z * (v^z)[z]" style="2D Comment">NiMsJiomKSUidkclInJHIiIiJilGJiUiekc2I0YnRihGKComRipGKCZGKjYjRitGKEYo</Equation>  = <Equation input-equation="-1/rho" style="2D Comment">NiMsJComIiIiRiUlJHJob0chIiJGJw==</Equation> <Equation input-equation="p[z]" style="2D Comment">NiMmJSJwRzYjJSJ6Rw==</Equation> + <Equation input-equation="nu " style="2D Comment">NiMlI251Rw==</Equation> ( <Equation input-equation="(v^z)[rr]" style="2D Comment">NiMmKSUidkclInpHNiMlI3JyRw==</Equation> + <Equation input-equation="1/r" style="2D Comment">NiMqJiIiIkYkJSJyRyEiIg==</Equation> <Equation input-equation="(v^z)[r]" style="2D Comment">NiMmKSUidkclInpHNiMlInJH</Equation> + <Equation input-equation="(v^z)[zz]" style="2D Comment">NiMmKSUidkclInpHNiMlI3p6Rw==</Equation> )               </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">The boundary conditions are chosen (for all <Equation input-equation="r" style="2D Comment">NiMlInJH</Equation>&gt;0) to enforce no slippage at the interface with the disk:</Text-field><Text-field layout="_pstyle302" style="_pstyle302">     <Equation input-equation="(v^r)(r,0)" style="2D Comment">NiMtKSUidkclInJHNiRGJiIiIQ==</Equation> = <Equation input-equation="(v^z)(r,0)" style="2D Comment">NiMtKSUidkclInpHNiQlInJHIiIh</Equation> = 0,      </Text-field><Text-field layout="_pstyle303" style="_pstyle303">                                                                   <Equation input-equation="(v^theta)(r,0) = r*omega" style="2D Comment">NiMvLSklInZHJSZ0aGV0YUc2JCUickciIiEqJkYpIiIiJSZvbWVnYUdGLA==</Equation>,                                         (7)</Text-field><Text-field layout="_pstyle304" style="_pstyle304">                           <Equation input-equation="p(r,0) = 0" style="2D Comment">NiMvLSUicEc2JCUickciIiFGKA==</Equation>     </Text-field><Text-field layout="Normal" style="Normal">and no non-axial viscous effect in the far-field:</Text-field><Text-field layout="_pstyle305" style="_pstyle305">     <Equation input-equation="limit( (v^r)(r,z), z=infinity ) = 0" style="2D Comment">NiMvLSUmbGltaXRHNiQtKSUidkclInJHNiRGKiUiekcvRiwlKWluZmluaXR5RyIiIQ==</Equation>,     </Text-field><Text-field layout="_pstyle306" style="_pstyle306">                                                          <Equation input-equation="limit( (v^theta)(r,z), z=infinity ) = 0" style="2D Comment">NiMvLSUmbGltaXRHNiQtKSUidkclJnRoZXRhRzYkJSJyRyUiekcvRi0lKWluZmluaXR5RyIiIQ==</Equation>,                                                 (8)     </Text-field><Text-field layout="_pstyle307" style="_pstyle307">     <Equation input-equation="limit( (v^z)[z](r,z), z=infinity ) = 0" style="2D Comment">NiMvLSUmbGltaXRHNiQtJiklInZHJSJ6RzYjRis2JCUickdGKy9GKyUpaW5maW5pdHlHIiIh</Equation>.      </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Similarity solutions to this equation were found by Karman [9], who noted that each of <Equation input-equation="v^r/r" style="2D Comment">NiMqJiklInZHJSJyRyIiIkYmISIi</Equation>, <Equation input-equation="v^theta / r" style="2D Comment">NiMqJiklInZHJSZ0aGV0YUciIiIlInJHISIi</Equation>, <Equation input-equation="v^z / r" style="2D Comment">NiMqJiklInZHJSJ6RyIiIiUickchIiI=</Equation>, and <Equation input-equation="p" style="2D Comment">NiMlInBH</Equation> depends only on the distance from the disk, <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>.  The system of PDEs reduces to a system of ODEs with the introduction of  <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=<Equation input-equation="z * sqrt( omega / nu )" style="2D Comment">NiMqJiUiekciIiItJSVzcXJ0RzYjKiYlJm9tZWdhR0YlJSNudUchIiJGJQ==</Equation> as the dimensionless independent variable for the dimensionless functions <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation>, <Equation input-equation="G" style="2D Comment">NiMlIkdH</Equation>, <Equation input-equation="H" style="2D Comment">NiMlIkhH</Equation>, and <Equation input-equation="P" style="2D Comment">NiMlIlBH</Equation> defined according to</Text-field><Text-field layout="_pstyle308" style="_pstyle308">            <Equation input-equation="v^r = r*omega * F(z*`*`)" style="2D Comment">NiMvKSUidkclInJHKihGJiIiIiUmb21lZ2FHRigtJSJGRzYjKiYlInpHRiglIipHRihGKA==</Equation>,     </Text-field><Text-field layout="_pstyle309" style="_pstyle309">                                                             <Equation input-equation="v^theta = r*omega * G(z*`*`)" style="2D Comment">NiMvKSUidkclJnRoZXRhRyooJSJyRyIiIiUmb21lZ2FHRiktJSJHRzYjKiYlInpHRiklIipHRilGKQ==</Equation>,                                                 (9) </Text-field><Text-field layout="_pstyle310" style="_pstyle310">                 <Equation input-equation="v^z = sqrt(omega*nu) * H(z*`*`)" style="2D Comment">NiMvKSUidkclInpHKiYtJSVzcXJ0RzYjKiYlJm9tZWdhRyIiIiUjbnVHRi1GLS0lIkhHNiMqJkYmRi0lIipHRi1GLQ==</Equation>,      </Text-field><Text-field layout="_pstyle311" style="_pstyle311">                 <Equation input-equation="p = rho*omega*nu * P(z*`*`)" style="2D Comment">NiMvJSJwRyoqJSRyaG9HIiIiJSZvbWVnYUdGJyUjbnVHRictJSJQRzYjKiYlInpHRiclIipHRidGJw==</Equation>,     </Text-field><Text-field layout="Normal" style="Normal">The substitution of (9) into (6), (7), and (8) can be completed in a manner analogous to that used in the Blasius problem.  These steps are omitted here in the interest of space; the resulting BVP is:</Text-field><Text-field layout="_pstyle312" style="_pstyle312">         <Equation input-equation="H*`'` = -2*F" style="2D Comment">NiMvKiYlIkhHIiIiJSInR0YmLCQqJiIiI0YmJSJGR0YmISIi</Equation>,                     </Text-field><Text-field layout="_pstyle313" style="_pstyle313">             <Equation input-equation="F*`''` = F^2 - G^2 + F*`'`*H" style="2D Comment">NiMvKiYlIkZHIiIiJSMnJ0dGJiwoKiRGJSIiI0YmKiQlIkdHRiohIiIqKEYlRiYlIidHRiYlIkhHRiZGJg==</Equation>,       </Text-field><Text-field layout="_pstyle314" style="_pstyle314">          <Equation input-equation="G*`''` = 2*F*G + H*G*`'`" style="2D Comment">NiMvKiYlIkdHIiIiJSMnJ0dGJiwmKigiIiNGJiUiRkdGJkYlRiZGJiooJSJIR0YmRiVGJiUiJ0dGJkYm</Equation>         </Text-field><Text-field layout="_pstyle315" style="_pstyle315">                                                                <Equation input-equation="P*`'` = -H * H*`'` + H*`''`" style="2D Comment">NiMvKiYlIlBHIiIiJSInR0YmLCYqKCUiSEdGJkYqRiZGJ0YmISIiKiZGKkYmJSMnJ0dGJkYm</Equation>,                                                (10)         </Text-field><Text-field layout="_pstyle316" style="_pstyle316">           <Equation input-equation="F(0) = H(0)" style="2D Comment">NiMvLSUiRkc2IyIiIS0lIkhHRiY=</Equation> = <Equation input-equation="P(0) = 0" style="2D Comment">NiMvLSUiUEc2IyIiIUYn</Equation>,                                                     </Text-field><Text-field layout="_pstyle317" style="_pstyle317">           <Equation input-equation="G(0) = 1" style="2D Comment">NiMvLSUiR0c2IyIiISIiIg==</Equation>,                               </Text-field><Text-field layout="_pstyle318" style="_pstyle318">           <Equation input-equation="limit(F(z*`*`), z*`*` = infinity )" style="2D Comment">NiMtJSZsaW1pdEc2JC0lIkZHNiMqJiUiekciIiIlIipHRisvRiklKWluZmluaXR5Rw==</Equation>  = <Equation input-equation="limit( G(z*`*`), z*`*` = infinity ) = 0" style="2D Comment">NiMvLSUmbGltaXRHNiQtJSJHRzYjKiYlInpHIiIiJSIqR0YsL0YqJSlpbmZpbml0eUciIiE=</Equation>.                                                                        </Text-field><Text-field layout="Normal" style="Normal">Note that (10) can be solved as a two-point BVP for <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation>, <Equation input-equation="G" style="2D Comment">NiMlIkdH</Equation>, <Equation input-equation="H" style="2D Comment">NiMlIkhH</Equation>.  Once this solution is known, the pressure equation can be integrated to yield <Equation input-equation="P" style="2D Comment">NiMlIlBH</Equation>=-<Equation input-equation="1/2" style="2D Comment">NiMqJiIiIkYkIiIjISIi</Equation> <Equation input-equation="H^2" style="2D Comment">NiMqJCUiSEciIiM=</Equation> + <Equation input-equation="H" style="2D Comment">NiMlIkhH</Equation>'.  In addition, note that any physically realistic solution must have <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation>, <Equation input-equation="G" style="2D Comment">NiMlIkdH</Equation>, <Equation input-equation="P" style="2D Comment">NiMlIlBH</Equation> &gt; 0 and <Equation input-equation="H" style="2D Comment">NiMlIkhH</Equation> &lt; 0 for all <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>* [6, p. 164].</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Assuming the boundary condition at z* = <Equation input-equation="infinity" style="2D Comment">NiMlKWluZmluaXR5Rw==</Equation> can be applied at a finite distance from the disk, <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> can be used to obtain an approximate solution to this system.  First, introduce the first derivatives of <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation> and <Equation input-equation="G" style="2D Comment">NiMlIkdH</Equation> as new dependent variables:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">FNS:={ F(Z), G(Z), H(Z), Fp(Z), Gp(Z) }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and reformulate the system as a first-order system of ODEs:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">ODE:={diff(H(Z),Z)  = -2*F(Z),
      diff(F(Z),Z)  = Fp(Z),
      diff(Fp(Z),Z) = -G(Z)^2+F(Z)^2+Fp(Z)*H(Z),
      diff(G(Z),Z)  = Gp(Z),
      diff(Gp(Z),Z) = 2*F(Z)*G(Z)+H(Z)*Gp(Z)}:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">with initial conditions:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">IC:={ F(0)=0, G(0)=1, H(0)=0,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">      Fp(0)=alpha, Gp(0)=beta }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and boundary conditions (again, <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=10 can be shown to be in the far-field):</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">BC:={ F(10)=0, G(10)=0 }:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Note that, as in the first example, the boundary condition at infinity has been moved to a finite position.  The value <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=10 is chosen, as before, on the basis that this is already in the far field.  (In fact, truncating the computations at <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=7 yields essentially the same solution.)  Note also that since there are two boundary conditions at the second boundary point, there are two parameters to be determined in the shooting method (<Font bold="false" family="Arial" size="12" style="_cstyle283" underline="false">i.e.</Font>, <Equation input-equation="m[2]=2" style="2D Comment">NiMvJiUibUc2IyIiI0Yn</Equation>).  This can be handled by <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> without modification:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">infolevel[shoot]:=1:</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">S:=shoot( ODE, IC, BC, FNS,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">          [alpha=0.51, beta=-0.62] ):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">P:=Z-&gt;-H(Z)^2/2-2*F(Z):</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">odeplot(S,[ [Z,F(Z)], [Z,G(Z)],
            [Z,H(Z)], [Z,-P(Z)] ], 0..10,
            labels=[`z*`,``], title=`Infinite Disk: alpha=0.51, beta=-0.62`,
            legend=["F","G","H","-1/2*H^2-2*F"] );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">This plot confirms that the solution satisfies the original boundary conditions at <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=<Equation input-equation="infinity" style="2D Comment">NiMlKWluZmluaXR5Rw==</Equation>.  (In fact, the solution obtained when the computational domain is truncated at <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=7.)  Compare the solution in the preceding plot with the solution obtained when the starting values of the control parameters are <Equation input-equation="alpha=0.50" style="2D Comment">NiMvJSZhbHBoYUckIiNdISIj</Equation> and <Equation input-equation="beta=-0.61" style="2D Comment">NiMvJSViZXRhRywkJCIjaCEiIyEiIg==</Equation> -- each just 0.01 less than the first attempt:</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">S2:=shoot( ODE, IC, BC, FNS,</Font></Text-field><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">           [alpha=0.5, beta=-0.61] ):</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">The different values of <Equation input-equation="alpha" style="2D Comment">NiMlJmFscGhhRw==</Equation> and <Equation input-equation="beta" style="2D Comment">NiMlJWJldGFH</Equation> suggest that the shooting method has returned a different solution.  Is this also a solution to the problem?</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"><Font italic="false" size="12" underline="false">odeplot(S2,[ [Z,F(Z)], [Z,G(Z)],
            [Z,H(Z)], [Z,-P(Z)] ], 0..10,
            labels=[`z*`,``], title=`Infinite Disk: alpha=0.51, beta=-0.62`,
            legend=["F","G","H","-1/2*H^2-2*F"] );</Font></Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Note that this solution does not satisfy the aforementioned sign constraints for <Equation input-equation="F" style="2D Comment">NiMlIkZH</Equation>, <Equation input-equation="G" style="2D Comment">NiMlIkdH</Equation>, <Equation input-equation="H" style="2D Comment">NiMlIkhH</Equation>, and <Equation input-equation="P" style="2D Comment">NiMlIlBH</Equation> for a physical solution to (10).  Furthermore, while the boundary conditions at <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=10 are satisfied, it is extremely unlikely that this solution will satisfy the boundary conditions at <Equation input-equation="z" style="2D Comment">NiMlInpH</Equation>*=<Equation input-equation="infinity" style="2D Comment">NiMlKWluZmluaXR5Rw==</Equation>.  This is a spurious solution [6, p. 167].  Automating the detection of spurious solutions is extremely difficult. In some instances, this difficulty can be avoided by the use of one of the other solution techniques for boundary value problems mentioned previously.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Conclusion</Text-field></Title><Group><Input><Text-field layout="_pstyle271" style="_pstyle271">In this brief article we have introduced <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font>, a Maple implementation of the simple shooting method for the numerical solution of two-point boundary value problems, and illustrated the application of <Font bold="false" italic="false" size="12" style="2D Input">shoot</Font> to assist with the analysis of some classic problems from chemical engineering.  These examples demonstrate some of the potential that is available with Maple's combination of symbolic, numeric, and graphic computation.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">References</Text-field></Title><Group><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[1]  J. Stoer and R. Bulirsch, Introduction to Numerical Analysis, Springer-Verlag, 1980.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[2]  Yonathan Bard, Nonlinear Parameter Estimation, Academic Press, 1974.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[3]  Mark E. Davis, Numerical Methods and Modeling for Chemical Engineers, John Wiley &amp; Sons, Inc., 1984.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[3] Uri M. Ascher, Robert M. M. Mattheij, and Robert D. Russell, Numerical Solution of Boundary Value Problems for Ordinary Differential Equations}, SIAM, 1995.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[4] U. Ascher, J. Christiansen and R. D. Russell, COLSYS - a collocation code for boundary value problems, Proc. Conf. for Codes for BVPs in ODEs, Houston, Texas, 1978.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[5] Frank M. White, Viscous Fluid Flow, 1st ed., McGraw--Hill, Inc., 1974.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[6] P. B. Wiesz and J. S. Hicks, The behaviour of porous catalyst particles in view of internal mass and heat diffusion effects}, Chemical Engineering Science, 17, pp. 265--275, 1962.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[7] Bruce A. Finlayson, Nonlinear Analysis in Chemical Engineering, McGraw-Hill, 1980.</Text-field></Input><Input><Text-field alignment="left" bullet="none" firstindent="0.0" layout="Normal" leftmargin="0.0" linebreak="space" linespacing="0.0" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0" style="Normal">[8] T. von Karman, `Uber laminare und turbulente Reibung, Z. Angew. Math. Mech., 1, pp. 233--252, 1921.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Disclaimer</Text-field></Title><Group><Input><Text-field layout="Normal" style="Text">Legal Notice: <Font italic="true">The copyright for this application is owned by the author(s). Neither Maplesoft nor the author are responsible for any errors contained within and are not liable for any damages resulting from the use of this material. This application is intended for non-commercial, non-profit use only. Contact the author for permission if you wish to use this application in for-profit activities.</Font> </Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group></Section><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/><Text-field/></Worksheet>