<?xml version="1.0" encoding="UTF-8"?>
<Worksheet><Version major="6" minor="1"/><View-Properties><Zoom percentage="100"/></View-Properties><Styles><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Author" rightmargin="0.0" spaceabove="8.0" spacebelow="8.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 2" rightmargin="0.0" spaceabove="8.0" spacebelow="2.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Heading 1" rightmargin="0.0" spaceabove="8.0" spacebelow="4.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Normal258" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Title" rightmargin="0.0" spaceabove="12.0" spacebelow="12.0"/><Layout alignment="centred" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="Maple Output" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Layout alignment="left" firstindent="0.0" leftmargin="0.0" linebreak="space" linespacing="0.0" name="No Name" rightmargin="0.0" spaceabove="0.0" spacebelow="0.0"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle209" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle208" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle207" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle206" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Heading 2" readonly="false" size="14" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Heading 1" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" bold="true" executable="true" family="Monospaced" foreground="[255,0,0]" italic="false" name="Maple Input" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" family="Times New Roman" name="Page Number" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Normal" readonly="false" 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" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle236" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle234" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle233" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle232" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle231" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle230" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Author" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" family="Serif" foreground="[0,128,128]" hyperlink="true" name="Hyperlink" opaque="false" size="12" underline="true"/><Font background="[0,0,0]" bold="true" executable="false" family="Monospaced" foreground="[0,0,0]" italic="false" name="_cstyle21" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle229" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle228" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle227" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle225" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle224" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle223" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle222" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle221" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle220" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,255]" italic="false" name="2D Output" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="Normal258" readonly="false" size="14" underline="true"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle219" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle217" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle216" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle215" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle214" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" name="_cstyle256" size="18"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle213" readonly="false" size="18" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="true" name="_cstyle212" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="false" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="2D Comment" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle211" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="_cstyle210" readonly="false" size="12" underline="false"/><Font background="[0,0,0]" bold="true" executable="false" family="Times New Roman" foreground="[0,0,0]" italic="false" name="Title" readonly="false" size="18" underline="true"/></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">Particular solutions and integrating factors of some ODEs of any order </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Author" style="Author">Yu.N. Kosovtsov</Text-field><Text-field layout="Author" style="Author"/><Text-field layout="Author" style="Author">Lviv Radio Engineering Research Institute, Ukraine</Text-field><Text-field layout="Author" style="Author">Email: kosovtsov@escort.lviv.net</Text-field><Text-field layout="Author" style="Author">Copyright, 2005
</Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">Abstract</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" style="Normal">Very often given ODE defies solution. In such situations obtaining exact particular solutions is very desirable. There are only a few sufficiently general methods for obtaining the particular solutions. The most popular is simple guessing. But on this way we can look over only simplest hypothesis.
In [ <Hyperlink linktarget="http://www.maplesoft.com/applications/app_center_view.aspx?AID=1309" style="Hyperlink">http://www.maplesoft.com/applications/app_center_view.aspx?AID=1309</Hyperlink> ] we propose a new algebraic method for finding integrating factors of some<Font style="_cstyle206"> </Font>ODEs of any order. We also have demonstrated there that there are fast CAS procedures which can obtain components of an integrating factor. It is well-known that some components of an integrating factor coincide with some components of a first integral. So this method can be applied to obtaining the particular solutions of some<Font style="_cstyle207"> </Font>ODEs of any order. With help of modified demonstration procedure <Font style="_cstyle208">koif </Font> we show that the method can be fruitful. Our procedure is workable for rational type non-linear ODEs (and surprisingly for many transcendental ODEs even with symbolic parameters) of orders from n=1 to n=5-10. The procedure can handle some simple ODEs of very  high order (n&gt;<Equation input-equation="10^3;" style="2D Comment">NiMqJCIjNSIiJA==</Equation>).</Text-field></Input></Group></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">1. The method</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"><Font style="_cstyle209">
1  Introduction</Font>
</Text-field><Text-field layout="Normal" style="Normal">Very often given ODE defies solution. In such situations obtaining exact particular solutions is very desirable.

There are only a few sufficiently general methods for obtaining the particular solutions. The most popular is simple guessing. But on this way we can look over only simplest hypothesis.

More productive is the usage of the first integrals. But for many interesting real-world problems we are not able to obtain full structure of a first integral. Nevertheless, if we would be able to find certain components of a first integral, we would to proceed particular solutions hunting.  

In [1] we propose a new algebraic method for finding integrating factors of some<Font style="_cstyle210"> </Font>ODEs of any order. We also have demonstrated in [1] that there are fast CAS procedures which can obtain some (or even all) components of an integrating factor. It is well-known that some components of an integrating factor coincide with some components of a first integral. So this method can be applied to obtaining the particular solutions of some<Font style="_cstyle211"> </Font>ODEs of any order.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">With help of modified (with respect to [1]) demonstration procedure <Font style="_cstyle212">koif </Font>(see below) we show that the method can be fruitful.
</Text-field><Text-field layout="Normal" style="Normal"><Font style="_cstyle213">2  The base of the method</Font>
</Text-field><Text-field layout="Normal" style="Normal">For <Font style="_cstyle214">nth</Font> order ODE in solved form </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="(diff(y[0], `$`(x, n)))-f(x, y[0], y[1] .. y[n-1]) = 0;" style="2D Comment">NiMvLCYtJSVkaWZmRzYkJiUieUc2IyIiIS0lIiRHNiQlInhHJSJuRyIiIi0lImZHNiVGL0YoOyZGKTYjRjEmRik2IywmRjBGMUYxISIiRjtGKw==</Equation>                                                                       (1)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">where  <Equation input-equation="y[0] = y(x);" style="2D Comment">NiMvJiUieUc2IyIiIS1GJTYjJSJ4Rw==</Equation> ,    <Equation input-equation="y[j] = diff(y(x), `$`(x, j));" style="2D Comment">NiMvJiUieUc2IyUiakctJSVkaWZmRzYkLUYlNiMlInhHLSUiJEc2JEYtRic=</Equation></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">by standard definition [see,e.g.,2]  <Equation input-equation="mu;" style="2D Comment">NiMlI211Rw==</Equation>  is an integrating factor if   <Equation input-equation="mu*(y[n]-f);" style="2D Comment">NiMqJiUjbXVHIiIiLCYmJSJ5RzYjJSJuR0YlJSJmRyEiIkYl</Equation>  is a total derivative of some function  <Equation input-equation="zeta(x, y[0], y[1] .. y[n-1]);" style="2D Comment">NiMtJSV6ZXRhRzYlJSJ4RyYlInlHNiMiIiE7JkYoNiMiIiImRig2IywmJSJuR0YuRi4hIiI=</Equation> , that is </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="mu*((diff(y[0], `$`(x, n)))-f) = (diff(zeta, x))+(sum(y[j+1]*(diff(zeta, y[j])), j = 0 .. n-1));" style="2D Comment">NiMvKiYlI211RyIiIiwmLSUlZGlmZkc2JCYlInlHNiMiIiEtJSIkRzYkJSJ4RyUibkdGJiUiZkchIiJGJiwmLUYpNiQlJXpldGFHRjJGJi0lJHN1bUc2JComJkYsNiMsJiUiakdGJkYmRiZGJi1GKTYkRjkmRiw2I0ZBRiYvRkE7Ri4sJkYzRiZGJkY1RiY=</Equation>  .                                          (2)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Let </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="mu = diff(zeta, y[n-1]);" style="2D Comment">NiMvJSNtdUctJSVkaWZmRzYkJSV6ZXRhRyYlInlHNiMsJiUibkciIiJGLiEiIg==</Equation>                                                                                                           (3)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">then (2) becomes</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="D(zeta)+f*(diff(zeta, y[n-1])) = 0;" style="2D Comment">NiMvLCYtJSJERzYjJSV6ZXRhRyIiIiomJSJmR0YpLSUlZGlmZkc2JEYoJiUieUc2IywmJSJuR0YpRikhIiJGKUYpIiIh</Equation>                                                                                         (4)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">where   <Equation input-equation="D(zeta) = (diff(zeta, x))+(sum(y[j+1]*(diff(zeta, y[j])), j = 0 .. n-2));" style="2D Comment">NiMvLSUiREc2IyUlemV0YUcsJi0lJWRpZmZHNiRGJyUieEciIiItJSRzdW1HNiQqJiYlInlHNiMsJiUiakdGLUYtRi1GLS1GKjYkRicmRjM2I0Y2Ri0vRjY7IiIhLCYlIm5HRi0iIiMhIiJGLQ==</Equation> .</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">So we conclude that the integrating factor of ODE (1) is  <Equation input-equation="mu = diff(zeta, y[n-1]);" style="2D Comment">NiMvJSNtdUctJSVkaWZmRzYkJSV6ZXRhRyYlInlHNiMsJiUibkciIiJGLiEiIg==</Equation>  , where the function  <Equation input-equation="zeta;" style="2D Comment">NiMlJXpldGFH</Equation>  satisfies the linear first-order PDE (4).

Let us suppose that PDE (4) has some solution in the following form</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="zeta = (product(P[j]^alpha[j], j = 1 .. n1))/(product(Q[k]^beta[k], k = 1 .. n2));" style="2D Comment">NiMvJSV6ZXRhRyomLSUocHJvZHVjdEc2JCkmJSJQRzYjJSJqRyYlJmFscGhhR0YsL0YtOyIiIiUjbjFHRjItRic2JCkmJSJRRzYjJSJrRyYlJWJldGFHRjkvRjo7RjIlI24yRyEiIg==</Equation>
                                                                                                           (5)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">where <Equation input-equation="P[j];" style="2D Comment">NiMmJSJQRzYjJSJqRw==</Equation> and <Equation input-equation="Q[k];" style="2D Comment">NiMmJSJRRzYjJSJrRw==</Equation> (for the sake of simplicity) are polynomials, <Equation input-equation="alpha[j];" style="2D Comment">NiMmJSZhbHBoYUc2IyUiakc=</Equation> and  <Equation input-equation="beta[k];" style="2D Comment">NiMmJSViZXRhRzYjJSJrRw==</Equation> are constants. So  there exists the corresponding integrating factor (3) with the following structure (see [1])</Text-field><Text-field layout="Normal" style="Normal">
</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="mu = denom(f)/(product(Q[k]^(beta[k]+1), k = 1 .. n2));" style="2D Comment">NiMvJSNtdUcqJi0lJmRlbm9tRzYjJSJmRyIiIi0lKHByb2R1Y3RHNiQpJiUiUUc2IyUia0csJiYlJWJldGFHRjFGKkYqRiovRjI7RiolI24yRyEiIg==</Equation>                                                                                                 (6)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">or if exist some <Equation input-equation="alpha[i] &lt; 1;" style="2D Comment">NiMyJiUmYWxwaGFHNiMlImlHIiIi</Equation>  (  <Equation input-equation="0 &lt; alpha[i];" style="2D Comment">NiMyIiIhJiUmYWxwaGFHNiMlImlH</Equation> )</Text-field><Text-field layout="Normal" style="Normal"><Equation input-equation="mu = denom(f)/((product((alpha[i] &lt; 1)*P[i]^(1-alpha[i]), i = 1 .. n1))*(product(Q[k]^(beta[k]+1), k = 1 .. n2)));" style="2D Comment">NiMvJSNtdUcqJi0lJmRlbm9tRzYjJSJmRyIiIiomLSUocHJvZHVjdEc2JComMiYlJmFscGhhRzYjJSJpR0YqRiopJiUiUEdGMywmRipGKkYxISIiRiovRjQ7RiolI24xR0YqLUYtNiQpJiUiUUc2IyUia0csJiYlJWJldGFHRkJGKkYqRiovRkM7RiolI24yR0YqRjk=</Equation>
                                               (7)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">As  <Equation input-equation="zeta;" style="2D Comment">NiMlJXpldGFH</Equation>  is the so-called first integral for ODE (1) then standard solving strategy consist in reducing the given ODE order by equating the first integral to arbitrary constant, say  _C. Reduced ODE has the following form</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="zeta = _C;" style="2D Comment">NiMvJSV6ZXRhRyUjX0NH</Equation>                                                                                                                        (8)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">In such an approach we must know the full structure of a first integral or (almost equivalently) the full structure of an integrating factor. Alas, for many interesting real-world problems we are not able to obtain neither.

Nevertheless, as it was shown in [1] we can find closed system of equations for components of an integrating factor (or of a first integral) <Equation input-equation="P[j];" style="2D Comment">NiMmJSJQRzYjJSJqRw==</Equation> and <Equation input-equation="Q[k];" style="2D Comment">NiMmJSJRRzYjJSJrRw==</Equation>  and further obtain explicit expressions for some <Equation input-equation="P[j];" style="2D Comment">NiMmJSJQRzYjJSJqRw==</Equation> and <Equation input-equation="Q[k];" style="2D Comment">NiMmJSJRRzYjJSJrRw==</Equation>  purely by an algebraical method. It allows us to find reduced ODEs in the following form</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Equation input-equation="P[j] = 0;" style="2D Comment">NiMvJiUiUEc2IyUiakciIiE=</Equation>    or  <Equation input-equation="Q[k] = 0;" style="2D Comment">NiMvJiUiUUc2IyUia0ciIiE=</Equation> ,                                                                                                   (9)</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">what is equivalent to (8) with  <Equation input-equation="_C = 0;" style="2D Comment">NiMvJSNfQ0ciIiE=</Equation>  or  <Equation input-equation="1/_C = 0;" style="2D Comment">NiMvKiYiIiJGJSUjX0NHISIiIiIh</Equation> , i.e., just to equations for particular solution of given ODE. If this reduced ODEs can be solved, then we obtain (a set of) particular solutions of given ODE.

We have to note here that closed system of equations for components of a first integral gives us only necessary conditions for candidates to be such components. So we have to verify each solution of reduced ODE (or reduced ODE itself) to be correct.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">Unfortunately not all reduced ODEs can be solved. But as a rule they are simpler appreciably than original ODE.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="_cstyle256"><Font bold="false" family="Times New Roman" foreground="[0,0,0]" italic="false" underline="false">3  Conclusion</Font></Text-field><Text-field layout="Normal" style="Normal">
The aim here has been to present the simple and relatively fast method for finding particular solutions of some rational high order non-linear ODEs. The experimentations with the procedure implemented in <Font style="_cstyle215">Maple</Font> confirmed consistence and efficiency of proposed method for sufficiently high order ODEs. We can conclude that our procedure is workable for rational ODEs (and surprisingly for many transcendental ODEs even with symbolic parameters) of orders from n=1 to n=5-10. The procedure can handle some simple ODEs of very  high order (n&gt;<Equation input-equation="10^3;" style="2D Comment">NiMqJCIjNSIiJA==</Equation>). </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">This method allows <Font style="_cstyle216">Maple</Font> to extend their solving abilities to solve high order ODEs missed by their own in-house solvers.
</Text-field><Text-field layout="Normal" style="Normal"><Font style="_cstyle217">
References</Font>
[1]  Yu.N. Kosovtsov, <Font style="Text">2 procedures for finding integrating factors </Font>of some<Font style="_cstyle219"> </Font>ODEs of any order. Maple Apps.Centre,    http://www.maplesoft.com/applications/app_center_view.aspx?AID=1642  , (2004).
</Text-field><Text-field layout="Normal" style="Normal">[2]  P.J. Olver, Applications of Lie Groups to Differential Equations, Springer-Verlag, New York, (1993).
</Text-field></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">2. Procedures</Text-field></Title><Section><Title><Text-field layout="Heading 2" style="Heading 2">Procedures Definitions</Text-field></Title><Group><Input><Text-field layout="Normal" style="Normal"><Font style="_cstyle220">koif -</Font>looks for an integrating factor for <Font style="_cstyle221">(rational</Font> <Font style="_cstyle222">type)</Font> non-linear ODEs of any order</Text-field><Text-field layout="Normal" style="Normal"><Font style="_cstyle223">partially_red_ode</Font> - looks for reduced ODEs for particular solutions to <Font style="_cstyle224">(rational</Font> <Font style="_cstyle225">type)</Font> ODEs of any order
</Text-field><Text-field layout="No Name" style="Text">Calling Sequences</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">koif(ode,y(x),con);</Text-field><Text-field layout="Normal" style="Normal">partially_red_ode(ode,y(x));         Note: The procedure <Font style="_cstyle227">partially_red_ode </Font>uses the procedure <Font style="_cstyle228">koif.</Font></Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="No Name" style="Text">Parameters</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">ode                              - ordinary differential equation (any order). </Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">y(x)                             - ODE's dependent variable. The <Font style="_cstyle229">first</Font> argument of y(x) <Font style="_cstyle230">must be ODE`s </Font>independent variable.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal">con                           - (optional) if there stands <Font style="_cstyle231">str</Font> the procedure is ended after calculation of hypothesis of integrating</Text-field><Text-field layout="Normal" style="Normal">                                    factor structure only.</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="No Name" style="Text">Output</Text-field><Text-field layout="Normal" style="Normal"> <Font style="_cstyle232">koif</Font>      - computed integrating factor(s) of given ODE.  The output may contain a set of integrating factors or integrating factor with arbitrary parameters <Equation input-equation="_X[i];" style="2D Comment">NiMmJSNfWEc2IyUiaUc=</Equation></Text-field><Text-field layout="Normal" style="Normal">with option <Font style="_cstyle233">str</Font>        - hypothesis of integrating  factor structure ;</Text-field><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"><Font style="_cstyle234">partially_red_ode</Font>   -  computed set of reduced ODEs for particular solutions to given ODE. </Text-field></Input></Group><Text-field layout="Normal" style="Normal"/><Text-field layout="Normal" style="Normal"/></Section><Text-field layout="Normal" style="Normal"/><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">with(ODETools):</Text-field></Input></Group><Text-field layout="Normal" style="Normal"/><Section><Title><Text-field layout="Heading 2" style="Heading 2">koif</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">koif :=proc(ode,y,con)
local f1,nu,num,d,den,Pro_Cand_Sel,Cand_Sel,Cand_Sel_fin,A,B,B1,B2,B3,B4,BOB,F,F1,F2,N,d1,d2,nu1,nu2,a_1,a_2,aun,ar1,ar10,ard4,a1,d3,d10,din,did,din1,did1,f,g,g1,j,j2,j0,i,i2,ik,k,kk,kmm,km,r,s,ss,t,u,n,_x,_Y_,hyp1,mu,mu1,ode1,unn,sols2,Largs,Sargs;
option `Copyright (c) 2004-2005 by Yuri N. Kosovtsov. All rights reserved.`;

Pro_Cand_Sel :=proc(Q,P,ar1,Sargs,h)
local a_a,i,ii,j,CAR,KK,KK1,KK2,RR;
KK :={};
KK2 :={};
try
RR :=[eliminate({Q, P},ar1)];
if nops(RR)&gt;0 then
 for j from 1 to nops(RR) do
  CAR :=numer(factor(a_a*lhs(ODETools[remove_RootOf]((lhs(op(1,op(1,op(j,RR))))-rhs(op(1,op(1,op(j,RR)))))))));
  if nops(CAR)&gt;1 then
    KK1 :=CAR;
    if type(KK1,`*`)=true then
     for i from 1 to nops(KK1) do
      if has(op(i,KK1),RootOf)=false and select(type,indets(op(i,KK1)),name) intersect Sargs &lt;&gt; {} then
        KK2 :=KK2 union {op(i,KK1)}
      fi;
     od;
     for ii from 1 to nops(KK2) do
       if type(op(ii,KK2),`^`)=true then 
         KK :=KK union {op(1,op(ii,KK2))} else KK :=KK union {op(ii,KK2)};
       fi;
     od;
      else KK :=KK union {KK2}
    fi;
   fi;

if h&lt;&gt;1 then
KK2 :={};
  if op(2,op(j,RR))&lt;&gt;{} then
    KK1 :=factor(a_a*op(1,op(2,op(j,RR))));
    if type(KK1,`*`)=true then
     for i from 1 to nops(KK1) do
      if select(type,indets(op(i,KK1)),name) intersect Sargs &lt;&gt; {} then
        KK2 :=KK2 union {op(i,KK1)}
      fi;
     od;
     for ii from 1 to nops(KK2) do
       if type(op(ii,KK2),`^`)=true then 
         KK :=KK union {op(1,op(ii,KK2))} else KK :=KK union {op(ii,KK2)};
       fi;
     od;
      else KK :=KK union {KK2}
    fi;
   fi;
  fi;
 od;
fi;
catch:
end try;
RETURN(KK)
end proc:

Cand_Sel :=proc(Q,nu,d,Largs,n)
local a_a,a,ar11,i,k,j,sols1,R1,DD,EQ1,YY,W,Can,Cand,RD_Cand;
Cand :={};
try
if nops(Q)&lt;&gt;0 then
YY :={seq(Y[jj], jj=1..nops(Q))};
W :=add(Y[ik]*op(ik,Q), ik=1..nops(Q));
RD_Cand :=diff(W,op(nops(Largs),Largs));
DD :=diff(W,op(1,Largs))+add(op(gg+2,Largs)*diff(W,op(gg+1,Largs)),gg=1..n-1);
a :=select(type,indets(W),name)  intersect convert(Largs,set);
if a&lt;&gt;{}then
 for i from 1 to nops(a) do
  ar11 :=op(i,a);
  R1 :=ar11=RootOf(W,ar11);
  EQ1 :=numer(factor(subs(R1,nu*RD_Cand+d*DD)));
  sols1 :={solve({EQ1},YY)};
   for k from 1 to nops(sols1) do
    if has(op(k,sols1),Largs)=false then 
      Can :=factor(a_a*subs(seq(Y[jjj]=1,jjj=1..nops(Q)),subs(op(k,sols1),W)));
      for j from 1 to nops(Can) do
        if (select(type,indets(op(j,Can)),name) intersect convert(Largs,set))&lt;&gt;{} then
          Cand := Cand union {op(j,Can)};
        fi;
      od;
    fi;
   od;
 od;
fi;
fi;
catch:
end try;
RETURN(Cand)
end proc:

Cand_Sel_fin := proc(F, nu,d,n)
 local a,aa,j,v,B2,Br,EQ,dd,jj,R1;
  B2 :={};
  if nops(F)&lt;&gt;0 then
    for j to nops(F) do
     try
      Br :=op(j,F);
      a :=diff(Br,op(n+1,Largs));
      dd := diff(Br,op(1,Largs))+add(op(g+2,Largs)*diff(Br,op(g+1,Largs)),g=1..n-1);
      aa :=select(type,indets(Br),name) intersect convert(Largs,set);
      for v from 1 to nops(aa) do 
         R1 :=op(v,aa)=RootOf(Br,op(v,aa));
         EQ :=simplify(numer(factor(subs(R1,nu*a+d*dd))));
         if EQ=0 then B2 :=B2 union {Br} fi;
      od;
      catch:
      end try;
    od;
  fi;
RETURN(B2);
end proc:

mu:={};
_x :=op(1,y);
n :=PDEtools[difforder](select(has,indets(ode),y));
_Y_ :=op(0,y);
Largs :=[_x,seq(_Y_[m],m=0..n-1)];
Sargs :=convert(Largs,set);
F :=subs({seq(diff(y,`$`(_x,i0))=_Y_[i0],i0=1..n),y=_Y_[0]},ode);
f :=[solve(F,_Y_[n])];
for j0 from 1 to nops(f) do
  f1 :=op(j0,f);
  nu :=numer(f1);
  d :=denom(f1);
  N :=(length(nu)+length(d))/2;
  B :={};  
  if type(nu,`*`)=true then nu1 :={op(nu)} else nu1 :={nu}; fi;
    nu2 :=nu1;
    for i to nops(nu1) do
      if select(type,indets(op(i,nu1)),name)={op(n+1,Largs)} then
      nu2 :=nu2 minus {op(i,nu1)};
        if type(op(i,nu1),`^`)=true then B :=B union {op(1,op(i,nu1))};
      else B :=B union {op(i,nu1)};
        fi;
      fi;
    od;
    num :=convert(nu2,`*`);
    if type(d,`*`)=true then d1 :={op(d)}; else d1 :={d}; fi;
    d2 :=d1;
      for j to nops(d1) do
        if type(op(j,d1),constant)=true then d2 :=d2 minus {op(j,d1)}; fi;
        if select(type,indets(op(j,d1)),name) intersect {op(n+1,Largs)}={}
          and type(op(j,d1),constant)=false then
          if type(op(j,d1),`^`)=true then B :=B union {op(1,op(j,d1))};
           else B :=B union {op(j,d1)};
          fi;
        fi; 
      od;
    den :=convert(d2,`*`);

#1
  B1 :={};
  B2 :={};
  B3 :={};

  for k from 1 to nops(d2) do
    ar10 :=select(type,indets(op(k,d2)),name);
      if ar10&lt;&gt;{} then
        for km from 1 to nops(ar10) do
          ar1 :=op(km,ar10);
a_1 :=Pro_Cand_Sel(op(k,d2),num,ar1,Sargs,0);
a1 :=sort(convert(a_1,list),length);

if nops(a1)&lt;3 then r :=nops(a1) else r :=nops(a1)-1 fi;
          for kk from 1 to r do
            if select(type,indets(op(kk,a1)),name) intersect Sargs &lt;&gt;{}then
              g1 :={};
             if length(op(kk,a1))&lt;N then g1 :=g1 union {op(kk,a1)} fi; 
              B3 :=B3 union g1;
            fi;
          od;
        od; 
      fi;
    od;
B1 :=B1 union Cand_Sel_fin(B3, nu,d,n);
B :=B union B1;
B1 :=B1 union B3;

nops(B); userinfo(2,{koif}, `1st round is performed, ` ||%|| ` candidates are obtained`); 
userinfo(3,{koif}, B);
#2
    B4 :={};
for s from 1 to nops(B1) do
    B2 :={};
    B3 :={};
  ar10 :=((select(type,indets(op(s,B1)),name) intersect select(type,indets(num),name) )intersect select(type,indets(d),name)) intersect Sargs;
  if ar10 &lt;&gt;{} then
   for kmm from 1 to nops(ar10) do
     ar1 :=op(kmm,ar10);
     a_1 :=Pro_Cand_Sel(op(s,B1),num,ar1,Sargs,0);
     a_2 :=Pro_Cand_Sel(op(s,B1),d,ar1,Sargs,0);
     aun :=Pro_Cand_Sel(op(s,B1),num,ar1,Sargs,1) union Pro_Cand_Sel(op(s,B1),d,ar1,Sargs,1);
     a1 :=a_1 intersect a_2;
      for ss from 1 to nops(a1) do
        if select(type,indets(op(ss,a1)),name) intersect {op(n+1,Largs)} &lt;&gt;{} then
          g :={op(ss,a1)};
          g1 :={};
          for i2 from 1 to nops(g) do
           if length(op(i2,g))&lt;N/2 then g1 :=g1 union {op(i2,g)} fi;
          od;
          B3 :=B3 union g1;
        fi;
      od;
      for j from 1 to nops(aun) do
       if select(type,indets(op(j,aun)),name) intersect {op(n+1,Largs)} &lt;&gt;{} then
          if length(op(j,aun))&lt;N/2 then g1 :=g1 union {op(j,aun)} fi;
          B2 :=B2 union g1;
       fi;
      od;
    od; 
  fi;
  B2 :=B2 union Cand_Sel(B3,nu,d,Largs,n);
  B4 :=B4 union Cand_Sel_fin(B2 union B3, nu,d,n);
od;
B :=B union B4;

BOB :=B;
for t from 1 to nops(B) do
if {-op(t,B)} intersect (BOB minus {op(t,B)})&lt;&gt;{} then BOB :=BOB minus {op(t,B)} fi; 
od;
B :=BOB;

nops(B); userinfo(2,{koif}, `2nd round is performed, ` ||%|| ` candidates are obtained`);
userinfo(3,{koif}, B);

#3
if B={} then
  F1 :={};
  F2 :={};
  ard4 := Sargs minus {op(n+1,Largs)};
  for j2 to nops(ard4) do
   din :=factor(a_a*simplify(diff(num,op(j2,ard4)))); 
   did :=factor(a_a*simplify(diff(den,op(j2,ard4))));
   if type (din,`*`)=true then din1 :={op(din)}; else din1 :={din}; fi;
   if type (did,`*`)=true then did1 :={op(did)}; else did1 :={did}; fi;
    for j from 1 to nops(din1) do   F1 :=F1 union Cand_Sel_fin({op(j,din1)}, nu,d,n) od;
    for j from 1 to nops(did1) do  F2 :=F2 union Cand_Sel_fin({op(j,did1)}, nu,d,n) od;
  od;
  B :=B union F1;
  B :=B union F2;

nops(B); userinfo(2,{koif}, `3rd round is performed, ` ||%|| ` candidates are obtained`);

fi;

   A :=product(op(l,B)^_X[l],l=1..nops(B));
  d10 :=d1;
  for u from 1 to nops(d1) do
   if type(op(u,d1),`^`)=true  then
    d2 :={op(1,op(u,d1))} else
    d2 :={op(u,d1)} 
   fi;
   if d2 intersect B &lt;&gt;{} then d10:=d10 minus {op(u,d1)} fi;
   if select(type,indets(op(u,d1)),name) intersect Sargs ={} then 
    d10 :=d10 minus {op(u,d1)} 
   fi;
  od;
   if d10={} then  mu1 :=1/A else d3:=convert(d10,`*`); mu1 :=d3/A; fi;
userinfo(2,{koif}, `Hypothesis of mu structure is found`,mu1);
  hyp1 :=subs(seq(_Y_[i3]=diff(y,`$`(_x,i3)),i3=1..(n-1)),_Y_[0]=y,mu1);
  ode1 :=diff(y,`$`(_x,n))-subs(seq(_Y_[i3]=diff(y,`$`(_x,i3)),i3=1..(n-1)),_Y_[0]=y,f1);
  if args[nargs]&lt;&gt;str then 
    unn :={seq(_X[l1],l1=1..nops(B))};
    sols2 :={solve({ODETools[gensys](ode1, _mu = hyp1,y)},unn)};
    for ik from 1 to nops(sols2) do
      if has(op(ik,sols2),Sargs union {op(0,y),seq(_Y_||i,i=1..n-1)})=false then 

        mu:=mu union {subs(op(ik,sols2),hyp1)};
      fi;
    od;
    else
        mu:=mu union {int_factor_form=hyp1};
  fi;
od;
 RETURN(mu)
end proc:

</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 2" style="Heading 2">partially_red_ode</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">partially_red_ode :=proc(ode,y)
local i,d, _x,n,red_ode,mu_str;
option `Copyright (c) 2005 by Yuri N. Kosovtsov. All rights reserved.`;
_x :=op(1,select(type,indets(y),name));
n :=PDEtools[difforder](select(has,indets(ode),y));
red_ode :={};
mu_str :=koif(ode,y,str);
for i from 1 to nops(mu_str) do
d :=denom(rhs(op(i,mu_str)));
red_ode :=red_ode union subs(seq(_X[j]=1,j=1..nops(d)),{op(d)})
od;
red_ode :=select(has, red_ode, diff(y,`$`(_x,n-1)));
RETURN(red_ode)
end proc:</Text-field></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Text-field layout="Normal" style="Normal"/></Section><Group><Input><Text-field layout="Normal" style="Normal">Execute p.2 before runing examples!</Text-field></Input></Group><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">3. Examples</Text-field></Title><Text-field layout="Normal" style="Normal"/><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">PDEtools[declare](y(x),prime=x):</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMqKC1JInlHNiI2I0kieEdGJiIiIkk5d2lsbH5ub3d+YmV+ZGlzcGxheWVkfmFzR0YmRilGJUYp</Equation></Text-field><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMqKEk8ZGVyaXZhdGl2ZXN+d2l0aH5yZXNwZWN0fnRvRzYiIiIiSSJ4R0YlRiZJWm9mfmZ1bmN0aW9uc35vZn5vbmV+dmFyaWFibGV+d2lsbH5ub3d+YmV+ZGlzcGxheWVkfndpdGh+J0dGJUYm</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">To control the process in progress you may use</Text-field></Input></Group><Group><Input><Text-field layout="No Name" style="Text">infolevel[koif] :=3;</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">with 2 or 3 in right-hand side.</Text-field></Input></Group><Section><Title><Text-field layout="Heading 1" style="Heading 1">3rd order ODE </Text-field></Title><Group><Input><Text-field layout="Normal" style="Text">It is a typical example for the method</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ode := (-21*diff(y(x),`$`(x,2))^2-14*(x^2+y(x))*diff(y(x),`$`(x,2))+3*a*x+3*diff(y(x),x))*diff(y(x),`$`(x,3)) - ((-14*x-7*diff(y(x),x)+3)*diff(y(x),`$`(x,2))^2+(3*a+x^2+y(x))*diff(y(x),`$`(x,2))+(y(x)-x^2-x*diff(y(x),x))*a-2*x*diff(y(x),x)-diff(y(x),x)^2)=0;</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSRvZGVHNiIvLC4qJiwqKiRJJHknJ0dGJSIiIyEjQComLCYqJEkieEdGJUYsIiIiSSJ5R0YlRjJGMkYrRjIhIzkqJkkiYUdGJUYyRjFGMiIiJEkjeSdHRiVGN0YySSV5JycnR0YlRjJGMiomLChGMUY0RjghIihGN0YyRjJGK0YsISIiKiYsKEY2RjdGMEYyRjNGMkYyRitGMkY9KiYsKEYzRjJGMEY9KiZGMUYyRjhGMkY9RjJGNkYyRj1GQkYsKiRGOEYsRjIiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">The procedure <Font style="_cstyle236">partially_red_ode</Font> obtains the following set of reduced ODEs (in sense that
a solution of a reduced ODE is a particular solution of the original ODE)</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">PRODE :=partially_red_ode(ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSZQUk9ERUc2IjwlLCgqJkkiYUdGJSIiIkkieEdGJUYqRioqJEkkeScnR0YlIiIjIiIoSSN5J0dGJUYqLCgqJEYrRi5GKkkieUdGJUYqRi0iIiQsLkYoRipGLEYvRjBGKkYyRipGM0YqRi1GNA==</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal258" style="Normal258">Note: The outputs of different program starts, as a matter of fact, are different, because Maple uses an ordering convenient for its implementation. So the ordering of the following answers can be rearranged.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal"/></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">Two of reduced ODEs can be easily solved by Maple and we obtain the following answers</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans1 :=[dsolve(op(1,PRODE))];</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSVhbnMxRzYiNyQvSSJ5R0YlLCgtSSRJbnRHNiRJKnByb3RlY3RlZEdGLUkoX3N5c2xpYkdGJTYkLCgqJkkiYUdGJSIiIkkieEdGJUYzISIiLUkkZXhwR0YsNiMsJC1JJ1Jvb3RPZkdGLDYjLCxGNEY1LUY3NiNJI19aR0YsIiIjRjIhIzlJJF9DMUdGJUYzKiZGMkYzLUkjbG5HRiw2IyokLCZGPkY1RjIiIzlGQUYzIiIoRkEjRjVGSyomLUY3NiNGOkYzRjJGM0ZBRjRGMyomRjJGQUY0RjMhIihJJF9DMkdGJUYzL0YoLCgtRis2JCwoRjFGNS1GNzYjLCQqJiwqKiZGMkYzLUkpTGFtYmVydFdHRiw2IywkKipGMkY1LUY3NiMsJComRjJGNUY0RjMjRjNGSkYzLUY3NiNGNUYzLUY3NiMsJComRjJGNUZDRjMjRjVGSkYzRkxGM0ZKRjRGNUYyRkpGQ0YzRjNGMkY1RkxGTComLUY3NiMsJEZlbkZob0YzRjJGM0ZBRjRGM0ZQRlFGUkYz</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans2 :=[dsolve(op(2,PRODE))];</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSVhbnMyRzYiNyMvSSJ5R0YlLCoqJi1JJHNpbkc2JEkqcHJvdGVjdGVkR0YuSShfc3lzbGliR0YlNiMsJComIiIkIyIiIiIiI0kieEdGJUY1I0Y1RjNGNUkkX0MyR0YlRjVGNSomLUkkY29zR0YtRjBGNUkkX0MxR0YlRjVGNSIiJ0Y1KiRGN0Y2ISIi</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans3 :=[dsolve(op(3,PRODE))];</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSVhbnMzRzYiNyMvSSJ5R0YlLUknJndoZXJlR0YlNiQsLEkjX2FHNiRJKnByb3RlY3RlZEdGL0koX3N5c2xpYkdGJSIiIiokLCYtSSRJbnRHRi42JC1JI19iR0YuNiNGLUYtRjFJJF9DMUdGJUYxIiIjISIiRjRGO0Y6RjsqJkkiYUdGJUYxRjNGMUY8NyU8Iy8mRjhGOSomLCYjISNEIiM5RjEqJComLCpGNyEjWiomRj5GMUY3RjEiI0chI0dGMSomRi1GMUY3RjFGTkYxRjdGPCNGMUY7I0YxRkdGMUY3IiIkPCQvRjcqJCwqSSN5J0dGJUYxSSJ4R0YlRjshIiNGMUY+RjFGPC9GLSwqRihGMSokRlhGO0YxRlhGWSomRj5GMUZYRjFGMTwkL0YoRiwvRlhGMw==</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">We have noted above that closed system of equations for components of a first integral gives us only necessary conditions for candidates to be such components. So we have to verify each solution of reduced ODE  to be correct.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">odetest(op(1,ans1),ode);</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">odetest(op(1,ans2),ode);</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">odetest(op(1,ans3),ode);</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">Maple does not find solutions of the third reduced ODE, but it is easy to show that the solutions of this equation are particular solutions of the original ODE too (see, e.g., the following line)</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">PDEtools[casesplit]({ode,op(1,PRODE)});</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMtSScmd2hlcmVHNiI2JDcjLyokSSR5JydHRiUiIiMsJiomSSJhR0YlIiIiSSJ4R0YlRi8jISIiIiIoSSN5J0dGJUYxNyI=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">In principle, for this ODE you can try to obtain a set of integrating factors </Text-field></Input></Group><Group><Input><Text-field layout="No Name" style="Text">mu :=koif(ode,y(x));</Text-field></Input></Group><Group><Input><Text-field layout="No Name" style="Text">ODETools[mutest](op(1,mu),ode);</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="Normal">and further find its general solution by standard integrating factor method, but this way requires much more time and memory.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 1" style="Heading 1">2nd order ODE with trigonometric functions </Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ode := diff(y(x),`$`(x,2)) = -(cos(y(x)+diff(y(x),x))*(x^2+2*x*diff(y(x),x)+beta*diff(y(x),x)^2)+(x+diff(y(x),x))*x*sin(y(x)+diff(y(x),x))*diff(y(x),x)*(beta*diff(y(x),x)+x))/(cos(y(x)+diff(y(x),x))*x*(beta-1)+sin(y(x)+diff(y(x),x))*(x+diff(y(x),x))*(beta*diff(y(x),x)+x))/x;</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSRvZGVHNiIvSSR5JydHRiUsJCooLCYqJi1JJGNvc0c2JEkqcHJvdGVjdGVkR0YvSShfc3lzbGliR0YlNiMsJkkieUdGJSIiIkkjeSdHRiVGNEY0LCgqJEkieEdGJSIiI0Y0KiZGOEY0RjVGNEY5KiZJJWJldGFHRiVGNEY1RjlGNEY0RjQqLCwmRjhGNEY1RjRGNEY4RjQtSSRzaW5HRi5GMUY0RjVGNCwmKiZGPEY0RjVGNEY0RjhGNEY0RjRGNCwmKihGLEY0RjhGNCwmRjxGNCEiIkY0RjRGNCooRj9GNEY+RjRGQUY0RjRGRkY4RkZGRg==</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">Here we are looking for reduced ODEs for particular solutions to ode</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">PRODE :=partially_red_ode(ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSZQUk9ERUc2IjwlLCZJInhHRiUiIiJJI3knR0YlRiksJiomSSViZXRhR0YlRilGKkYpRilGKEYpLCYqJi1JJGNvc0c2JEkqcHJvdGVjdGVkR0YzSShfc3lzbGliR0YlNiNJInlHRiVGKS1GMTYjRipGKUYpKiYtSSRzaW5HRjJGNUYpLUY7RjhGKSEiIg==</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">Maple solves reduced ODEs</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans1 :=[dsolve(op(1,PRODE))];
</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSVhbnMxRzYiNyMvSSJ5R0YlKiZeIyMhIiIiIiMiIiIsJiomLUkkZXhwRzYkSSpwcm90ZWN0ZWRHRjRJKF9zeXNsaWJHRiU2I0kieEdGJUYsSSRfQzFHRiVGLkYtKiZeI0YuRi5JI1BpR0Y0Ri5GLkYu</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans2 :=[dsolve(op(2,PRODE))];
</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSVhbnMyRzYiNyMvSSJ5R0YlLCYqJkkieEdGJSIiI0klYmV0YUdGJSEiIiNGLkYsSSRfQzFHRiUiIiI=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans3 :=[dsolve(op(3,PRODE))];
</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSVhbnMzRzYiNyMvSSJ5R0YlLCYqJEkieEdGJSIiIyMhIiJGLEkkX0MxR0YlIiIi</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">and we have to verify obtained particular solutions</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">odetest(op(1,ans1),ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">odetest(op(1,ans2),ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">odetest(op(1,ans3),ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiMiIiE=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Section><Title><Text-field layout="Heading 1" style="Heading 1">5th order ODE </Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ode := diff(y(x),`$`(x,5)) = -(1+diff(y(x),x)+diff(y(x),`$`(x,2))+diff(y(x),`$`(x,3))+diff(y(x),`$`(x,4)))*(diff(y(x),x)^2+(2*x+2*diff(y(x),`$`(x,2))+14*diff(y(x),`$`(x,4))+2*y(x)+2*diff(y(x),`$`(x,3)))*diff(y(x),x)+diff(y(x),`$`(x,2))^2+(2*x+14*diff(y(x),`$`(x,4))+2*y(x)+2*diff(y(x),`$`(x,3)))*diff(y(x),`$`(x,2))+diff(y(x),`$`(x,3))^2+(2*x+14*diff(y(x),`$`(x,4))+2*y(x))*diff(y(x),`$`(x,3))+49*diff(y(x),`$`(x,4))^2+(14*x+14*y(x))*diff(y(x),`$`(x,4))+1+x^2+2*x*y(x)+alpha+y(x)^2)/(3*diff(y(x),x)^2+(6*x+6*diff(y(x),`$`(x,2))+42*diff(y(x),`$`(x,4))+6*y(x)+6*diff(y(x),`$`(x,3)))*diff(y(x),x)+3*diff(y(x),`$`(x,2))^2+(6*x+42*diff(y(x),`$`(x,4))+6*y(x)+6*diff(y(x),`$`(x,3)))*diff(y(x),`$`(x,2))+3*diff(y(x),`$`(x,3))^2+(6*x+42*diff(y(x),`$`(x,4))+6*y(x))*diff(y(x),`$`(x,3))+147*diff(y(x),`$`(x,4))^2+(42*x+42*y(x))*diff(y(x),`$`(x,4))+3+3*x^2+6*x*y(x)+7*alpha+3*y(x)^2);</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSRvZGVHNiIvSSd5JycnJydHRiUsJCooLCwiIiJGK0kjeSdHRiVGK0kkeScnR0YlRitJJXknJydHRiVGK0kmeScnJydHRiVGK0YrLDwqJEYsIiIjRisqJiwsSSJ4R0YlRjJGLUYyRi8iIzlJInlHRiVGMkYuRjJGK0YsRitGKyokRi1GMkYrKiYsKkY1RjJGL0Y2RjdGMkYuRjJGK0YtRitGKyokRi5GMkYrKiYsKEY1RjJGL0Y2RjdGMkYrRi5GK0YrKiRGL0YyIiNcKiYsJkY1RjZGN0Y2RitGL0YrRitGK0YrKiRGNUYyRisqJkY1RitGN0YrRjJJJmFscGhhR0YlRisqJEY3RjJGK0YrLDxGMSIiJComLCxGNSIiJ0YtRkpGLyIjVUY3RkpGLkZKRitGLEYrRitGOEZHKiYsKkY1RkpGL0ZLRjdGSkYuRkpGK0YtRitGK0Y7RkcqJiwoRjVGSkYvRktGN0ZKRitGLkYrRitGPiIkWiIqJiwmRjVGS0Y3RktGK0YvRitGK0ZHRitGQkZHRkNGSkZEIiIoRkVGRyEiIkZU</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">Here we are looking for reduced ODEs for particular solutions to ode</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">PRODE :=partially_red_ode(ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSZQUk9ERUc2IjwjLE4iIiJGKCokSSJ4R0YlIiIjRigqJkYqRihJI3knR0YlRihGKyokSSR5JydHRiVGK0YoKiRGLUYrRigqJkYvRihJInlHRiVGKEYrKiZGL0YoRi1GKEYrKiZGMkYoRi1GKEYrKiRGMkYrRigqJkYvRihGKkYoRisqJEkleScnJ0dGJUYrRigqJEkmeScnJydHRiVGKyIjXComRjpGKEYyRigiIzkqJkYqRihGMkYoRisqJkY6RihGKkYoRj0qJkY4RihGMkYoRisqJkY4RihGOkYoRj0qJkYvRihGOEYoRisqJkYvRihGOkYoRj0qJkY4RihGLUYoRisqJkYtRihGOkYoRj0qJkY4RihGKkYoRis=</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">Maple solves reduced ODE</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ans :=[dsolve(op(1,PRODE))];
</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSRhbnNHNiI3JC9JInlHRiUsLl4kIiIiRitGK0kieEdGJSEiIiomSSRfQzFHRiVGKy1JJGV4cEc2JEkqcHJvdGVjdGVkR0YzSShfc3lzbGliR0YlNiMqJi1JJ1Jvb3RPZkdGMjYkLCxGK0YrSSNfWkdGMkYrKiRGOyIiI0YrKiRGOyIiJEYrKiRGOyIiJSIiKC9JJmluZGV4R0YyRkFGK0YsRitGK0YrKiZJJF9DMkdGJUYrLUYxNiMqJi1GODYkRjovRkRGK0YrRixGK0YrRisqJkkkX0MzR0YlRistRjE2IyomLUY4NiRGOi9GREY/RitGLEYrRitGKyomSSRfQzRHRiVGKy1GMTYjKiYtRjg2JEY6L0ZERj1GK0YsRitGK0YrL0YoLC5eJEYrRi1GK0YsRi1GLkYrRkVGK0ZNRitGVUYr</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">and we have to verify obtained particular solutions, but this may require much time and memory.</Text-field></Input></Group><Group><Input><Text-field layout="Normal" style="_cstyle21">odetest(op(1,ans),ode,y(x));</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Section collapsed="true"><Title><Text-field layout="Heading 1" style="Heading 1">1150th order ODE</Text-field></Title><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">OFF;</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ode := diff(y(x),`$`(x,1150)) = (((14*alpha-3)*diff(y(x),`$`(x,1149))+2*alpha*x-alpha*y(x)-3*x^2)*diff(y(x),x)+(28*x-3)*diff(y(x),`$`(x,1149))+x^2+4*x*y(x)-3*alpha*y(x))/(-2*x-2*y(x)+7*diff(y(x),`$`(x,1149))+21*x^2+21*alpha*y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSRvZGVHNiIvLUklZGlmZkdJKnByb3RlY3RlZEdGKTYkLUkieUdGJTYjSSJ4R0YlLUkiJEdGKTYkRi4iJV02KiYsLComLCoqJiwmSSZhbHBoYUdGJSIjOSEiJCIiIkY8LUYoNiRGKy1GMDYkRi4iJVw2RjxGPComRjlGPEYuRjwiIiMqJkY5RjxGK0Y8ISIiKiRGLkZDRjtGPC1GKDYkRitGLkY8RjwqJiwmRi4iI0dGO0Y8RjxGPUY8RjxGRkY8KiZGLkY8RitGPCIiJUZERjtGPCwsRi4hIiNGK0ZPRj0iIihGRiIjQEZERlFGRQ==</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">PRODE :=partially_red_ode(ode,y(x));</Text-field></Input><Output><Text-field layout="Maple Output" style="2D Output"><Equation style="2D Output">NiM+SSZQUk9ERUc2IjwkLCgqJkkmYWxwaGFHRiUiIiItSSJ5R0YlNiNJInhHRiVGKkYqKiRGLiIiI0YqLUklZGlmZkdJKnByb3RlY3RlZEdGMzYkRistSSIkR0YzNiRGLiIlXDZGKiwoRi5GKkYrRipGMSIiKA==</Equation></Text-field></Output></Group><Group><Input><Text-field layout="Normal" style="Normal">Maple can solve reduced ODEs, but it requires plenty of time and space to display</Text-field></Input></Group><Group><Input><Text-field layout="No Name" style="Text">ans :=dsolve(op(1,PRODE));</Text-field></Input></Group><Group><Input><Text-field layout="No Name" style="Text">odetest(ans,ode);</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input">ON;</Text-field></Input></Group><Group><Input><Text-field layout="Normal" prompt="&gt; " style="Maple Input"/></Input></Group><Text-field layout="Normal" style="Normal"/></Section><Text-field layout="Normal" style="Normal"/></Section><Group><Input><Text-field layout="Normal" style="Normal">Legal Notice: 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.</Text-field></Input></Group><Text-field/><Text-field/></Worksheet>