 
													Maple
シンプルな操作性の高度数学ソフトウェア
• 教育機関向け Maple • 学生向け Maple • Maple Learn • Maple Calculator App • 企業及び官公庁向け Maple • 個人利用向け Maple 
													Maple Add-Ons
• 学生向けEブック & 学習ガイド • Maple ツールボックス • MapleNet • 無償版 Maple Player 
                                                    Student Success Platform
定着率の向上
Maple Flow
Engineering calculations & documentation
• Maple Flow • Maple Flow Migration Assistant 
                                                    
 
                             
													  
													  
                                                     
                                                     
													 
                            
 
  and
 and  are rational functions of x, and
 are rational functions of x, and  is the solution of some other linear ODE. Then the new algorithm can compute that other linear ODE and solve it, provided that it admits solutions of the form
is the solution of some other linear ODE. Then the new algorithm can compute that other linear ODE and solve it, provided that it admits solutions of the form ![Y(x) = `*`(exp(int(r(x), x)), `*`(hypergeom([a, b], [c], f(x))));](ode-pde/PDEBC_5.gif) 
  and
 and  are rational functions of x,
 are rational functions of x,  is the hypergeomtric function and a, b, and c are arbitrary constants. The new algorithms use modular reduction, Hensel lifting, rational function reconstruction, and rational number reconstruction.
 is the hypergeomtric function and a, b, and c are arbitrary constants. The new algorithms use modular reduction, Hensel lifting, rational function reconstruction, and rational number reconstruction.   nor the number of singularities of the input equation. The implementation follows the presentation by Imamoglu, E. and van Hoeij, M. "Computing Hypergeometric Solutions of Second Order Linear Differential Equations using Quotients of Formal Solutions and Integral Bases", Journal of Symbolic Computation, 83, (2017): 254-271.
 nor the number of singularities of the input equation. The implementation follows the presentation by Imamoglu, E. and van Hoeij, M. "Computing Hypergeometric Solutions of Second Order Linear Differential Equations using Quotients of Formal Solutions and Integral Bases", Journal of Symbolic Computation, 83, (2017): 254-271. ![Y(x) = `*`(exp(int(r(x), x)), `*`(hypergeom([a, b], [c], f(x))));](ode-pde/PDEBC_10.gif) 
 


