This does not augur well for 2016: The year starts with the axiom web
interface at
<
http://axiom-wiki.newsynthesis.org/RationalInterpolation>
being out of order. Trying the trivial input
\begin{axiom}
integrate(x, x)
\end{axiom}
and hitting the "Preview" button gives:
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Site Error
An error was encountered while publishing this resource.
IOError
Sorry, a site error occurred.
Traceback (innermost last):
* Module ZPublisher.Publish, line 202, in publish_module_standard
* Module ZPublisher.Publish, line 150, in publish
* Module plone.app.linkintegrity.monkey, line 21, in
zpublisher_exception_hook_wrapper
* Module Zope2.App.startup, line 221, in zpublisher_exception_hook
* Module ZPublisher.Publish, line 119, in publish
* Module ZPublisher.mapply, line 88, in mapply
* Module ZPublisher.Publish, line 42, in call_object
* Module Products.ZWiki.ZWikiPage, line 229, in __call__
* Module Products.ZWiki.ZWikiPage, line 241, in render
* Module Products.ZWiki.pagetypes.stx, line 96, in render
* Module Products.ZWiki.Views, line 668, in addSkinTo
* Module Shared.DC.Scripts.Bindings, line 313, in __call__
* Module Products.PloneHotfix20110531, line 106, in
_patched_bindAndExec
* Module Products.PloneHotfix20121106.python_scripts, line 63, in
_patched_bindAndExec
* Module Shared.DC.Scripts.Bindings, line 350, in _bindAndExec
* Module Products.PageTemplates.ZopePageTemplate, line 330, in _exec
* Module Products.PageTemplates.ZopePageTemplate, line 427, in
pt_render
* Module Products.PageTemplates.PageTemplate, line 89, in pt_render
* Module zope.pagetemplate.pagetemplate, line 117, in pt_render
* Module zope.tal.talinterpreter, line 271, in __call__
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 891, in do_useMacro
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 536, in do_optTag_tal
* Module zope.tal.talinterpreter, line 521, in do_optTag
* Module zope.tal.talinterpreter, line 516, in no_tag
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 949, in do_defineSlot
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 534, in do_optTag_tal
* Module zope.tal.talinterpreter, line 516, in no_tag
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 891, in do_useMacro
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 891, in do_useMacro
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 855, in do_condition
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 855, in do_condition
* Module zope.tal.talinterpreter, line 346, in interpret
* Module zope.tal.talinterpreter, line 745, in
do_insertStructure_tal
* Module Products.PageTemplates.Expressions, line 221, in
evaluateStructure
* Module zope.tales.tales, line 696, in evaluate
URL: /mathaction/commentform
Line 90, Column 0
Expression: <PythonExpr here.renderText(
text,type,REQUEST=request,RESPONSE=request.RESPONSE)>
Names:
{'container': <Folder at /mathaction>,
'context': <ZWikiPage 'RationalInterpolation' at 0x246e8290>,
'default': <object object at 0x7ffbeb569240>,
'here': <ZWikiPage 'RationalInterpolation' at 0x246e8290>,
'loop': {},
'nothing': None,
'options': {'args': (<ZWikiPage 'RationalInterpolation' at 0x246e8290>,
<HTTPRequest,
URL=
http://axiom-wiki.newsynthesis.org/RationalInterpolation/view>),
'body': '<div
class="latexwiki">\n<h2>Introduction</h2>\n<p> This file contains an
implementation of rational interpolation, where the data\npoints are
element of any integral domain.</p>\n<h2>Questions and
Outlook</h2>\n\n<ul>\n<li>Maybe this file should be joined with
pinterp.spad, where polynomial\n Lagrange interpolation is
implemented. This version parallels the structure\n of pinterp.spad
closely. This also answers comments and questions from\n wyscc. He
remarked\n<ul>\n<li>Abbreviations for a constructor should be limited to
7 letters (not 8).\n The system occasionally adds the 8th character
to a package for internal\n use.</li>\n<li>Function names begin
with a lower case, so <a
href="
http://axiom-wiki.newsynthesis.org/RationalInterpolation">RationalInterpolation</a>
should\n be rationalInterpolation, or better,
rationalInterpolate.</li>\n\n</ul>\n</li>\n<li>Regarding the types I
used for the values, wyscc remarked\n<ul>\n<li>If we are doing a
rational interpolation, presumably the values are\n rational, so it
does not make sense to require the <img alt="y" title="y"
class="equation" src="images/3644510302842779560-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="9"
height="12"/>-coordinates of\n inputs be integral. On the other
hand, as in the above example, if one\n uses <code>FRAC INT</code>,
problems can arise when this package is combined with\n other
packages that constructs the quotient field of the parameter
domain\n <code>F</code> because Axiom does not like constructing
<code>FRAC FRAC INT</code>.</li>\n\n</ul>\n<p> Note however, that the
package would rather construct the type <code>FRAC SUP\n FRAC
INT</code>, so this problem should not occur. Moreover, there are
situations\n - for example in the package [mantepse.spad2]<a
class="new visualNoPrint"
href="
http://axiom-wiki.newsynthesis.org/RationalInterpolation/createform?page=mantepse.spad2"
title="create this page">?</a>, where we want to interpolate values\n
from an IntegralDomain<a class="new visualNoPrint"
href="
http://axiom-wiki.newsynthesis.org/RationalInterpolation/createform?page=IntegralDomain"
title="create this page">?</a>. Of course we could first convert them to
the\n quotient field, however, the current approach seems more
natural to me.</p>\n</li>\n<li>Finally, wyscc asked:\n If <code>p(xx)
= interpolate(lx, ly, m, k)</code>, what is the purpose of\n
<code>elt(px, qx) = p(qx)</code>, the composition of <code>p(xx)</code>
and\n <code>qx</code>, especially when <code>qx</code> is from
<code>FRAC UP(xx,\n F)</code> instead of from just <code>F</code>?
and why is this function\n (the composition) also called
<code>interpolate</code>?<p> I do not really know - apart from a very
superficial level: Clearly, the\n second function was intended to let
the user easily plug in values into the\n interpolated function. I
don\'t find this sensible and I would be happy to\n change it.
Indeed, this would also get rid of the first parameter to\n
<code>RINTERP</code>, which is quite a nuisance.</p>\n<p> I think we
should agree on a general interface for interpolation\n algorithms,
and mark <code>PINTERP</code> as obsolete. By the way, it seems
that\n <code>RINTERP</code> is faster, too.</p>\n</li>\n<li>There are
probably better ways to implement rational interpolation. Maybe\n <a
href="
http://www.cs.ucsb.edu/~omer/personal/abstracts/rational.html">
http://www.cs.ucsb.edu/~omer/personal/abstracts/rational.html</a>\n
contains something useful. In particular, in my package
[mantepse.spad2]<a class="new visualNoPrint"
href="
http://axiom-wiki.newsynthesis.org/RationalInterpolation/createform?page=mantepse.spad2"
title="create this page">?</a>, in <code>guessRat</code>\n and
<code>guessExpRat</code> I generate interpolating polynomials for all
possible degrees \n of numerator and denominator. The above article
contains an algorithm that does \n this in time <img alt="O(n^2)"
title="O(n^2)" class="equation"
src="images/3457654165008507370-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="39" height="20"/>, which would
be quite nice. Currently, I need <img alt="O(n^2)" title="O(n^2)"
class="equation" src="images/3457654165008507370-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="39"
height="20"/> \n operations for <em>each</em> degree!</li>\n<li>For
polynomial interpolation, there seems to be an algorithm that needs
\n only <img alt="O(n\\log(n)^2\\log\\log(n))"
title="O(n\\log(n)^2\\log\\log(n))" class="equation"
src="images/2812047165959573488-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="151" height="20"/> operations.
It can be found in van zur Gathen\'s book\n "Modern computer
algebra", chapter 10.</li>\n<li>For those who speak german,\n <a
href="
http://www.num.math.uni-goettingen.de/schaback/teaching/numath.ps">
http://www.num.math.uni-goettingen.de/schaback/teaching/numath.ps</a>\n
contains quite a bit of information.</li>\n<li>This implementation of
rational interpolation neither takes care of\n unattainable points,
nor does it check whether the values of the\n <img alt="x" title="x"
class="equation" src="images/3644510302843779557-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="8"
height="9"/>-coordinates are all distinct.</li>\n<li>Comments
welcome!</li>\n\n</ul>\n<p><div id="axiomlabel"
align="right">spad</div><pre id="axiomcode">)abbrev package RINTERPA
RationalInterpolationAlgorithms\n++ Description:\n++ This package
exports rational interpolation
algorithms\nRationalInterpolationAlgorithms(F,<wbr /> P): Cat ==
Body where\n F: IntegralDomain \n P:
UnivariatePolynomialCategory(F)\n Cat == with\n
RationalInterpolation: (List F,<wbr /> List F,<wbr />
NonNegativeInteger,<wbr />\n
NonNegativeInteger) \n -> Fraction
P\n +++ We assume that the elements of the first list are all
distinct.\n +++ If they are not,<wbr /> division by zero might
occur.<br />\n Body == add\n RationalInterpolation(xlist,<wbr
/> ylist,<wbr /> m,<wbr /> k) ==\n #xlist ^= #ylist
=>\n error "Different number of points and
values."\n #xlist ^= m+k+1 =>\n
error "wrong number of points"\n tempvec: List
F := [1 for i in 1..(m+k+1)]<br />\n collist:
List List F := cons(tempvec,<wbr />
\n [(tempvec :=
[tempvec.i * xlist.i
_\n for i in
1..(m+k+1)]) _\n for j
in 1..max(m,<wbr /> k)])<br />\n collist :=
append([collist.j for j in 1..(m+1)],<wbr />
_\n [[- collist.j.i *
ylist.i for i in 1..(m+k+1)] _\n
for j in 1..(k+1)])\n resspace: List Vector F :=
nullSpace((transpose matrix collist)
_\n ::Matrix
F)\n reslist: List List P :=
_\n [[monomial((resspace.1).(i+1),<wbr
/> i) for i in 0..m],<wbr /> _\n
[monomial((resspace.1).(i+m+2),<wbr /> i) for i in 0..k]]<br
/>\n reduce((_+),<wbr /> reslist.1)/reduce((_+),<wbr
/> reslist.2)</pre>\n<div id="axiomtext"><div id="axiomlabel"
title="Expand +/- Collapse folded text"align="right"
onClick="expandcontent(this,
this.nextSibling.id)" style="cursor:hand;
cursor:pointer;"><span class="showstate"></span>spad</div><div
id="sc1054" class="switchcontent"><pre> Compiling FriCAS source code
from file \n
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/959208282017174297-25px001.spad\n
using old system compiler.\n RINTERPA abbreviates package
RationalInterpolationAlgorithms
\n******** Spad syntax error detected
********\nThe prior line was:<br
/>\n 15> RationalInterpolation(xlist,<wbr /> ylist,<wbr />
m,<wbr /> k) ==<br />\nThe current line is:<br />\n
16> #xlist ^= #ylist =><br />\nThe number of
valid tokens is 2.\nThe prior token was #S(TOKEN :SYMBOL ^
:TYPE KEYWORD :NONBLANK 16)\nThe current token is #S(TOKEN
:SYMBOL = :TYPE KEYWORD :NONBLANK 16)\nThe next token is
#S(TOKEN :SYMBOL |#| :TYPE KEYWORD :NONBLANK
16)</pre></div></div></p>\n<p><div id="axiomlabel"
align="right">spad</div><pre id="axiomcode">)abbrev package RINTERP
RationalInterpolation\n++ Description:\n++ This package exports
interpolation algorithms\nRationalInterpolation(xx,<wbr /> F): Cat
== Body where\n xx: Symbol\n F: IntegralDomain\n UP
==> UnivariatePolynomial\n SUP ==>
SparseUnivariatePolynomial<br />\n Cat == with\n
interpolate: (Fraction UP(xx,<wbr /> F),<wbr /> List F,<wbr /> List
F,<wbr /> _\n NonNegativeInteger,<wbr />
NonNegativeInteger) _\n -> Fraction
UP(xx,<wbr /> F)<br />\n interpolate: (List F,<wbr /> List
F,<wbr /> NonNegativeInteger,<wbr /> NonNegativeInteger)
_\n -> Fraction SUP F<br />\n Body ==
add\n RIA ==> RationalInterpolationAlgorithms<br />\n
interpolate(qx,<wbr /> lx,<wbr /> ly,<wbr /> m,<wbr /> k)
==\n px := RationalInterpolation(lx,<wbr /> ly,<wbr />
m,<wbr /> k)$RIA(F,<wbr /> UP(xx,<wbr /> F))<br />\n
elt(px,<wbr /> qx)<br />\n interpolate(lx,<wbr /> ly,<wbr />
m,<wbr /> k) ==\n RationalInterpolation(lx,<wbr /> ly,<wbr />
m,<wbr /> k)$RIA(F,<wbr /> SUP F)</pre>\n<div id="axiomtext"><div
id="axiomlabel" title="Expand +/- Collapse folded text"align="right"
onClick="expandcontent(this,
this.nextSibling.id)" style="cursor:hand;
cursor:pointer;"><span class="showstate"></span>spad</div><div
id="sc1055" class="switchcontent"><pre> Compiling FriCAS source code
from file \n
/var/lib/zope2.10/instance/axiom-wiki/var/LatexWiki/6898989268314666018-25px002.spad\n
using old system compiler.\n RINTERP abbreviates package
RationalInterpolation
\n------------------------------------------------------------------------\n
initializing NRLIB RINTERP for RationalInterpolation \n compiling into
NRLIB RINTERP \n processing macro definition RIA ==>
RationalInterpolationAlgorithms \n compiling exported interpolate
: (Fraction UnivariatePolynomial(xx,<wbr />F),<wbr />List F,<wbr
/>List F,<wbr />NonNegativeInteger,<wbr />NonNegativeInteger) ->
Fraction UnivariatePolynomial(xx,<wbr
/>F)\n****** comp fails at level 3 with
expression: ******\nerror in function
interpolate <br />\n(SEQ\n (LET |px|\n | << |\n ((|elt|\n
(|RationalInterpolationAlgorithms| F (|UnivariatePolynomial| |xx|
F))\n |RationalInterpolation|)\n |lx| |ly| |m| |k|)\n |
>> |)\n (|exit| 1 (|elt| |px|
|qx|)))\n****** level 3
******\n$x:= ((elt
(RationalInterpolationAlgorithms F (UnivariatePolynomial xx F))
RationalInterpolation) lx ly m k)\n$m:=
$EmptyMode\n$f:=\n((((|last| #) (|rest| #) (|first|
#) (|value| #) ...)))<br />\n >> Apparent user
error:\n no modemap for RationalInterpolation with 4
arguments</pre></div></div></p>\n<p>First we check whether we have the
right number of points and values. Clearly\nthe number of points and the
number of values must be identical. Note that we\nwant to determine the
numerator and denominator polynomials only up to a\nfactor. Thus, we
want to determine <img alt="m+k+1" title="m+k+1" class="equation"
src="images/7257407665151355658-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="68" height="14"/>
coefficients, where <img alt="m" title="m" class="equation"
src="images/3644510302862779548-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="15" height="9"/> is the
degree\nof the polynomial in the numerator and <img alt="k" title="k"
class="equation" src="images/3644510302856779534-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="8"
height="13"/> is the degree of the polynomial in\nthe
denominator.</p>\n<p>In fact, we could also leave - for example - <img
alt="k" title="k" class="equation"
src="images/3644510302856779534-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="8" height="13"/> unspecified
and determine it\nas <img alt="k=\\#xlist-m-1" title="k=\\#xlist-m-1"
class="equation" src="images/7632808778548436700-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="135"
height="16"/>: I don\'t know whether this would be better.</p>\n<p>The
next step is to set up the matrix. Suppose that our numerator polynomial
is\n<img alt="p(x)=a_0+a_1x+\\dots+a_mx^m"
title="p(x)=a_0+a_1x+\\dots+a_mx^m" class="equation"
src="images/4897668193594025602-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="203" height="18"/> and that
our denominator polynomial is\n<img alt="q(x)=b_0+b_1x+\\dots+b_mx^m"
title="q(x)=b_0+b_1x+\\dots+b_mx^m" class="equation"
src="images/5918338235473531580-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="197" height="18"/>. Then we
have the following equations, writing <img alt="n" title="n"
class="equation" src="images/3644510302861779551-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="10"
height="9"/>\nfor <img alt="m+k+1" title="m+k+1" class="equation"
src="images/7257407665151355658-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="68" height="14"/>:</p>\n<p><a
name="unnumbered"><table width="95%"><tr><td align="center"
width="95%"><img alt="\n p(x_1)-y_1q(x_1)&=a_0+a_1x_1+\\dots
+a_mx_1^m-y_1(b_0+b_1x_1+\\dots +b_kx_1^k)=0\\\n
p(x_2)-y_2q(x_2)&=a_0+a_1x_2+\\dots +a_mx_2^m-y_2(b_0+b_1x_2+\\dots
+b_kx_2^k)=0\\\n
&\\;\\;\\vdots\\ \n
p(x_n)-y_nq(x_n)&=a_0+a_1x_n+\\dots +a_mx_n^m-y_n(b_0+b_1x_n+\\dots
+b_kx_n^k)=0\n" title="\n p(x_1)-y_1q(x_1)&=a_0+a_1x_1+\\dots
+a_mx_1^m-y_1(b_0+b_1x_1+\\dots +b_kx_1^k)=0\\\n
p(x_2)-y_2q(x_2)&=a_0+a_1x_2+\\dots +a_mx_2^m-y_2(b_0+b_1x_2+\\dots
+b_kx_2^k)=0\\\n
&\\;\\;\\vdots\\ \n
p(x_n)-y_nq(x_n)&=a_0+a_1x_n+\\dots +a_mx_n^m-y_n(b_0+b_1x_n+\\dots
+b_kx_n^k)=0\n" class="equation"
src="images/8348387546368312890-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="522" height="95"/></td><td
width="5%" align="right"> </td></tr></table></a></p>\n<p>This can
be written as\n<a name="unnumbered"><table width="95%"><tr><td
align="center" width="95%"><img alt="\n\\begin{bmatrix}\n
1&x_1&\\dots&x_1^m&-y_1&-y_1x_1&\\dots&-y_1x_1^k\\\n
1&x_2&\\dots&x_2^m&-y_2&-y_2x_2&\\dots&-y_2x_2^k\\\n\\vdots\\\n
1&x_n&\\dots&x_n^m&-y_n&-y_nx_n&\\dots&-y_nx_2^k\n"
title="\n\\begin{bmatrix}\n
1&x_1&\\dots&x_1^m&-y_1&-y_1x_1&\\dots&-y_1x_1^k\\\n
1&x_2&\\dots&x_2^m&-y_2&-y_2x_2&\\dots&-y_2x_2^k\\\n\\vdots\\\n
1&x_n&\\dots&x_n^m&-y_n&-y_nx_n&\\dots&-y_nx_2^k\n"
class="equation" src="images/309858286919208781-16.0px.png"
align="bottom" Style="vertical-align:text-bottom" width="383"
height="165"/></td><td width="5%"
align="right"> </td></tr></table></a></p>\n<p>We generate this
matrix columnwise, then we can solve the system using
<code>nullSpace</code>.</p>\n<p>Note that it may happen that the system
has several solutions. In this case,\nsome of the data points may not be
interpolated correctly. However, the\nsolution is often still useful,
thus we do not signal an error.</p>\n<p>Since all the solutions of
<code>nullSpace</code> will be equivalent, we can always\nsimply take
the first one. Finally, we return the rational
function.</p>\n<h2>Examples</h2>\n<p> To conclude we present some
examples. To begin with, the following interpolation \nillustrates the
concept of unattainable points:</p>\n<p><div id="axiomlabel"
align="right">fricas</div><pre id="axiomcode">interpolate([q,<wbr
/>q^2,<wbr />q^3],<wbr />[0,<wbr />x^1,<wbr />x^2],<wbr
/>0,<wbr />2)$RINTERP(qn,<wbr /> FRAC POLY INT)</pre>\n<a
name="eq1"><table width="95%"><tr><td align="center" width="95%"><img
alt="\n\\label{eq1}0" title="\n\\label{eq1}0" class="equation"
src="images/6192863038255640386-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="7" height="13"/></td><td
width="5%" align="right"><a
href="#eq1">(1)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>Fraction(Polynomial(Fraction(Polynomial(Integer))))</div></p>\n<p><div
id="axiomlabel" align="right">fricas</div><pre id="axiomcode">f(x) ==
(x^3+5*x-3)/(x^2-3)</pre>\n<div id="axiomtype"><b>Type:
</b>Void</div>\n<div id="axiomlabel" align="right">fricas</div><pre
id="axiomcode">xlist := [1/2,<wbr /> 4,<wbr /> 1/6,<wbr />
8,<wbr /> 1/10,<wbr /> 12]</pre>\n<a name="eq2"><table
width="95%"><tr><td align="center" width="95%"><img
alt="\n\\label{eq2}\\left[{1 \\over 2}, \\: 4, \\:{1 \\over 6}, \\: 8,
\\:{1 \\over{10}}, \\:{12}\\right]" title="\n\\label{eq2}\\left[{1
\\over 2}, \\: 4, \\:{1 \\over 6}, \\: 8, \\:{1 \\over{10}},
\\:{12}\\right]" class="equation"
src="images/3450946837698470248-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="134" height="41"/></td><td
width="5%" align="right"><a
href="#eq2">(2)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>List(Fraction(Integer))</div>\n<div id="axiomlabel"
align="right">fricas</div><pre id="axiomcode">ylist := [f(x) for
x in xlist]</pre>\n<div id="axiomtext"><div id="axiomlabel"
title="Expand +/- Collapse folded text" align="right"
onClick="expandcontent(this,
this.nextSibling.id)" style="cursor:hand;
cursor:pointer"><span class="showstate"></span>fricas</div><pre
id="sc1056" class="switchcontent">Compiling function f with type
Fraction(Integer) -> Fraction(Integer\n )</pre></div>\n<a
name="eq3"><table width="95%"><tr><td align="center" width="95%"><img
alt="\n\\label{eq3}\\left[{3 \\over{22}}, \\:{{81}\\over{13}},
\\:{{467}\\over{642}}, \\: 9, \\:{{2499}\\over{2990}},
\\:{{595}\\over{47}}\\right]" title="\n\\label{eq3}\\left[{3
\\over{22}}, \\:{{81}\\over{13}}, \\:{{467}\\over{642}}, \\: 9,
\\:{{2499}\\over{2990}}, \\:{{595}\\over{47}}\\right]" class="equation"
src="images/3189087869943830513-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="195" height="41"/></td><td
width="5%" align="right"><a
href="#eq3">(3)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>List(Fraction(Integer))</div>\n<div id="axiomlabel"
align="right">fricas</div><pre id="axiomcode">interpolate(xlist,<wbr />
ylist,<wbr /> 3,<wbr /> 2)$RINTERP('x,<wbr /> FRAC
INT)</pre>\n<a name="eq4"><table width="95%"><tr><td align="center"
width="95%"><img alt="\n\\label{eq4}{{{x}^{3}}+{5 \\ x}-
3}\\over{{{x}^{2}}- 3}" title="\n\\label{eq4}{{{x}^{3}}+{5 \\ x}-
3}\\over{{{x}^{2}}- 3}" class="equation"
src="images/3496848037580920933-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="85" height="36"/></td><td
width="5%" align="right"><a
href="#eq4">(4)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>Fraction(Polynomial(Fraction(Integer)))</div>\n<div id="axiomlabel"
align="right">fricas</div><pre
id="axiomcode">interpolate(1/6::FRAC UP(x,<wbr />FRAC INT),<wbr
/> xlist,<wbr /> ylist,<wbr /> 3,<wbr /> 2)$RINTERP('x,<wbr
/>FRAC INT)<br />\n The function interpolate is not implemented in
RationalInterpolation\n (x,<wbr />Fraction(Integer))
.</pre></p>\n<p>A harder example:</p>\n<p><div id="axiomlabel"
align="right">fricas</div><pre id="axiomcode">dom :=
DMP([z],<wbr />INT);</pre>\n<div id="axiomtype"><b>Type:
</b>Type</div>\n<div id="axiomlabel" align="right">fricas</div><pre
id="axiomcode">g: FRAC dom -> FRAC dom;</pre>\n<div
id="axiomtype"><b>Type: </b>Void</div>\n<div id="axiomlabel"
align="right">fricas</div><pre id="axiomcode">g(x) ==
(x^3*z+5*z^2*x -3*z^3)/(z*x^2 - 3)</pre>\n<div
id="axiomtype"><b>Type: </b>Void</div>\n<div id="axiomlabel"
align="right">fricas</div><pre id="axiomcode">xxlist: List FRAC dom
:= [1/(2*z),<wbr /> 4*z,<wbr /> 1/(6*z),<wbr />
8*z,<wbr /> 1/(10*z),<wbr /> 12*z]</pre>\n<a
name="eq5"><table width="95%"><tr><td align="center" width="95%"><img
alt="\n\\label{eq5}\\left[{1 \\over{2 \\ z}}, \\:{4 \\ z}, \\:{1
\\over{6 \\ z}}, \\:{8 \\ z}, \\:{1 \\over{{10}\\ z}}, \\:{{12}\\
z}\\right]" title="\n\\label{eq5}\\left[{1 \\over{2 \\ z}}, \\:{4 \\
z}, \\:{1 \\over{6 \\ z}}, \\:{8 \\ z}, \\:{1 \\over{{10}\\ z}},
\\:{{12}\\ z}\\right]" class="equation"
src="images/6966621681782844857-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="213" height="41"/></td><td
width="5%" align="right"><a
href="#eq5">(5)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>List(Fraction(<a
href="
http://axiom-wiki.newsynthesis.org/DistributedMultivariatePolynomial">DistributedMultivariatePolynomial</a>([z],<wbr
/>Integer)))</div>\n<div id="axiomlabel" align="right">fricas</div><pre
id="axiomcode">yylist := [g(x) for x in xxlist]</pre>\n<div
id="axiomtext"><div id="axiomlabel" title="Expand +/- Collapse folded
text" align="right" onClick="expandcontent(this,
this.nextSibling.id)"
style="cursor:hand; cursor:pointer"><span
class="showstate"></span>fricas</div><pre id="sc1057"
class="switchcontent">Compiling function g with type Fraction(\n
DistributedMultivariatePolynomial([z],<wbr />Integer)) ->
Fraction(\n DistributedMultivariatePolynomial([z],<wbr
/>Integer))</pre></div>\n<a name="eq6"><table width="95%"><tr><td
align="center" width="95%"><img
alt="\n\\label{eq6}\\begin{array}{@{}l}\n\\displaystyle\n\\left[{{{{24}\\
{{z}^{5}}}-{{20}\\ {{z}^{3}}}- 1}\\over{{{24}\\ {{z}^{2}}}-{2 \\ z}}},
\\:{{{{64}\\ {{z}^{4}}}+{{17}\\ {{z}^{3}}}}\\over{{{1\n6}\\ {{z}^{3}}}-
3}}, \\:{{{{648}\\ {{z}^{5}}}-{{180}\\ {{z}^{3}}}- 1}\\over{{{648}\\
{{z}^{2}}}-{6 \\ z}}}, \\:
\\right.\n\\\n\\\n\\displaystyle\n\\left.{{{{512}\\ {{z}^{4}}}+{{37}\\
{{z}^{3}}}}\\over{{{64}\\ {{z}^{3}}}- 3}}, \\:{{{{3000}\\
{{z}^{5}}}-{{500}\\ {{z}^{3}}}- 1}\\over{{{3\n000}\\ {{z}^{2}}}-{{10}\\
z}}}, \\:{{{{576}\\ {{z}^{4}}}+{{19}\\ {{z}^{3}}}}\\over{{{48}\\
{{z}^{3}}}- 1}}\\right] \n"
title="\n\\label{eq6}\\begin{array}{@{}l}\n\\displaystyle\n\\left[{{{{24}\\
{{z}^{5}}}-{{20}\\ {{z}^{3}}}- 1}\\over{{{24}\\ {{z}^{2}}}-{2 \\ z}}},
\\:{{{{64}\\ {{z}^{4}}}+{{17}\\ {{z}^{3}}}}\\over{{{1\n6}\\ {{z}^{3}}}-
3}}, \\:{{{{648}\\ {{z}^{5}}}-{{180}\\ {{z}^{3}}}- 1}\\over{{{648}\\
{{z}^{2}}}-{6 \\ z}}}, \\:
\\right.\n\\\n\\\n\\displaystyle\n\\left.{{{{512}\\ {{z}^{4}}}+{{37}\\
{{z}^{3}}}}\\over{{{64}\\ {{z}^{3}}}- 3}}, \\:{{{{3000}\\
{{z}^{5}}}-{{500}\\ {{z}^{3}}}- 1}\\over{{{3\n000}\\ {{z}^{2}}}-{{10}\\
z}}}, \\:{{{{576}\\ {{z}^{4}}}+{{19}\\ {{z}^{3}}}}\\over{{{48}\\
{{z}^{3}}}- 1}}\\right] \n" class="equation"
src="images/6690073116057656186-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="379" height="99"/></td><td
width="5%" align="right"><a
href="#eq6">(6)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>List(Fraction(<a
href="
http://axiom-wiki.newsynthesis.org/DistributedMultivariatePolynomial">DistributedMultivariatePolynomial</a>([z],<wbr
/>Integer)))</div>\n<div id="axiomlabel" align="right">fricas</div><pre
id="axiomcode">interpolate(xxlist,<wbr /> yylist,<wbr /> 3,<wbr />
2)$RINTERP('x,<wbr /> FRAC dom)</pre>\n<a name="eq7"><table
width="95%"><tr><td align="center" width="95%"><img
alt="\n\\label{eq7}{{{x}^{3}}+{5 \\ z \\ x}-{3 \\
{{z}^{2}}}}\\over{{{x}^{2}}-{3 \\over z}}"
title="\n\\label{eq7}{{{x}^{3}}+{5 \\ z \\ x}-{3 \\
{{z}^{2}}}}\\over{{{x}^{2}}-{3 \\over z}}" class="equation"
src="images/5304021745790262573-16.0px.png" align="bottom"
Style="vertical-align:text-bottom" width="119" height="42"/></td><td
width="5%" align="right"><a
href="#eq7">(7)</a></td></tr></table></a>\n<div id="axiomtype"><b>Type:
</b>Fraction(Polynomial(Fraction(<a
href="
http://axiom-wiki.newsynthesis.org/DistributedMultivariatePolynomial">DistributedMultivariatePolynomial</a>([z],<wbr
/>Integer))))</div>\n<div id="axiomlabel" align="right">fricas</div><pre
id="axiomcode">interpolate(4*z::FRAC UP(x,<wbr />dom),<wbr
/> xxlist,<wbr /> yylist,<wbr /> 3,<wbr /> 2)$RINTERP('x,<wbr
/> FRAC dom)<br />\n The function interpolate is not implemented in
RationalInterpolation\n (x,<wbr
/>Fraction(DistributedMultivariatePolynomial([z],<wbr
/>Integer))) .</pre></p>\n<p></p>\n\n</div>\n'},
'repeat': <Products.PageTemplates.Expressions.SafeMapping object at
0x23614e60>,
'request': <HTTPRequest,
URL=
http://axiom-wiki.newsynthesis.org/RationalInterpolation/view>,
'root': <Application at >,
'template': <ZopePageTemplate at /mathaction/wikipage used for
/mathaction/RationalInterpolation>,
'traverse_subpath': [],
'user': <SpecialUser 'Anonymous User'>}
* Module Products.PageTemplates.ZRPythonExpr, line 49, in __call__
__traceback_info__: here.renderText(
text,type,REQUEST=request,RESPONSE=request.RESPONSE)
* Module PythonExpr, line 1, in <expression>
* Module Products.ZWiki.ZWikiPage, line 263, in renderText
* Module Products.ZWiki.plugins.mathaction.pagetypes, line 172, in
renderText
* Module Products.ZWiki.Editing, line 754, in setText
* Module Products.ZWiki.ZWikiPage, line 257, in preRender
* Module Products.ZWiki.plugins.mathaction.pagetypes, line 205, in
preRender
* Module Products.ZWiki.plugins.mathaction.ReplaceInlineLatex, line
76, in replaceInlineLatex
* Module Products.ZWiki.plugins.mathaction.ReplaceInlineAxiom, line
147, in replaceInlineAxiom
* Module Products.ZWiki.plugins.mathaction.axiomWrapper, line 101,
in renderAxiom
IOError
Troubleshooting Suggestions
* The URL may be incorrect.
* The parameters passed to this resource may be incorrect.
* A resource that this resource relies on may be encountering an
error.
For more detailed information about the error, please refer to the error
log.
If the error persists please contact the site maintainer. Thank you for
your patience.
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
And all this user wanted was an authoritative answer to
integrate(1/(x^3 - 3*x^2 + 7*x - 5)^(1/3), x)
Martin :(((.