diff options
Diffstat (limited to 'src/hyper/pages/FPARFRAC.ht')
-rw-r--r-- | src/hyper/pages/FPARFRAC.ht | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/src/hyper/pages/FPARFRAC.ht b/src/hyper/pages/FPARFRAC.ht new file mode 100644 index 00000000..2076f958 --- /dev/null +++ b/src/hyper/pages/FPARFRAC.ht @@ -0,0 +1,101 @@ +% Copyright The Numerical Algorithms Group Limited 1992-94. All rights reserved. +% !! DO NOT MODIFY THIS FILE BY HAND !! Created by ht.awk. +\newcommand{\FullPartialFractionExpansionXmpTitle}{FullPartialFractionExpansion} +\newcommand{\FullPartialFractionExpansionXmpNumber}{9.29} +% +% ===================================================================== +\begin{page}{FullPartialFractionExpansionXmpPage}{9.29 FullPartialFractionExpansion} +% ===================================================================== +\beginscroll + +The domain \spadtype{FullPartialFractionExpansion} implements +factor-free conversion of quotients to full partial fractions. + +\xtc{ +Our examples will all involve quotients of univariate polynomials +with rational number coefficients. +}{ +\spadpaste{Fx := FRAC UP(x, FRAC INT) \bound{Fx}} +} +\xtc{ +Here is a simple-looking rational function. +}{ +\spadpaste{f : Fx := 36 / (x**5-2*x**4-2*x**3+4*x**2+x-2) \bound{f}\free{Fx}} +} +\xtc{ +We use \spadfunFrom{fullPartialFraction}{FullPartialFractionExpansion} +to convert it to an object of type +\spadtype{FullPartialFractionExpansion}. +}{ +\spadpaste{g := fullPartialFraction f \bound{g}\free{f}} +} +\xtc{ +Use a coercion to change it back into a quotient. +}{ +\spadpaste{g :: Fx \free{g}} +} +\xtc{ +Full partial fractions differentiate faster than rational +functions. +}{ +\spadpaste{g5 := D(g, 5) \free{g}\bound{g5}} +} +\xtc{ +}{ +\spadpaste{f5 := D(f, 5) \free{f}\bound{f5}} +} +\xtc{ +We can check that the two forms represent the same function. +}{ +\spadpaste{g5::Fx - f5 \free{Fx g5 f5}} +} +\xtc{ +Here are some examples that are more complicated. +}{ +\spadpaste{f : Fx := (x**5 * (x-1)) / ((x**2 + x + 1)**2 * (x-2)**3) \free{Fx}\bound{f2}} +} +\xtc{ +}{ +\spadpaste{g := fullPartialFraction f \free{f2}\bound{g2}} +} +\xtc{ +}{ +\spadpaste{g :: Fx - f \free{f2 g2 Fx}} +} +\xtc{ +}{ +\spadpaste{f : Fx := (2*x**7-7*x**5+26*x**3+8*x) / (x**8-5*x**6+6*x**4+4*x**2-8) \free{Fx}\bound{f3}} +} +\xtc{ +}{ +\spadpaste{g := fullPartialFraction f \free{f3}\bound{g3}} +} +\xtc{ +}{ +\spadpaste{g :: Fx - f \free{f3 g3 Fx}} +} +\xtc{ +}{ +\spadpaste{f:Fx := x**3 / (x**21 + 2*x**20 + 4*x**19 + 7*x**18 + 10*x**17 + 17*x**16 + 22*x**15 + 30*x**14 + 36*x**13 + 40*x**12 + 47*x**11 + 46*x**10 + 49*x**9 + 43*x**8 + 38*x**7 + 32*x**6 + 23*x**5 + 19*x**4 + 10*x**3 + 7*x**2 + 2*x + 1)\free{Fx}\bound{f4}} +} +\xtc{ +}{ +\spadpaste{g := fullPartialFraction f \free{f4}\bound{g4}} +} +\xtc{ +This verification takes much longer than the conversion to +partial fractions. +}{ +\spadpaste{g :: Fx - f \free{f4 g4 Fx}} +} + +For more information, see the paper: +Bronstein, M and Salvy, B. +``Full Partial Fraction Decomposition of Rational Functions,'' +{\it Proceedings of ISSAC'93, Kiev}, ACM Press. +All see \downlink{`PartialFraction'}{PartialFractionXmpPage}\ignore{PartialFraction} for standard partial fraction +decompositions. +\endscroll +\autobuttons +\end{page} +% |