![y(x) = `+`(`/`(`*`(_C1, `*`(hypergeom([-`/`(1, 2), `/`(1, 2)], [1], `/`(`*`(`^`(`+`(`*`(4, `*`(x)), 1), 2)), `*`(`^`(`+`(`*`(4, `*`(x)), `-`(1)), 2)))))), `*`(`^`(x, 2))), `/`(`*`(_C2, `*`(hypergeom([...](ode-pde/PDEBC_14.gif)
 
 

![y(x) = `+`(`*`(_C1, `*`(`+`(`-`(`/`(`*`(`+`(`*`(4, `*`(x)), 1), `*`(hypergeom([`/`(1, 2), `/`(1, 2)], [1], `+`(`*`(16, `*`(`^`(x, 2))))))), `*`(`+`(`*`(2, `*`(x)), `-`(1)), `*`(`^`(x, 2))))), `/`(`*`(...](ode-pde/PDEBC_18.gif)
![y(x) = `+`(`*`(_C1, `*`(`+`(`-`(`/`(`*`(`+`(`*`(4, `*`(x)), 1), `*`(hypergeom([`/`(1, 2), `/`(1, 2)], [1], `+`(`*`(16, `*`(`^`(x, 2))))))), `*`(`+`(`*`(2, `*`(x)), `-`(1)), `*`(`^`(x, 2))))), `/`(`*`(...](ode-pde/PDEBC_19.gif)



![y(x) = `+`(`/`(`*`(_C1, `*`(`^`(`+`(`*`(4, `*`(x)), `-`(3)), `/`(1, 2)), `*`(`+`(`*`(4, `*`(hypergeom([`/`(3, 2), `/`(3, 2)], [2], `+`(`*`(16, `*`(`^`(x, 2))))), `*`(x))), `-`(hypergeom([`/`(3, 2), `/...](ode-pde/PDEBC_23.gif)
![y(x) = `+`(`/`(`*`(_C1, `*`(`^`(`+`(`*`(4, `*`(x)), `-`(3)), `/`(1, 2)), `*`(`+`(`*`(4, `*`(hypergeom([`/`(3, 2), `/`(3, 2)], [2], `+`(`*`(16, `*`(`^`(x, 2))))), `*`(x))), `-`(hypergeom([`/`(3, 2), `/...](ode-pde/PDEBC_24.gif)
![odetest(y(x) = `+`(`/`(`*`(_C1, `*`(`^`(`+`(`*`(4, `*`(x)), `-`(3)), `/`(1, 2)), `*`(`+`(`*`(4, `*`(hypergeom([`/`(3, 2), `/`(3, 2)], [2], `+`(`*`(16, `*`(`^`(x, 2))))), `*`(x))), `-`(hypergeom([`/`(3...](ode-pde/PDEBC_25.gif)






![dsolve(ode__4, [hypergeometricsols]);](ode-pde/PDEBC_32.gif)










![pdsolve([pde__1, iv__1]);](ode-pde/PDEBC_43.gif)
![u(r, t) = `casesplit/ans`(Sum(`+`(`-`(`/`(`*`(BesselJ(0, `*`(lambda[n], `*`(r))), `*`(Pi, `*`(`+`(`*`(BesselJ(1, lambda[n]), `*`(StruveH(0, lambda[n]))), `-`(`*`(BesselJ(0, lambda[n]), `*`(StruveH(1, ...](ode-pde/PDEBC_44.gif)


![pdsolve([pde__2, iv__2]);](ode-pde/PDEBC_47.gif)
![u(r, z, t) = `casesplit/ans`(Sum(Sum(`+`(`/`(`*`(4, `*`(BesselJ(0, `*`(lambda[n1], `*`(r))), `*`(sin(`*`(n, `*`(Pi, `*`(z)))), `*`(exp(`+`(`-`(`*`(t, `*`(`+`(`*`(`^`(Pi, 2), `*`(`^`(n, 2))), `*`(`^`(l...](ode-pde/PDEBC_48.gif)
![u(r, z, t) = `casesplit/ans`(Sum(Sum(`+`(`/`(`*`(4, `*`(BesselJ(0, `*`(lambda[n1], `*`(r))), `*`(sin(`*`(n, `*`(Pi, `*`(z)))), `*`(exp(`+`(`-`(`*`(t, `*`(`+`(`*`(`^`(Pi, 2), `*`(`^`(n, 2))), `*`(`^`(l...](ode-pde/PDEBC_49.gif)

)(x, 0) = `*`(`^`(sin(x), 2)), u(`+`(`-`(Pi)), t) = 0, u(Pi, t) = 0; -1](ode-pde/PDEBC_51.gif)
![pdsolve([pde__3, iv__3]);](ode-pde/PDEBC_52.gif)



![`assuming`([pdsolve([pde__4, iv__4], HINT = boundedseries(x = infinity))], [`<`(0, x), `<`(0, y)]);](ode-pde/PDEBC_56.gif)



![pdsolve([pde__5, iv__5]);](ode-pde/PDEBC_60.gif)


)(`+`(`-`(Pi)), t) = (D[1](u))(Pi, t); -1](ode-pde/PDEBC_63.gif)
![pdsolve([pde__6, iv__6]);](ode-pde/PDEBC_64.gif)


)(x, 0) = 0, u(x, 0) = f(x), u(0, t) = 0, u(Pi, t) = 0; -1](ode-pde/PDEBC_67.gif)
![`assuming`([pdsolve([pde__7, iv__7], u(x, t))], [`<`(0, t)]);](ode-pde/PDEBC_68.gif)

 , where the solution method consists of splitting the problem into two PDE & BC problems and the solution is the sum of those two solutions
, where the solution method consists of splitting the problem into two PDE & BC problems and the solution is the sum of those two solutions 

![pdsolve([pde__8, iv__8]);](ode-pde/PDEBC_73.gif)

 
 
)(r, `+`(`*`(`/`(1, 2), `*`(Pi)))) = 0, u(1, t) = 0, (D[1](u))(2, t) = t; -1](ode-pde/PDEBC_78.gif)
![pdsolve([pde__9, iv__9]);](ode-pde/PDEBC_79.gif)

 , and boundary conditions that are periodic as
, and boundary conditions that are periodic as  
 

![`assuming`([pdsolve([pde__10, iv__10], u(x, t))], [`<`(a, b)]);](ode-pde/PDEBC_86.gif)


)(a, t) = 0, upsilon(`+`(l, a), t) = 0, upsilon(xi, 0) = f(xi, a); -1](ode-pde/PDEBC_90.gif)
![`assuming`([pdsolve([pde__11, iv__11], upsilon(xi, t))], [`<`(0, a), `<`(0, l)]);](ode-pde/PDEBC_91.gif)


)(0, t), `*`((D[1](u))(0, t), `*`(u(0, t)))) = 0; -1](ode-pde/PDEBC_94.gif)
![pdsolve([pde__12, iv__12]);](ode-pde/PDEBC_95.gif)


)(xi, y, 0) = 0, upsilon(xi, y,...](ode-pde/PDEBC_98.gif)
![pdsolve([pde__13, iv__13]);](ode-pde/PDEBC_99.gif)


)(3, t) = 0, (D[2](u))(x, 0) = 0, u(x, 0) = piecewise(`and`(`<=`(0, x), `<=`(x, 1)), `+`(`*`(`/`(1, 10), `*`(x))), `and`(`<`(1, x), `<=`(x, 3)), `/`(1, 10)); -1](ode-pde/PDEBC_102.gif)
![pdsolve([pde__14, iv__14]);](ode-pde/PDEBC_103.gif)





![sol := pdsolve([pde__1, iv__1]);](ode-pde/PDEBC_109.gif)



![pdsolve([pde__2, iv__2]);](ode-pde/PDEBC_113.gif)




)(r, 0) = 0; -1](ode-pde/PDEBC_118.gif)

![`assuming`([pdsolve([pde__3, iv__3], method = Hankel)], [`>`(r, 0), `>`(t, 0), `>`(a, 0)]);](ode-pde/PDEBC_120.gif)

 one the solving method is shown step by step.
 one the solving method is shown step by step. 

















 can be written as an ODE with respect to t by taking the derivatives of
 can be written as an ODE with respect to t by taking the derivatives of  with respect to x and z as auxiliary arbitrary functions of t according to
with respect to x and z as auxiliary arbitrary functions of t according to ![auxiliary_functions := [A__x(t) = diff(E(t, x, z), x), A__z(t) = diff(E(t, x, z), z), A__xz(t) = diff(E(t, x, z), x, z), E__0(t) = E(t, x, z)]; -1](ode-pde/PDEBC_143.gif)

 ,
,  and
 and  , the problem is in reach of dsolve's algorithms, so solve this
, the problem is in reach of dsolve's algorithms, so solve this  for
 for  
 

 by one. Depending on the problem, more than one reduction of order may occur.
 by one. Depending on the problem, more than one reduction of order may occur.




![Typesetting:-mprintslash([_F1(x, t) = `+`(`-`(`/`(`*`(`+`(`*`(diff(E(t, x, z), x, z), `*`(E(t, x, z))), `-`(`*`(diff(E(t, x, z), x), `*`(diff(E(t, x, z), z)))))), `*`(`^`(E(t, x, z), 2)))))], [_F1(x, ...](ode-pde/PDEBC_158.gif)
![auxiliary_functions := [A__z(x) = diff(E(t, x, z), z), E__0(x) = E(t, x, z)]; -1](ode-pde/PDEBC_159.gif)

![Typesetting:-mprintslash([ODE__x := _F1(x, z) = `+`(`-`(`/`(`*`(`+`(`*`(diff(A__z(x), x), `*`(E__0(x))), `-`(`*`(diff(E__0(x), x), `*`(A__z(x)))))), `*`(`^`(E__0(x), 2)))))], [_F1(x, z) = `+`(`-`(`/`(...](ode-pde/PDEBC_161.gif)

![Typesetting:-mprintslash([E__0(x) = `/`(`*`(A__z(x)), `*`(`+`(Int(`+`(`-`(_F1(x, z))), x), _C1)))], [E__0(x) = `/`(`*`(A__z(x)), `*`(`+`(Int(`+`(`-`(_F1(x, z))), x), _C1)))])](ode-pde/PDEBC_163.gif)

![Typesetting:-mprintslash([_C1 = `+`(`-`(`/`(`*`(`+`(`*`(E__0(x), `*`(Int(`+`(`-`(_F1(x, z))), x))), `-`(A__z(x)))), `*`(E__0(x)))))], [_C1 = `+`(`-`(`/`(`*`(`+`(`*`(E__0(x), `*`(Int(`+`(`-`(_F1(x, z))...](ode-pde/PDEBC_165.gif)

![Typesetting:-mprintslash([_F2(t, z) = `+`(`-`(`/`(`*`(`+`(`*`(E__0(x), `*`(Int(`+`(`-`(_F1(x, z))), x))), `-`(A__z(x)))), `*`(E__0(x)))))], [_F2(t, z) = `+`(`-`(`/`(`*`(`+`(`*`(E__0(x), `*`(Int(`+`(`-...](ode-pde/PDEBC_167.gif)
 end proc;](ode-pde/PDEBC_168.gif) 
 ]);](ode-pde/PDEBC_169.gif)


![Typesetting:-mprintslash([_F2(t, z) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(E(t, x, z), `*`(_F1(x, z)))), `-`(diff(E(t, x, z), z)))), `*`(E(t, x, z)))))], [_F2(t, z) = `+`(`-`(`/`(`*`(`+`(`-`(`*`(E(t, x, z), `*...](ode-pde/PDEBC_172.gif)
 is
 is 
![Typesetting:-mprintslash([E(t, x, z) = `*`(_F3(t, x), `*`(exp(Int(`+`(_F2(t, z), `-`(_F1(x, z))), z))))], [E(t, x, z) = `*`(_F3(t, x), `*`(exp(Int(`+`(_F2(t, z), `-`(_F1(x, z))), z))))])](ode-pde/PDEBC_175.gif)
 end proc;](ode-pde/PDEBC_176.gif) and
 and  end proc;](ode-pde/PDEBC_177.gif) 
 , _F1 = D[2](_F1)]);](ode-pde/PDEBC_178.gif)

 
 



 of the PDE's jet space - by equating to 0 its total derivative with respect to (any) one of the independent variables of the original problem. The resulting PDE is of first order and can be tackled using the characteristic strip method.
 of the PDE's jet space - by equating to 0 its total derivative with respect to (any) one of the independent variables of the original problem. The resulting PDE is of first order and can be tackled using the characteristic strip method.  can be solved, the solution is an arbitrary function of the differential invariants of the PDE for
 can be solved, the solution is an arbitrary function of the differential invariants of the PDE for  .  Equate one such differential invariant to an arbitrary function of the remaining independent variables of the problem, resulting in a pde of reduced order with respect to the original PDE problem, a first integral. At this point one can either repeat the process to calculate more first integrals in order to attempt an algebraic elimination (multiple reduction of order) or move again to Step 1 with the reduced order PDE.
.  Equate one such differential invariant to an arbitrary function of the remaining independent variables of the problem, resulting in a pde of reduced order with respect to the original PDE problem, a first integral. At this point one can either repeat the process to calculate more first integrals in order to attempt an algebraic elimination (multiple reduction of order) or move again to Step 1 with the reduced order PDE. 


![Typesetting:-mprintslash([pde__1 := `+`(diff(u(x, y), x), `-`(diff(u(x, y), x, y)))], [`+`(diff(u(x, y), x), `-`(diff(diff(u(x, y), x), y)))])](ode-pde/PDEBC_191.gif)

![Typesetting:-mprintslash([u(x, y) = `*`(`+`(Int(`*`(_F1(y), `*`(exp(`+`(`-`(y))))), y), _F2(x)), `*`(exp(y)))], [u(x, y) = `*`(`+`(Int(`*`(_F1(y), `*`(exp(`+`(`-`(y))))), y), _F2(x)), `*`(exp(y)))])](ode-pde/PDEBC_193.gif)


 , where
, where ![Q = (x, y, u, u[x], u[y]);](ode-pde/PDEBC_197.gif) , the jet space of
, the jet space of 
![Q := x, y, u, u[x], u[y];](ode-pde/PDEBC_199.gif)
![Typesetting:-mprintslash([Q := x, y, u, u[x], u[y]], [x, y, u, u[x], u[y]])](ode-pde/PDEBC_200.gif)

![`*`(` Phi`(x, y, u, u[x], u[y]), `*`(`will now be displayed as`, `*`(Phi)))](ode-pde/PDEBC_202.gif)
 with respect to x
 with respect to x 

 , and that is all the formulation of the problem
, and that is all the formulation of the problem ![isolate(ToJet(pde__1, u(x, y)), u[x, y]);](ode-pde/PDEBC_207.gif)
![u[x, y] = u[x]](ode-pde/PDEBC_208.gif)
![`PDE__Φ` := subs(u[x, y] = u[x], `+`(diff(Phi(x, y, u, u[x], u[y]), x), `*`(diff(Phi(x, y, u, u[x], u[y]), u), `*`(u[x])), `*`(diff(Phi(x, y, u, u[x], u[y]), u[x]), `*`(u[x, x])), `*`(diff(Phi(x, ...](ode-pde/PDEBC_209.gif)

 , and in doing so, the solution cannot depend on
, and in doing so, the solution cannot depend on ![u[x, x];](ode-pde/PDEBC_212.gif) (it can only depend on
 (it can only depend on  . You can achieve that using the ivars option of pdsolve
. You can achieve that using the ivars option of pdsolve ![pdsolve(`PDE__Φ`, ivars = u[x, x]);](ode-pde/PDEBC_214.gif)

 is a first integral, the arguments of the arbitrary function entering this solution are also first integrals. Take the second one, which involves 1st order derivatives, and equate it to an arbitrary function all the independent variables but x (the variable used when taking the total derivative of
 is a first integral, the arguments of the arbitrary function entering this solution are also first integrals. Take the second one, which involves 1st order derivatives, and equate it to an arbitrary function all the independent variables but x (the variable used when taking the total derivative of  . In this case, there is only one other variable, y.
. In this case, there is only one other variable, y. ![op([1, 2, 2], {Phi(x, y, u, u[x], u[y]) = _F1(y, `+`(`-`(u), u[y]))}) = _F1(y);](ode-pde/PDEBC_218.gif)
![`+`(`-`(u), u[y]) = _F1(y)](ode-pde/PDEBC_219.gif)
![FromJet(`+`(`-`(u), u[y]) = _F1(y), u(x, y));](ode-pde/PDEBC_220.gif)

 
 
![Typesetting:-mprintslash([u(x, y) = `*`(`+`(Int(`*`(_F1(y), `*`(exp(`+`(`-`(y))))), y), _F2(x)), `*`(exp(y)))], [u(x, y) = `*`(`+`(Int(`*`(_F1(y), `*`(exp(`+`(`-`(y))))), y), _F2(x)), `*`(exp(y)))])](ode-pde/PDEBC_224.gif)







 involving three constant parameters
involving three constant parameters  . For convenience (simpler input and more readable output) use the diff_table and declare commands:
. For convenience (simpler input and more readable output) use the diff_table and declare commands: 


![pde__1 := `+`(`*`(b, `*`(U[], `*`(U[x]))), `*`(a, `*`(U[x])), `*`(q, `*`(U[x, x, x])), U[t]) = 0;](ode-pde/PDEBC_239.gif)
![Typesetting:-mprintslash([pde__1 := `+`(`*`(b, `*`(u(x, t), `*`(diff(u(x, t), x)))), `*`(a, `*`(diff(u(x, t), x))), `*`(q, `*`(diff(u(x, t), `$`(x, 3)))), diff(u(x, t), t)) = 0], [`+`(`*`(b, `*`(u(x, ...](ode-pde/PDEBC_240.gif)
![declare(U[]);](ode-pde/PDEBC_241.gif)

 admits a 4-dimensional symmetry group, whose infinitesimals - for arbitrary values of the parameters
 admits a 4-dimensional symmetry group, whose infinitesimals - for arbitrary values of the parameters  - are given by
- are given by ![I__1 := Infinitesimals(pde__1, [u], specialize_Cn = false);](ode-pde/PDEBC_245.gif)
 = `+`(`*`(`/`(1, 3), `*`(_C1, `*`(x))), `*`(_C3, `*`(t)), _C4), _xi[t](x, t, u) = `+`(`*`(_C1, `*`(t)), _C2), _eta[u](x, t, u) = `+`(`/`(`*`(`/`(1, 3...](ode-pde/PDEBC_246.gif)
 as a nonlinear problem in u, a, b and q, it splits into four cases for some particular values of the parameters:
 as a nonlinear problem in u, a, b and q, it splits into four cases for some particular values of the parameters:







 , but clearly the other three cases admit more general symmetries. Consider for instance the second case, use
, but clearly the other three cases admit more general symmetries. Consider for instance the second case, use  to ignore the parameterizing equation
 to ignore the parameterizing equation  when computing the determining PDE for the infinitesimals, and you get
 when computing the determining PDE for the infinitesimals, and you get ![I__2 := Infinitesimals(pde__cases[2], ignore); 1](ode-pde/PDEBC_260.gif)




 , in fact so general that (62) is almost unreadable. Specialize the three arbitrary functions into something "easy" just to be able to follow - e.g. take _F1 to be the + operator, _F2 = *, and
, in fact so general that (62) is almost unreadable. Specialize the three arbitrary functions into something "easy" just to be able to follow - e.g. take _F1 to be the + operator, _F2 = *, and  
 ![eval(I__2, [_F1 = `+`, _F2 = `*`, _F3 = 1]);](ode-pde/PDEBC_268.gif)

 = 1, _xi[t](x, t, u) = `+`(Intat(`+`(`-`(`/`(`*`(`+`(u, `/`(`*`(`+`(`*`(`+`(`*`(b, `*`(u)), a), `*`(t)), `-`(x))), `*`(`+`(`*`(b, `*`(u)), a)))), `*`(b)), `*`(`^`(`+`(`...](ode-pde/PDEBC_270.gif)
 = 1, _xi[t](x, t, u) = `/`(`*`(`+`(`*`(`^`(b, 3), `*`(t, `*`(`^`(u, 4)))), `*`(`+`(`*`(`+`(`*`(3, `*`(a, `*`(t))), `-`(x)), `*`(`^`(u, 3))), `-`(`*`(`^`(u, 2), `*`(x))), `-`(`*`(t, `*...](ode-pde/PDEBC_271.gif)
 = 1, _xi[t](x, t, u) = `/`(`*`(`+`(`*`(`^`(b, 3), `*`(t, `*`(`^`(u, 4)))), `*`(`+`(`*`(`+`(`*`(3, `*`(a, `*`(t))), `-`(x)), `*`(`^`(u, 3))), `-`(`*`(`^`(u, 2), `*`(x))), `-`(`*`(t, `*...](ode-pde/PDEBC_272.gif)
![pde__cases[2];](ode-pde/PDEBC_275.gif) or directly against pde after substituting
 or directly against pde after substituting  .
.  = 1, _xi[t](x, t, u) = `/`(`*`(`+`(`*`(`^`(b, 3), `*`(t, `*`(`^`(u, 4)))), `*`(`+`(`*`(`+`(`*`(3, `*`(a, `*`(t))), `-`(x)), `*`(`^`(u, 3))), `-`(`*`(`^`(u, 2), `*`(x))), ...](ode-pde/PDEBC_277.gif)


 = 1, _xi[t](x, t, u) = `/`(`*`(`+`(`*`(`^`(b, 3), `*`(t, `*`(`^`(u, 4)))), `*`(`+`(`*`(`+`(`*`(3, `*`(a, `*`(t))), `-`(x)), `*`(`^`(u, 3))), `-`(`*`(`^`(u, 2), `*`(x))), ...](ode-pde/PDEBC_280.gif)

 , see the next section)
, see the next section) ![I__2 := Infinitesimals(pde__1, [u], specialize_Cn = false, parameters = {a, b, q}, continuousparameters = false);](ode-pde/PDEBC_284.gif)





 ), such continuous symmetry transformations cannot be used directly to compute a solution for pde. They can, however, be used to reduce the number of parameters. And in some contexts, that is exactly what we need, for example to entirely remove the splitting into cases due to their presence, or to apply a solving method that is valid only when there are no parameters (frequently the case when computing exact solutions to PDEs with boundary conditions).
), such continuous symmetry transformations cannot be used directly to compute a solution for pde. They can, however, be used to reduce the number of parameters. And in some contexts, that is exactly what we need, for example to entirely remove the splitting into cases due to their presence, or to apply a solving method that is valid only when there are no parameters (frequently the case when computing exact solutions to PDEs with boundary conditions).  by
 by  
 



 , for readability, avoid displaying the redundant functionality
, for readability, avoid displaying the redundant functionality  on the left-hand sides
 on the left-hand sides 
![[_xi[x] = `+`(`/`(`*`(`/`(1, 3), `*`(`+`(`*`(_F4(a, b, q), `*`(q)), _F3(a, b, q)), `*`(x))), `*`(q)), `*`(_F6(a, b, q), `*`(t)), _F7(a, b, q)), _xi[t] = `+`(`*`(_F4(a, b, q), `*`(t)), _F5(a, b, q)), _...](ode-pde/PDEBC_301.gif)
![[_xi[x] = `+`(`/`(`*`(`/`(1, 3), `*`(`+`(`*`(_F4(a, b, q), `*`(q)), _F3(a, b, q)), `*`(x))), `*`(q)), `*`(_F6(a, b, q), `*`(t)), _F7(a, b, q)), _xi[t] = `+`(`*`(_F4(a, b, q), `*`(t)), _F5(a, b, q)), _...](ode-pde/PDEBC_302.gif)
![[_xi[x] = `+`(`/`(`*`(`/`(1, 3), `*`(`+`(`*`(_F4(a, b, q), `*`(q)), _F3(a, b, q)), `*`(x))), `*`(q)), `*`(_F6(a, b, q), `*`(t)), _F7(a, b, q)), _xi[t] = `+`(`*`(_F4(a, b, q), `*`(t)), _F5(a, b, q)), _...](ode-pde/PDEBC_303.gif)
 and
and  . This result is more general than what is convenient for algebraic manipulations, so specialize the seven arbitrary functions of
. This result is more general than what is convenient for algebraic manipulations, so specialize the seven arbitrary functions of  and keep only the first symmetry that results from this specialization: that suffices to illustrate the removal of any of the three parameters a, b, and q
 and keep only the first symmetry that results from this specialization: that suffices to illustrate the removal of any of the three parameters a, b, and q ![S := Library:-Specialize_Fn([_xi[x] = `+`(`/`(`*`(`/`(1, 3), `*`(`+`(`*`(_F4(a, b, q), `*`(q)), _F3(a, b, q)), `*`(x))), `*`(q)), `*`(_F6(a, b, q), `*`(t)), _F7(a, b, q)), _xi[t] = `+`(`*`(_F4(a, b, q...](ode-pde/PDEBC_308.gif)
![Typesetting:-mprintslash([S := [_xi[x] = 0, _xi[t] = 0, _xi[a] = 1, _xi[b] = 0, _xi[q] = 0, _eta[u] = `+`(`-`(`/`(1, `*`(b))))]], [[_xi[x] = 0, _xi[t] = 0, _xi[a] = 1, _xi[b] = 0, _xi[q] = 0, _eta[u] ...](ode-pde/PDEBC_309.gif)
![InfinitesimalGenerator(S, [u(x, t, a, b, q)]);](ode-pde/PDEBC_310.gif)

![[_xi[x] = 0, _xi[t] = 0, _xi[a] = 1, _xi[b] = 0, _xi[q] = 0, _eta[u] = 0];](ode-pde/PDEBC_312.gif) , or its equivalent generator representation
, or its equivalent generator representation   . That same transformation, when applied to
. That same transformation, when applied to  , entirely removes the parameter a.
, entirely removes the parameter a. ![CanonicalCoordinates(S, [u(x, t, a, b, q)], [upsilon(xi, tau, alpha, beta, chi)], a);](ode-pde/PDEBC_315.gif)
![Typesetting:-mprintslash([{alpha = a, beta = b, chi = q, tau = t, xi = x, upsilon(xi, tau, alpha, beta, chi) = `/`(`*`(`+`(`*`(b, `*`(u(x, t, a, b, q))), a)), `*`(b))}], [{alpha = a, beta = b, chi = q...](ode-pde/PDEBC_316.gif)





 
 

 
 

 , and
, and  , and the one equivalent to a (that is
, and the one equivalent to a (that is  , see the transformation used (75)), is not present anymore.
, see the transformation used (75)), is not present anymore.  ), input
), input ![CanonicalCoordinates(S, [u(x, t, a, b, q)], [upsilon(xi, tau, alpha, beta, chi)], b);](ode-pde/PDEBC_337.gif)





 To remove a second parameter, the whole cycle is repeated starting with computing infinitesimals, for instance for (80).
To remove a second parameter, the whole cycle is repeated starting with computing infinitesimals, for instance for (80). ![I__3 := Infinitesimals(pde__1, [u], specialize_Cn = false, parameters = {a, b, q}, continuousparameters = true);](ode-pde/PDEBC_346.gif)









