This is the front page of the SandBox?. You can try anything you like
here but keep in mind that other people are also using these pages to
learn and experiment with Axiom and Reduce. Please be curteous to
others if you correct mistakes and try to explain what you are doing.
No Email Notices
Normally, if you edit
any page on MathAction? and click
Save
or if you add a comment to a page, a notice of the
change is sent out to all subscribers on the axiom-developer
email list, see the [Axiom Community]?. Separate notices are
also sent to those users who subscribe
directly to
MathAction?.
Use Preview
If you click Preview
instead of Save
, you will get a chance
to see the result of your calculations and LaTeX? commands but
no email notice is sent out and the result is not saved until
you decide to click Save
or not.
Use the SandBox
On this page or on any other page with a name beginning with
SandBox? such as SandBoxJohn2?, SandBoxSimple?, SandBoxEtc?, clicking
Save
only sends email notices to users who subscribe
directly to that specific SandBox? page. Saving and adding
comments does not create an email to the email list. You
can safely use these pages for testing without disturbing
anyone who might not care to know about your experiments.
New SandBox Pages
You can also create new SandBox? pages as needed just by
editing this page and adding a link to the list of new page
below. The link must include at least two uppercase letters
and no spaces or alternatively it can be any phrase written
inside [ ] brackets as long as it begins with SandBox?. When
you Save this page, the link to the new page will appear with
a blue question mark ? beside it.
Clicking on the blue question mark ?
will ask you if you wish to create a new page.
- [SandBox Aldor Foreign]?
- Using Aldor to call external C routines
- [SandBox Aldor Generator]?
- Aldor defines a
generator
for type Vector
- [SandBox Aldor Semantics]?
- exports and constants
- [SandBox Aldor Sieve]?
- A prime number sieve in Aldor to count primes <= n.
- [SandBox Aldor Testing]?
- Using Aldor to write Axiom library routines
- [SandBox Arrays]?
- How fast is array access in Axiom?
- [SandBox Axiom Syntax]?
- Syntax of if then else
[SandboxBiblography]?
- [SandBox Boolean]?
- evaluating Boolean expressions and conditions
- [SandBox Cast]?
- Meaning and use of
pretend
vs. strong typing
- [SandBox Categorical Relativity]?
- Special relativity without the Lorentz group
- [SandBox Category of Graphs]?
- Graph theory in Axiom
- [SandBox CL-WEB]?
- Tangle operation for literate programming implemented in Common Lisp
- [SandBox Combinat]?
- A{ld,xi}o{r,m}Combinat
- [SandBox Content MathML]?
- Content vs. presentation MathML?
SandBoxCS224?
- [SandBox Direct Product]?
- A x B
- [SandBox DistributedExpression]?
- expression in sum-of-products form
- [SandBox Domains and Types]?
- What is the difference?
- [AxiomEmacsMode]?
- Beginnings of an Emacs mode for Axiom based off of Jay's work and others
- [SandBox Embeded PDF]?
- pdf format documents can be displayed inline
- [SandBox EndPaper]?
- Algebra and Data Structure Hierarchy (lattice) diagrams
- [SandBox Folding]?
- experiments with DHTML, javascript, etc.
- [SandBox Functional Addition]?
- "adding" two functions
- [SandBox Functions]?
- How do they work?
- [SandBox Functors]?
- What are they? In Axiom functors are also called domain constructors.
- [SandBox Gamma]?
- Numerical evaluation of the incomplete Gamma function
- [SandBox GuessingSequence]?
- Guessing integer sequences
- [SandBox Integration]?
- Examples of integration in Axiom and Reduce
- [SandBox Kernel]?
- What is a "kernel"?
[SandBox kaveh]?
- [SandBox LaTeX]?
- LaTeX? commands allowed in MathAction?
- [SandBox Lisp]?
- Using Lisp in Axiom
- [SandBox Manip]?
- expression manipulations
- [SandBox Manipulating Domains]?
- testing the domain of an expression
- [SandBox Mapping]?
- A->B is a type in Axiom
[MathMLFormat]?
- [SandBox Matrix]?
- Examples of working with matrices in Axiom
- [SandBox Maxima]?
- Testing the Maxima interface
- [SandBox Monoid]?
- Rings and things
- [SandBox Monoid Extend]?
- Martin Rubey's beautiful idea about using
extend
to add a category to a previously defined domain.
- [SandBox Noncommutative Polynomials]?
- XPOLY and friends
- [SandBox Numerical Integration]?
- Simpson method
- [SandBox NNI]?
- NonNegative? Integer without using SubDomain?
- [SandBox Pamphlet]?
- [Literate Programming]? support on MathAction?
- [SandBoxPartialFraction]?
- Trigonometric expansion example
- SandBoxPfaffian?
- Computing the Pfaffian of a square matrix
- [SandBox Polymake]?
- an interface between Axiom and PolyMake?
- [SandBox Polynomials]?
- Axiom's polynomial domains are certainly
rich and complex!
- [SandBox ProblemSolving]?
- Test page for educational purposes
- [SandBox Qubic]?
- Solving cubic polynomials
- [SandBox Reduce And MathML]?
- Reduce can use MathML? for both input and output
- [SandBoxRelativeVelocity]?
- Slides for IARD 2006: Addition of
Relative Velocites is Associative
- [SandBox RenameTitle]?
- trying to re-create a crash due to renaming pages
- [SandBox Sage]?
- This is a test of Sage in MathAction?
- [SandBox Shortcoming]?
- Implementation of solve
- [SandBox Solve]?
- Solving equations
- [SandBox Statistics]?
- calculating statistics in Axiom
- [SandBox SubDomain]?
- What is a SubDomain??
- [SandBox Tail Recursion]?
- When does Axiom replace recursion with iteration?
- [SandBox Text Files]?
- How to access text files in Axiom
- [SandBox Trace Analysed]?
- Tracing can affect output of
1::EXPR INT
or 1::FRAC INT
- [SandBox Tuples Products and Records]?
- Basic structured data types in Axiom
- [SandBox Units and Dimensions]?
- Scientific units and dimensions
- [SandBox Spad]?
- Domain construction
- [SandBox Speed]?
- Compilation speed
[SandBox Zero]?
[SandBox Axiom Strengths]?
- SandBoxJohn2?
- Experiments with matrices and various other stuff
- SandBox2?
- Experiments
- SandBox3?
- Experiments
- SandBox4?
- Experiments
- SandBox5?
- Experiments with GraphViz? and StructuredTables?
- SandBox6?
- Differential Equations etc.
- [SandBox7]?
- [SandBox8]?
- Here you can create your own SandBox?.
- [SandBox9]?
- Experiments with JET Bundles
[SandBox10]?
- [SandBox DoOps]?
- used to run Axiom without actually have to have it installed!
[SandBoxKMG]?
Click on the ? to create a new page.
You should also edit this page to include a description and a new empty
link for the next person.
Examples
Here is a simple Axiom command:
\begin{axiom}
integrate(1/(a+z^3), z=0..1,"noPole")
\end{axiom}
axiom
integrate(1/(a+z^3), z=0..1,"noPole")
Type: Union(f1: OrderedCompletion
? Expression Integer,...)
And here is a REDUCE command:
\begin{reduce}
load_package sfgamma;
load_package defint;
int(1/(a+z^3), z,0,1);
\end{reduce}
\begin{reduce}
load_package sfgamma;
load_package defint;
int(1/(a+z^3), z,0,1);
\end{reduce}
<hr />
Common Mistakes
Please review the list of [Common Mistakes]? and the list
of [MathAction Problems]? if you are have never used
MathAction? before. If you are learning to use Axiom and think
that someone must have solved some particular problem before
you, check this list of Common [Axiom Problems]?.
Works with ASCII text output formatting.
axiom
)set output tex off
)set output algebra on
axiom
solve([x^2 + y^2 - 2*(ax*x + ay*y) = l1, x^2 + y^2 - 2*(cx*x + cy*y) = l2],[x,y])
(2)
[
(- 2cy + 2ay)y - l2 + l1
[x= ------------------------,
2cx - 2ax
2 2 2 2 2
(4cy - 8ay cy + 4cx - 8ax cx + 4ay + 4ax )y
+
2 2
(4cy - 4ay)l2 + (- 4cy + 4ay)l1 + (8ax cx - 8ax )cy - 8ay cx
+
8ax ay cx
*
y
+
2 2 2 2
l2 + (- 2l1 + 4ax cx - 4ax )l2 + l1 + (- 4cx + 4ax cx)l1
=
0
]
]
Type: List List Equation Fraction Polynomial Integer
But fails with LaTeX?.
axiom
)set output tex on
)set output algebra off
The result of
0**0
depends on the type of '0':
axiom
(0::Float)**(0::Float)
>> Error detected within library code:
0**0 is undefined
The idea was, that defining as 1 is ok whenever there is no notion of limit. However,
axiom
(0::EXPR INT)**(0::EXPR INT)
Type: Expression Integer
is not quite in line with this, I think.
There has been some discussion on this subject on axiom-developer.
It is easy to change this behaviour, if we know better...
Let's see if the same happens here:
axiom
sinCosProducts := rule
sin (x) * sin (y) == (cos(x-y) - cos(x+y))/2
cos (x) * cos (y) == (cos(x-y) + cos(x+y))/2
sin (x) * cos (y) == (sin(x-y) + sin(x+y))/2
Type: Ruleset(Integer,Integer,Expression Integer)
When you are typing or when you cut-and-paste commands directly
into the Axiom interpreter you must use an underscore character at
the end of each incomplete line, and you must use the ( ) syntax
instead of identation, like this:
sinCosProducts := rule (_
sin (x) * sin (y) == (cos(x-y) - cos(x+y))/2; _
cos (x) * cos (y) == (cos(x-y) + cos(x+y))/2; _
sin (x) * cos (y) == (sin(x-y) + sin(x+y))/2)
Alternatively, using a text editor you can enter the commands into a
file called, for example sincos.input
exactly as in MathActon? above
and the use the command:
)read sincos.input
axiom
)lib RINTERPA RINTERP PCDEN GUESS GUESSINT GUESSP
)library cannot find the file RINTERPA.
)library cannot find the file RINTERP.
)library cannot find the file GUESS.
)library cannot find the file GUESSINT.
)library cannot find the file GUESSP.
PolynomialCommonDenominator is now explicitly exposed in frame
initial
PolynomialCommonDenominator will be automatically loaded when needed
from /var/zope2/var/LatexWiki/PCDEN.NRLIB/code
guess(n, [1, 5, 14, 34, 69, 135, 240, 416, 686, 1106], n+->n, [guessRat], [guessSum, guessProduct, guessOne],2)$GuessInteger
The function guess is not implemented in GuessInteger .
Unknown wrote:
z:=sum(myfn(x),x=1..10) -- This fails, why?
The reason this fails is because Axiom tries to evaluate
myfn(x)
first. But x
is not yet an Integer
so Axiom
cannot compute myfn(x)
. I guess you were expecting Axiom
to "wait" and not evaluate myfn(x)
until after x
has
been assigned the value 1, right? But Axiom does not work
this way.
The solution is to write myfn(x)
so that is can be applied
to something symbolic like x
. For example something this:
axiom
myfn(i : Expression Integer) : Expression Integer == i
Function declaration myfn : Expression Integer -> Expression Integer
has been added to workspace.
Type: Void
axiom
Compiling function myfn with type Expression Integer -> Expression
Integer
Type: Expression Integer
axiom
z:=sum(myfn(x),x=1..10)
Type: Expression Integer
Hi Bill:
Thanks for your quick response. I tried to respond to this earlier, but didn't see it in the sand box, please forgive me if you get multiple copies.
I tried to simplify the code from my original program, and generated a univariate function, however my actual code has a multivariate function,
and your excellent hint on the use of the Expression qualifier on the parameter and return type which works great for the univariate function case appears to fail for multivarite functions.
Please consider the following example.
axiom
a(n : Expression Integer, k : Expression Integer, p : Expression Float) : Expression Float == binomial(n,k) * p**(k) * (1.0-p)**(n-k)
Function declaration a : (Expression Integer,Expression Integer,
Expression Float) -> Expression Float has been added to
workspace.
Type: Void
axiom
output(a(4,3,0.25)) -- see that the function actually evaluates for sensible values
axiom
Compiling function a with type (Expression Integer,Expression
Integer,Expression Float) -> Expression Float
0.046875
Type: Void
axiom
z := sum(a(4,i,0.25), i=1..3) --- this fails
There are 6 exposed and 2 unexposed library operations named sum
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op sum
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named sum
with argument type(s)
Expression Float
SegmentBinding PositiveInteger
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
output(z)
55
Type: Void
I did notice in the Axiom online book, chapter 6.6, around page 241, the recommendation to use untyped functions, which appears to allow Axiom to do
inference on parameter and result type.
axiom
b(n, k, p) == binomial(n,k) * p**(k) * (1.0-p)**(n-k)
Type: Void
axiom
output(b(4,3,0.25)) -- see that the function actually evaluates for sensible values
axiom
Compiling function b with type (PositiveInteger,PositiveInteger,
Float) -> Float
0.046875
Type: Void
axiom
z := sum(b(4,i,0.25), i=1..3) --- this fails
axiom
Compiling function b with type (PositiveInteger,Variable i,Float)
-> Expression Float
There are 6 exposed and 2 unexposed library operations named sum
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op sum
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named sum
with argument type(s)
Expression Float
SegmentBinding PositiveInteger
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
output(z)
55
Type: Void
For univariate functions the approach
axiom
c(k) == binomial(4,k) * 0.25**k * (1.0 - 0.25)**(4-k) -- This approach is only a test, but is not suitable for my program
Type: Void
axiom
output(c(3)) -- test to see if function can be evaluated for sensible arguments
axiom
Compiling function c with type PositiveInteger -> Float
0.046875
Type: Void
axiom
z := sum(c(i), i=1..3) -- still doesn't work
axiom
Compiling function c with type Variable i -> Expression Float
There are 6 exposed and 2 unexposed library operations named sum
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op sum
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named sum
with argument type(s)
Expression Float
SegmentBinding PositiveInteger
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
output(z)
55
Type: Void
But interestingly something like
axiom
d(k) == 1.5 * k -- coerce uotput to be a Float
Type: Void
axiom
z := sum(d(i), i=1..3) -- This works!
axiom
Compiling function d with type Variable i -> Polynomial Float
Type: Fraction Polynomial Float
Type: Void
Bill, thanks again for your quick help, unforutnatly I lack a local Axiom expert, any ideas would really be welcome here.
Try this
axiom
z := reduce(+,[b(4,i,0.25) for i in 1..3])
Type: Float
Hi all:
Thanks Bill Page for your help, it is much appreciated (although I used a for loop and not reduce :-)).
I'm having a bit of difficulty getting a Function returning a matrix to work as expected,
perhaps it is just cockpit error, but I don't see the error of my ways.
axiom
CFM(Q : Matrix(Float)): Matrix(Float) ==
x := nrows(Q)
MyIdentityMatrix : Matrix(Float) := new(x, x, 0)
for i in 1..nrows(MyIdentityMatrix) repeat
MyIdnetityMatrix(i,i) := 1.0
Ninv := MyIdnetityMatrix - Q
N := inverse(Ninv)
N
Function declaration CFM : Matrix Float -> Matrix Float has been
added to workspace.
Type: Void
axiom
--test ComputeFundamentalMatrix
X := matrix[[0, 0.5, 0],[0.5, 0, 0.5],[0, 0.5, 0]]
Type: Matrix Float
axiom
output(X)
+0.0 0.5 0.0+
| |
|0.5 0.0 0.5|
| |
+0.0 0.5 0.0+
Type: Void
axiom
N := CFM(X)
The form on the left hand side of an assignment must be a single
variable, a Tuple of variables or a reference to an entry in an
object supporting the setelt operation.
output(N)
N
Type: Void
Any ideas where I'm blowing it here? I tried explicitly setting N to be a Matrix type but that failed too.
axiom
CFM(Q : Matrix(Float)): Matrix(Float) ==
x := nrows(Q)
MyIdentityMatrix : Matrix(Float) := new(x, x, 0)
for i in 1..nrows(MyIdentityMatrix) repeat
MyIdnetityMatrix(i,i) := 1.0
Ninv := MyIdnetityMatrix - Q
N := inverse(Ninv)
N
Function declaration CFM : Matrix Float -> Matrix Float has been
added to workspace.
Compiled code for CFM has been cleared.
1 old definition(s) deleted for function or rule CFM
Type: Void
axiom
--test ComputeFundamentalMatrix
X := matrix[[0, 0.5, 0],[0.5, 0, 0.5],[0, 0.5, 0]]
Type: Matrix Float
axiom
output(X)
+0.0 0.5 0.0+
| |
|0.5 0.0 0.5|
| |
+0.0 0.5 0.0+
Type: Void
axiom
N : Matrix(Float) := CFM(X)
The form on the left hand side of an assignment must be a single
variable, a Tuple of variables or a reference to an entry in an
object supporting the setelt operation.
output(N)
N is declared as being in Matrix Float but has not been given a
value.
Thanks again for all your help.
Regards:
Bill M. (Sorry, my unique last name attracts too much spam).
although I used a for loop and not reduce :-)
Good thinking. ;)
You have a simple typographical error. You have written both:
MyIdentityMatrix
and :
MyIdnetityMatrix
BTW, instead of the complicated construction of the identify matrix
you should just write:
Ninv := 1 - Q
For matrices 1
denotes the identity.
axiom
)set output tex off
)set output algebra on
FunFun := x**4 - 6* x**3 + 11* x*x + 2* x + 1
4 3 2
(28) x - 6x + 11x + 2x + 1
Type: Polynomial Integer
axiom
radicalSolve(FunFun)
(29)
[
x =
-
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
- 9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
30 |--------------------- - 169
3| +-+
\| 27\|3
*
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
15 |--------------------- + 169
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
- 144 |---------------------
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
*
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
15 |--------------------- + 169
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+-------------------------------------------------------------+
| +---------------------+2 +---------------------+
| | +-+ +----+ | +-+ +----+
| |2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
|9 |--------------------- + 15 |--------------------- + 169
| 3| +-+ 3| +-+
| \| 27\|3 \| 27\|3
|------------------------------------------------------------- + 3
| +---------------------+
| | +-+ +----+
| |2069\|3 + 144\|- 79
| 9 |---------------------
| 3| +-+
\| \| 27\|3
/
2
,
x =
ROOT
+---------------------+2 +---------------------+
| +-+ +----+ | +-+ +----+
|2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
- 9 |--------------------- + 30 |---------------------
3| +-+ 3| +-+
\| 27\|3 \| 27\|3
+
- 169
*
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
15 |--------------------- + 169
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
- 144 |---------------------
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
*
+-------------------------------------------------------------+
| +---------------------+2 +---------------------+
| | +-+ +----+ | +-+ +----+
| |2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
|9 |--------------------- + 15 |--------------------- + 169
| 3| +-+ 3| +-+
| \| 27\|3 \| 27\|3
|-------------------------------------------------------------
| +---------------------+
| | +-+ +----+
| |2069\|3 + 144\|- 79
| 9 |---------------------
| 3| +-+
\| \| 27\|3
+
+-------------------------------------------------------------+
| +---------------------+2 +---------------------+
| | +-+ +----+ | +-+ +----+
| |2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
|9 |--------------------- + 15 |--------------------- + 169
| 3| +-+ 3| +-+
| \| 27\|3 \| 27\|3
|------------------------------------------------------------- + 3
| +---------------------+
| | +-+ +----+
| |2069\|3 + 144\|- 79
| 9 |---------------------
| 3| +-+
\| \| 27\|3
/
2
,
x =
-
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
- 9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
30 |--------------------- - 169
3| +-+
\| 27\|3
*
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
15 |--------------------- + 169
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
144 |---------------------
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
*
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
15 |--------------------- + 169
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+-------------------------------------------------------------+
| +---------------------+2 +---------------------+
| | +-+ +----+ | +-+ +----+
| |2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
|9 |--------------------- + 15 |--------------------- + 169
| 3| +-+ 3| +-+
| \| 27\|3 \| 27\|3
- |------------------------------------------------------------- + 3
| +---------------------+
| | +-+ +----+
| |2069\|3 + 144\|- 79
| 9 |---------------------
| 3| +-+
\| \| 27\|3
/
2
,
x =
ROOT
+---------------------+2 +---------------------+
| +-+ +----+ | +-+ +----+
|2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
- 9 |--------------------- + 30 |---------------------
3| +-+ 3| +-+
\| 27\|3 \| 27\|3
+
- 169
*
ROOT
+---------------------+2
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
15 |--------------------- + 169
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
+
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
144 |---------------------
3| +-+
\| 27\|3
/
+---------------------+
| +-+ +----+
|2069\|3 + 144\|- 79
9 |---------------------
3| +-+
\| 27\|3
*
+-------------------------------------------------------------+
| +---------------------+2 +---------------------+
| | +-+ +----+ | +-+ +----+
| |2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
|9 |--------------------- + 15 |--------------------- + 169
| 3| +-+ 3| +-+
| \| 27\|3 \| 27\|3
|-------------------------------------------------------------
| +---------------------+
| | +-+ +----+
| |2069\|3 + 144\|- 79
| 9 |---------------------
| 3| +-+
\| \| 27\|3
+
+-------------------------------------------------------------+
| +---------------------+2 +---------------------+
| | +-+ +----+ | +-+ +----+
| |2069\|3 + 144\|- 79 |2069\|3 + 144\|- 79
|9 |--------------------- + 15 |--------------------- + 169
| 3| +-+ 3| +-+
| \| 27\|3 \| 27\|3
- |------------------------------------------------------------- + 3
| +---------------------+
| | +-+ +----+
| |2069\|3 + 144\|- 79
| 9 |---------------------
| 3| +-+
\| \| 27\|3
/
2
]
Type: List Equation Expression Integer
axiom
)set output tex on
)set output algebra off
Matthias
axiom
t:=matrix ([[0,1,1],[1,-2,2],[1,2,-1]])
Type: Matrix Integer
We cat diagonalise t by finding it's eigenvalues.
axiom
)set output tex off
)set output algebra on
e:=radicalEigenvectors(t)
(31)
[
+-----------------+2 +-----------------+
| +-+ +------+ | +-+ +------+
|3\|3 + \|- 1345 |3\|3 + \|- 1345
3 |----------------- - 3 |----------------- + 7
3| +-+ 3| +-+
\| 6\|3 \| 6\|3
[radval= --------------------------------------------------, radmult= 1,
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
3 |-----------------
3| +-+
\| 6\|3
radvect =
[
[
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
- 12\|3 |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+-+ +------+ |3\|3 + \|- 1345 +-+ +------+
(60\|3 + 6\|- 1345 ) |----------------- + 205\|3 + 3\|- 1345
3| +-+
\| 6\|3
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
126\|3 |-----------------
3| +-+
\| 6\|3
]
,
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
6\|3 |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+-+ +------+ |3\|3 + \|- 1345 +-+ +------+
(117\|3 - 3\|- 1345 ) |----------------- - 71\|3 + 9\|- 1345
3| +-+
\| 6\|3
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
126\|3 |-----------------
3| +-+
\| 6\|3
]
,
[1]]
]
]
,
[
radval =
+-----------------+2
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 - 3) |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 + 3) |----------------- + 14
3| +-+
\| 6\|3
/
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(3\|- 3 - 3) |-----------------
3| +-+
\| 6\|3
,
radmult= 1,
radvect =
[
[
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
- 24\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((- 60\|- 3 - 60)\|3 - 6\|- 1345 \|- 3 - 6\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(205\|- 3 - 205)\|3 + 3\|- 1345 \|- 3 - 3\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
]
,
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
12\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((- 117\|- 3 - 117)\|3 + 3\|- 1345 \|- 3 + 3\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(- 71\|- 3 + 71)\|3 + 9\|- 1345 \|- 3 - 9\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
]
,
[1]]
]
]
,
[
radval =
+-----------------+2
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 + 3) |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 - 3) |----------------- - 14
3| +-+
\| 6\|3
/
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(3\|- 3 + 3) |-----------------
3| +-+
\| 6\|3
,
radmult= 1,
radvect =
[
[
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
- 24\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((60\|- 3 - 60)\|3 + 6\|- 1345 \|- 3 - 6\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(- 205\|- 3 - 205)\|3 - 3\|- 1345 \|- 3 - 3\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
]
,
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
12\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((117\|- 3 - 117)\|3 - 3\|- 1345 \|- 3 + 3\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(71\|- 3 + 71)\|3 - 9\|- 1345 \|- 3 - 9\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
]
,
[1]]
]
]
]
Type: List Record(radval: Expression Integer,radmult: Integer,radvect: List Matrix Expression Integer)
axiom
d:=diagonalMatrix([e.1.radval,e.2.radval,e.3.radval])
Function definition for d is being overwritten.
Compiled code for d has been cleared.
(32)
+-----------------+2 +-----------------+
| +-+ +------+ | +-+ +------+
|3\|3 + \|- 1345 |3\|3 + \|- 1345
3 |----------------- - 3 |----------------- + 7
3| +-+ 3| +-+
\| 6\|3 \| 6\|3
[[--------------------------------------------------,0,0],
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
3 |-----------------
3| +-+
\| 6\|3
[0,
+-----------------+2
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 - 3) |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 + 3) |----------------- + 14
3| +-+
\| 6\|3
/
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(3\|- 3 - 3) |-----------------
3| +-+
\| 6\|3
,
0]
,
[0, 0,
+-----------------+2
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 + 3) |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(- 3\|- 3 - 3) |----------------- - 14
3| +-+
\| 6\|3
/
+-----------------+
| +-+ +------+
+---+ |3\|3 + \|- 1345
(3\|- 3 + 3) |-----------------
3| +-+
\| 6\|3
]
]
Type: Matrix Expression Integer
Now prove it by constructing the simularity transformation
from the eigenvectors:
axiom
p:=horizConcat(horizConcat(e.1.radvect.1,e.2.radvect.1),e.3.radvect.1)
(33)
[
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
- 12\|3 |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+-+ +------+ |3\|3 + \|- 1345 +-+ +------+
(60\|3 + 6\|- 1345 ) |----------------- + 205\|3 + 3\|- 1345
3| +-+
\| 6\|3
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
126\|3 |-----------------
3| +-+
\| 6\|3
,
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
- 24\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((- 60\|- 3 - 60)\|3 - 6\|- 1345 \|- 3 - 6\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(205\|- 3 - 205)\|3 + 3\|- 1345 \|- 3 - 3\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
,
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
- 24\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((60\|- 3 - 60)\|3 + 6\|- 1345 \|- 3 - 6\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(- 205\|- 3 - 205)\|3 - 3\|- 1345 \|- 3 - 3\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
]
,
[
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
6\|3 |-----------------
3| +-+
\| 6\|3
+
+-----------------+
| +-+ +------+
+-+ +------+ |3\|3 + \|- 1345 +-+ +------+
(117\|3 - 3\|- 1345 ) |----------------- - 71\|3 + 9\|- 1345
3| +-+
\| 6\|3
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
126\|3 |-----------------
3| +-+
\| 6\|3
,
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
12\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((- 117\|- 3 - 117)\|3 + 3\|- 1345 \|- 3 + 3\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(- 71\|- 3 + 71)\|3 + 9\|- 1345 \|- 3 - 9\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
,
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
12\|3 |-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
((117\|- 3 - 117)\|3 - 3\|- 1345 \|- 3 + 3\|- 1345 )
*
+-----------------+
| +-+ +------+
|3\|3 + \|- 1345
|-----------------
3| +-+
\| 6\|3
+
+---+ +-+ +------+ +---+ +------+
(71\|- 3 + 71)\|3 - 9\|- 1345 \|- 3 - 9\|- 1345
/
+-----------------+2
| +-+ +------+
+-+ |3\|3 + \|- 1345
252\|3 |-----------------
3| +-+
\| 6\|3
]
,
[1,1,1]]
Type: Matrix Expression Integer
axiom
p*d*inverse(p)
+0 1 1 +
| |
(34) |1 - 2 2 |
| |
+1 2 - 1+
Type: Matrix Expression Integer
axiom
)set output tex on
)set output algebra off
\end{axiom}
Axiom can't integrame exp(x^4) ;(
axiom
integrate(exp(x**4),x)
Type: Union(Expression Integer,...)
But Maple can...
axiom
f(x) == (1/4)*x*(-Gamma(1/4,-x**4)*Gamma(3/4)+%pi*sqrt(2))/((-x**4)**(1/4)*Gamma(3/4))
Type: Void
axiom
Compiling function f with type Variable x -> Expression DoubleFloat
Type: Expression DoubleFloat
?
This is not a big surprise: note that
Gamma(x,y)
is not an elementary function.
Martin
This is both obviously wrong since the integrand is a positive function:
axiom
integrate(1/(1+x^4),x=%minusInfinity..%plusInfinity)
Type: Union(f1: OrderedCompletion
? Expression Integer,...)
axiom
numeric(integrate(1/(1+x^4),x=0..1))
Type: Float
axiom
)clear co
All user variables and function definitions have been cleared.
All )browse facility databases have been cleared.
Internally cached functions and constructors have been cleared.
)clear completely is finished.
n := 32
axiom
y : FARRAY INT := new(n,1)
Type: FlexibleArray
? Integer
axiom
n1 := sum(x^1, x=0..n-1)
Type: Fraction Polynomial Integer
axiom
n2 := sum(x^2, x=0..n-1)
Type: Fraction Polynomial Integer
axiom
n3 := sum(x^3, x=0..n-1)
Type: Fraction Polynomial Integer
axiom
n4 := sum(x^4, x=0..n-1)
Type: Fraction Polynomial Integer
axiom
A := matrix([[n4, n3, n2],_
[n3, n2, n1],_
[n2, n1, n0]])
Type: Matrix Fraction Polynomial Integer
axiom
X := vector([x1, x2, x3])
Type: Vector OrderedVariableList
? [x1,x2,x3]
?
axiom
B := vector([sum(x^2* u, x=0..n-1),_
sum(x* v, x=0..n-1),_
sum( w, x=0..n-1)])
Type: Vector Fraction Polynomial Integer
axiom
solve([A * X = B], [x1, x2, x3])
There are 18 exposed and 3 unexposed library operations named solve
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op solve
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named solve
with argument type(s)
List Equation Vector Fraction Polynomial Integer
List OrderedVariableList [x1,x2,x3]
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
axiom
integrate(1/((x+t)*sqrt(1+(x*t)**2)),t=0..%plusInfinity,"noPole")
Type: Union(f1: OrderedCompletion
? Expression Integer,...)
Type: Expression Integer
axiom
integrate(1/((1+t)*sqrt(1+(1*t)**2)),t=0..%plusInfinity,"noPole")
Type: Union(f1: OrderedCompletion
? Expression Integer,...)
axiom
simplify(%-subst((asinh(x^2)+asinh(1/x^2))/sqrt(1+x^4),x=1))
Type: Expression Integer
Type: Expression Float
axiom
a := matrix([ [-1,0,0,0,1,0], [0,1,0,0,0,0], [0,0,2,0,0,-2], [0,0,0,4,0,0], [0,0,0,0,3,0], [0,0,-3,0,0,3]])
Type: Matrix Integer
Type: NonNegativeInteger
?
Type: Union("failed",...)
a := matrix([ [-3,1,1,1]
?, [1,1,1,1]
?, [1,1,1,1]
?, [1,1,1,1]]
?)
axiom
As := matrix([ [-3,1,1,1], [1,1,1,1], [1,1,1,1], [1,1,1,1]])
Type: Matrix Integer
axiom
A := subMatrix(As, 2,4,2,4)
Type: Matrix Integer
axiom
ob := orthonormalBasis(A)
Type: List Matrix Expression Integer
axiom
P : Matrix(Expression Integer) := new(3,3,0)
Type: Matrix Expression Integer
axiom
setsubMatrix!(P,1,1,ob.3)
Type: Matrix Expression Integer
axiom
setsubMatrix!(P,1,2,ob.1)
Type: Matrix Expression Integer
axiom
setsubMatrix!(P,1,3,ob.2)
Type: Matrix Expression Integer
Type: Matrix Expression Integer
axiom
Ps : Matrix(Expression Integer) := new(4,4,0)
Type: Matrix Expression Integer
Type: Expression Integer
axiom
setsubMatrix!(Ps,2,2,P)
Type: Matrix Expression Integer
axiom
PsT := transpose(Ps)
Type: Matrix Expression Integer
axiom
PsTAsPs := PsT * As * Ps
Type: Matrix Expression Integer
Type: Expression Integer
Type: Expression Integer
axiom
Us : Matrix(Expression Integer) := new(4,4,0)
Type: Matrix Expression Integer
Type: Expression Integer
Type: Expression Integer
Type: Expression Integer
Type: Expression Integer
Type: Expression Integer
Type: Matrix Expression Integer
axiom
PsUsT := transpose(PsUs)
Type: Matrix Expression Integer
axiom
PsUsTAsPsUs := PsUsT * As * PsUs
Type: Matrix Expression Integer
Type: Union(Matrix Expression Integer,...)
axiom
c := PsUsTAsPsUs(1,1)
Type: Expression Integer
axiom
gQ := PsUsTAsPsUs / c
Type: Matrix Expression Integer
axiom
x1 := transpose(matrix([[1,2,3,4]]))
Type: Matrix Integer
axiom
v1 := transpose(x1) * As * x1
Type: Matrix Integer
Type: Matrix Expression Integer
axiom
v2 := transpose(x2) * PsUsTAsPsUs * x2
Type: Matrix Expression Integer
axiom
draw(y**2/2+(x**2-1)**2/4-1=0, x,y, range ==[-2..2, -1..1])
There are 20 exposed and 18 unexposed library operations named **
having 2 argument(s) but none was determined to be applicable.
Use HyperDoc Browse, or issue
)display op **
to learn more about the available operations. Perhaps
package-calling the operation or using coercions on the arguments
will allow you to apply the operation.
Cannot find a definition or applicable library operation named **
with argument type(s)
FlexibleArray Integer
PositiveInteger
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
axiom
f1 := taylor(1 - x**2,x = 0)
Type: UnivariateTaylorSeries
?(Expression Integer,x,0)
Type: UnivariateTaylorSeries
?(Expression Integer,x,0)
Type: UnivariateTaylorSeries
?(Expression Integer,x,0)
SandboxMSkuce?
axiom
integrate((x-1)/log(x), x)
Type: Union(Expression Integer,...)
axiom
integrate(x*exp(x)*sin(x),x)
Type: Union(Expression Integer,...)
axiom
[p for p in primes(2,1000)|(p rem 16)=1]
Type: List Integer
axiom
[p**2+1 for p in primes(2,100)]
Type: List Integer
axiom
integrate (2x^2 + 2x, x)
Cannot find a definition or applicable library operation named 2
with argument type(s)
Variable x
Perhaps you should use "@" to indicate the required return type,
or "$" to specify which version of the function you need.
Is it error?
axiom
integrate(log(log(x)),x)
Type: Union(Expression Integer,...)