MathAction changed pages
http://fricaswiki.math.uni.wroc.pl
MathAction changed pagesenFri, 26 Jul 2019 22:53:32 +0000[series]
http://fricaswiki.math.uni.wroc.pl/Series
http://fricaswiki.math.uni.wroc.pl/Series
??changed:
Carl McTague asked axiom to evaluate
Currently FriCAS can not evaluate
??changed:
while he was hoping for '%pi^2/6', i.e. $\frac{\pi^2}{6}$.

Any ideas?

From wurmli Sat Sep 11 00:47:12 0500 2004
From: wurmli
Date: Sat, 11 Sep 2004 00:47:12 0500
Subject: Don't know either
MessageID: <200409110047120500@page.axiomdeveloper.org>


I have no ideas how to move axiom to spit out the answer, but considering it should
be $\zeta(2)$ I have another question:


does the zeta function exist in axiom?

It is included in FriCAS
where correct result is'%pi^2/6', i.e. $\frac{\pi^2}{6}$.
The result is $\zeta(2)$, which in FriCAS can be written as:
??changed:
It looks like in 1997, it had not been
implemented.
See
See also text from 1997:
??changed:
onto which
"AxiomDocumentationAndCommunity":AxiomDocumentationAndCommunity#WesterCritique
refers.
Sun, 11 Aug 2019 17:59:02 +0000[FriCASContributions]
http://fricaswiki.math.uni.wroc.pl/FriCASContributions
http://fricaswiki.math.uni.wroc.pl/FriCASContributions
++added:
[SeriesSolve] contributed by Martin Rubey
Fri, 02 Aug 2019 14:26:24 +0000[SeriesSolve]
http://fricaswiki.math.uni.wroc.pl/SeriesSolve
http://fricaswiki.math.uni.wroc.pl/SeriesSolve
??changed:
SeriesSolve implements a workaround to the broken package delivered with Axiom. It handles quite arbitrary functional equations, but uses a questionable algorithm. It certainly should be replaced by something better.

[ssolve.spad.pamphlet] is the pamphlet and [ssolve.spad] the source.
This package is included in FriCAS. Compared to previous series solver
it handles quite arbitrary functional equations, but uses a questionable algorithm.
It certainly should be replaced by something better.
Fri, 02 Aug 2019 14:24:04 +0000[Source Repository]
http://fricaswiki.math.uni.wroc.pl/SourceRepository
http://fricaswiki.math.uni.wroc.pl/SourceRepository
++added:
 [FriCAS Sources]
removed:
 [FriCAS Sources]

Fri, 02 Aug 2019 14:16:49 +0000[FriCAS Problems]
http://fricaswiki.math.uni.wroc.pl/FriCASProblems
http://fricaswiki.math.uni.wroc.pl/FriCASProblems
??changed:
 Expressions like 'sin(x)' appear unevaluated until a value is
 substituted for x but expressions like 'max(x,y)' return 'y'!
 Why is that? There is difference between functions and expressions:
 programming linguage functions produce values, expressions are values
There is difference between functions and expressions:
programming language functions produce values, expressions are values
??changed:
 value producing function. 'max' used order on expression to pick
function. 'max' used order on expression to pick
Fri, 02 Aug 2019 14:06:33 +0000[Constant of integration]
http://fricaswiki.math.uni.wroc.pl/ConstantOfIntegration
http://fricaswiki.math.uni.wroc.pl/ConstantOfIntegration
??changed:

By definition definite integral is determined only up to integration constant.
When integral depends on parameters constant of integration also depends
on parameters. Some choices of integration constant may lead to undesirable
results. For example:
\begin{axiom}
integrate(x^n, x)
integrate(sinh(a*x), x)
\end{axiom}
In both cases integration constant have singularity, first for $n = 1$, second for $a = 0$, while there is
choice of integration constant which avoids such singularity. Namely, in
the first case $(x^{n+1}  1)/(n + 1)$ have removable singularity at $n = 1$,
in the second case $(\cosh(ax)  1)/a$ have removable singularity at $a = 0$.
However even with such choice of integration constant simply plugging in
parameter to indefinite integral does not work, we get division by
zero during evaluation (see [Division by zero during evaluation]).
Fri, 26 Jul 2019 22:53:30 +0000[Nature of expressions]
http://fricaswiki.math.uni.wroc.pl/NatureOfExpressions
http://fricaswiki.math.uni.wroc.pl/NatureOfExpressions
??changed:

FriCAS expression domains are based on notion of differential field. This
have advantages, for example some otherwise unsolvable problems became
solvable when dealing with differential fields. But this also means
that FriCAS expression behave differently than function in real analysis.
For example, in field quadratic equation have 0, 1 or 2 roots.
In particular consider equation $y^2 = x^2$ where $y$ is variable of the
equation and $x$ is element of differential field representing
variable $x$. This equation have exactly two
roots, namely $y = x$ and $y = x$. This means that absolute value
of real function is excluded, since for real $x$ we have $x^2 = x^2$,
so $x$ would be solution to $y^2 = x^2$, but $x$ is different
than $x$ or $x$. In fact, forbiding absolute value is crucial to
solvability  Richardson proved that equality for expressions build
from variable $x$, rational constants, constant $\pi$, trigonometric
functions and absolute values by composition and arithmetic operations
is undecidable. When we put functions above inside a differential
field equality becomes decidable (note: "put inside" means that
we provide extra information).
By Seidenberg theorem finitely generated differential field of characteristic $0$
is izomorphic to a subfield of field of meromorphic functions in some
complex domain (open and connected set). And opposite: field of meromorphic
functions in complex domain is a differential field. So differential
field correspond very well to complex analysis. But there may
be some mismatch when one wants to deal with real analysis.
Dealing with differential field we implicitly remove inessential
singularities, so we treat $1$ and $x/x$ as the same function
(for more background see [Division by zero during evaluation]).
Also, by principle of analytic continuation we may restrict
functions to arbitrarily small open set and still get izomorphic
field. Which means that to get interesting results we may be
forced to perform analytic continuation. Since we work with
connected sets, we have to chose some branch of function
which otherwise is considered as multivalued function. Notably,
we have to chose branches of logarithms and roots. Interestingly,
in many cases choice of branches does not matter much, we get
equivalent results for different choices. What matters are
dependencies. For example at algebraic level it does not
matter which square roots of $2$ and $3$ we chose, all four choices
give isomorphic fields. However, when we add square root
of $6$, we get dependence, either $\sqrt{6} = \sqrt{2}\sqrt{3}$
or $\sqrt{6} = \sqrt{2}\sqrt{3}$. In numerical computations
it is usual to make choice of root, for example to use so
called principal branch of square root. However, in purely
algebraic context there is no canonical way to distinguish roots
and all roots of the same irreducible equation play equivalent
role. In context of differential fields logarithm is determined
up to additive constant and there is no way to have canonical
choice of constant, all choices lead to izomorphic differential
fields.
Compared to some other systems FriCAS approach have both advantages:
 FriCAS avoids unsolvability due to Richardson theorem
 there are powerful algorithms working in differential fields
but also some disadvantages. Main limitation is that with FriCAS
approach it is harder to handle solvable instances of problems
involving absolute value.
Fri, 26 Jul 2019 22:38:48 +0000[Division by zero during evaluation]
http://fricaswiki.math.uni.wroc.pl/DivisionByZeroDuringEvaluation
http://fricaswiki.math.uni.wroc.pl/DivisionByZeroDuringEvaluation
??changed:

Evaluation may lead to spurious division by zero. This problem is not limited
to FriCAS, in fact it is general mathematical fact which limits what computers
(and people) can do. Simplest example is $x/x$. When we plug in nonzero number
for $x$ we get $1$. However, plugging in $0$ leads to division by $0$.
So, the expression $x/x$ defines function different from $1$, namely $0$
is not in the domain of function defined by $x/x$. For rational functions
we can easily limit the problem by canceling common divisors. FriCAS
expression domain is doing this auitomatically:
\begin{axiom}
sin(x)/sin(x)
\end{axiom}
Even for rational function we may still get into trouble in more complicated
situations. Consider $x/(x +y)$. Evaluation this at $x = 0$, $y = 0$ in
one step, that is as 'eval(x/(x + y), [x = 0, y = 0])' leads to division by
zero. OTOH evaluating in two steps gives value, but this value depends on
order of evaluation, first setting $y$ to $0$ we get $1$, while first
setting $x$ to $0$ gives $0$:
\begin{axiom}
eval(x/(x + y), [y = 0])
eval(x/(x + y), [x = 0])
\end{axiom}
Problem becomes more complicated when we consider algebraic expression.
Take differential form $dx/\sqrt(x^3  1)$. This form have no
singularities on curve with equation $y^2 = x^3  1$. More precisely,
to give welldefined meaning to square root we consider this curve.
Then $y$ is square root of $x^3  1$ and our form is $dx/y$. In
$(x, y)$ coordinates we have singularity when $y=0$ (and another singularity
at infinity). However, in different coordinates we can get nonsingular
expression at any given point. But we can not get coordinates good
for all point: for any fixed coordinate system there will be singular
points, even though for any point we can choose coordinate system
with no singularity at this point.
Fri, 26 Jul 2019 14:29:52 +0000[FriCASTutorial]
http://fricaswiki.math.uni.wroc.pl/FriCASTutorial
http://fricaswiki.math.uni.wroc.pl/FriCASTutorial
??changed:
in English, copy at: TutorialIntroductionToAxiom
in English, copy at: TutorialIntroductionToFriCAS
Sat, 20 Jul 2019 21:01:01 +0000[TutorialIntroductionToFriCAS]
http://fricaswiki.math.uni.wroc.pl/TutorialIntroductionToFriCAS
http://fricaswiki.math.uni.wroc.pl/TutorialIntroductionToFriCAS
??changed:

<html><!
Authors:
M. Dunstan (mnd@uk.ac.standrews)
{enter_new_authors_here}
History:
2nd December 1995:
Original version from LaTeX. (mnd)
2nd May, 1996:
Alterations of my own and from suggestions by Mike Dewar (NAG). (mnd)
{enter_major_changes_here}
>
<head><meta httpequiv="ContentType" content="text/html; charset=UTF8">
<title>A Tutorial Introduction To FriCAS</title>
<link rev="made" href="mailto:mnd@dcs.standrews.ac.uk (Martin Dunstan)">
</head>
<body>
<hr>
<center>
<h1>An Introduction To Programming In</h1>
<h1><img align="middle" alt="FriCAS" src="site_logo"></h1>
</center>
<hr>
<center>
<h1>By Martin N. Dunstan</h1>
May 2, 1996
</center>
<hr>
<!>
<! Table of contents: use hyperlinks where possible >
<!>
<h2>Contents</h2>
<ol>
<li><a href="#introduction">Introduction</a></li>
<li><a href="#pocket">Using <b>FriCAS</b> As A Pocket Calculator</a></li>
<ol>
<li><a href="#basicArith">Basic Arithmetic</a></li>
<li><a href="#typeConversionA">Type Conversion</a></li>
<li><a href="#usefulFunctions">Useful Functions</a></li>
</ol>
<li><a href="#symbolic">Using <b>FriCAS</b> As A Symbolic Calculator</a></li>
<ol>
<li><a href="#exprSymbols">Expressions Involving Symbols</a></li>
<li><a href="#complexNumbers">Complex Numbers</a></li>
<li><a href="#numberReps">Number Representations</a></li>
<li><a href="#modularArith">Modular Arithmetic</a></li>
</ol>
<li><a href="#generalPoints">General Points About <b>FriCAS</b></a></li>
<ol>
<li><a href="#compNoOutput">Computation Without Output</a></li>
<li><a href="#earlierResults">Accessing Earlier Result</a></li>
<li><a href="#splittingExprs">Splitting Expressions Over Several Lines</a></li>
<li><a href="#comments">Comments And Descriptions</a></li>
<li><a href="#typeConversionB">Control Of Result Types</a></li>
</ol>
<li><a href="#data">Data Structures In <b>FriCAS</b></a></li>
<ol>
<li><a href="#lists">Lists</a></li>
<li><a href="#segLists">Segmented Lists</a></li>
<li><a href="#Streams">Streams</a></li>
<li><a href="#arraysEtc">Arrays, Vectors, Strings and Bits</a></li>
<li><a href="#flexibleArrays">Flexible Arrays</a></li>
</ol>
<li><a href="#functionsEtc">Functions, Choices And Loops</a></li>
<ol>
<li><a href="#readFromFile">Reading Code From A File</a></li>
<li><a href="#Blocks">Blocks</a></li>
<li><a href="#functions">Functions</a></li>
<li><a href="#choices">Choices</a></li>
<li><a href="#loops">Loops</a></li>
<ol>
<li><a href="#repeat">The repeat Loop</a></li>
<li><a href="#while">The while Loop</a></li>
<li><a href="#for">The for Loop</a></li>
</ol>
</ol>
</ol>
<hr>
<!>
<!>
<! List of figures: use hyperlinks where possible >
<!>
<h2>List Of Figures</h2>
<blockquote>
<dl compact="">
<dt>2.1</dt>
<dd><a href="#figure2point1">Table of simple <b>FriCAS</b> functions.</a></dd>
<dt>2.2</dt>
<dd><a href="#figure2point2">Table of simple <b>FriCAS</b> operators.</a></dd>
<dt>2.3</dt>
<dd><a href="#figure2point3">Table of some useful <b>FriCAS</b> macros.</a></dd>
<pre></pre>
<dt>5.1</dt>
<dd><a href="#figure5point1">List <em>u</em> before <tt>setrest(endOfu,partOfu)</tt>.</a></dd>
<dt>5.2</dt>
<dd><a href="#figure5point2">List <em>u</em> after <tt>setrest(endOfu,partOfu)</tt>.</a></dd>
</dl>
</blockquote>
<hr>
<!>
<p></p>
<a name="introduction">
<h2>Chapter 1</h2>
<h2>Introduction</h2>
</a>
<p>
This document is intended to be a tutorial introduction to the <b>FriCAS</b>
(Release 1.3.5) system and its language. Initially the examples and
discussion will relate to the interactive system and the use of input
files will be touched on later.
</p>
<p>
Although "FriCAS Book":http://fricas.github.io/book.pdf (updated version of
<a href="#jenks1992">[jenks1992]</a>)
is an extremely useful book for those wanting to use the <b>FriCAS</b>
system it is not quite so helpful for learning to program in <b>FriCAS</b>.
Generally one learns a new programming language by writing short programs
("oneliners") before learning about the various flowcontrol
instructions such as <tt>if</tt> and <tt>while</tt>. However, learning to
use a large system such as <b>FriCAS</b> requires a text that covers a
significant part of the available features while keeping the number of
pages to a minimum as FriCAS Book
does. This is not to say that FriCAS Book
does not explain how to program in <b>FriCAS</b> since this is how the
author learned!
</p>
<p>
As a result the author has decided to produce this text as an introduction to
the <b>FriCAS</b> language for readers who are already familiar with at least
one programming language. Knowledge of a functional programming language
would be a benefit since many of the concepts found in functional languages
are present in <b>FriCAS</b> but is by no means essential. <b>FriCAS</b> is
<em>not</em> a functional language since it has a notion of state and
functions can (and sometimes do) have sideeffects.
</p>
<p>
This document has been compiled by working through
<a href="#jenks1992">[jenks1992]</a>
in parallel with interactive sessions of <b>FriCAS</b> (a new session is
started for each chapter). The structure of the text is the author's but
the majority of the information has come from
<a href="#jenks1992">[jenks1992]</a>
in some form or another since this appears to be the
only large body of information on <b>FriCAS</b> (apart from the HyperDoc
program). However, the examples are mostly of the author's own design
and are all extracted directly from the output produced by <b>FriCAS</b>  the
code for each example was copied from the <b>LaTeX</b> version of this document
into the <b>FriCAS</b> interpreter and the results copied back. As a result
there shouldn't be any mistakes.
</p>
<hr>
<blockquote>
Please let me
(<b><tt><a href="mailto:mnd@dcs.standrews.ac.uk">mnd@dcs.standrews.ac.uk</a></tt></b>)
know of any errors or any comments/criticisms you have regarding this
document as I would like to make it as useful as possible.
</blockquote>
<hr>
<!>
<p></p>
<a name="pocket">
<h2>Chapter 2</h2>
<h2>Using <b>FriCAS</b> As A Pocket Calculator</h2>
</a>
<p>
At the simplest level <b>FriCAS</b> can be used as a pocket calculator where
expressions involving numbers and operators are entered directly in infix
notation. In this sense the more advanced features of the calculator can
be regarded as operators (e.g. <b>sin</b>, <b>cos</b> etc.).
[2651 more lines...]
Sat, 20 Jul 2019 21:00:29 +0000