Works with ASCII text output formatting.
axiom
)set output tex off
axiom
)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])
(1)
[
(- 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
axiom
)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
RationalInterpolationAlgorithms is now explicitly exposed in frame
initial
RationalInterpolationAlgorithms will be automatically loaded when
needed from /var/zope2/var/LatexWiki/RINTERPA.NRLIB/RINTERPA
RationalInterpolation is now explicitly exposed in frame initial
RationalInterpolation will be automatically loaded when needed from
/var/zope2/var/LatexWiki/RINTERP.NRLIB/RINTERP
PolynomialCommonDenominator is now explicitly exposed in frame
initial
PolynomialCommonDenominator will be automatically loaded when needed
from /var/zope2/var/LatexWiki/PCDEN.NRLIB/PCDEN
Guess is now explicitly exposed in frame initial
Guess will be automatically loaded when needed from
/var/zope2/var/LatexWiki/GUESS.NRLIB/GUESS
GuessInteger is now explicitly exposed in frame initial
GuessInteger will be automatically loaded when needed from
/var/zope2/var/LatexWiki/GUESSINT.NRLIB/GUESSINT
GuessPolynomial is now explicitly exposed in frame initial
GuessPolynomial will be automatically loaded when needed from
/var/zope2/var/LatexWiki/GUESSP.NRLIB/GUESSP
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
myfn(x)
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))
axiom
output(z)
9.0
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
axiom
)set output algebra on
FunFun := x**4 - 6* x**3 + 11* x*x + 2* x + 1
4 3 2
(27) x - 6x + 11x + 2x + 1
Type: Polynomial(Integer)
axiom
radicalSolve(FunFun)
(28)
[
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
axiom
)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
axiom
)set output algebra on
e:=radicalEigenvectors(t)
(30)
[
+-----------------+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.
(31)
+-----------------+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)
(32)
[
[
+-----------------+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 +
| |
(33) |1 - 2 2 |
| |
+1 2 - 1+
Type: Matrix(Expression(Integer))
axiom
)set output tex on
axiom
)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
D(f(x),x)
axiom
Compiling function f with type Variable(x) -> Expression(Integer)
Type: Expression(Integer)
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
n0 := n
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)),
...)
axiom
subst(%,x=1)
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)
axiom
%::Expression Float
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)
axiom
determinant(a)
Type: NonNegativeInteger
?
axiom
inverse(a)
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))
axiom
Pt := transpose(P)
Type: Matrix(Expression(Integer))
axiom
Ps : Matrix(Expression Integer) := new(4,4,0)
Type: Matrix(Expression(Integer))
axiom
Ps(1,1) := 1
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))
axiom
b1 := PsTAsPs(2,1)
Type: Expression(Integer)
axiom
l1 := PsTAsPs(2,2)
Type: Expression(Integer)
axiom
Us : Matrix(Expression Integer) := new(4,4,0)
Type: Matrix(Expression(Integer))
axiom
Us(1,1) := 1
Type: Expression(Integer)
axiom
Us(2,2) := 1
Type: Expression(Integer)
axiom
Us(3,3) := 1
Type: Expression(Integer)
axiom
Us(4,4) := 1
Type: Expression(Integer)
axiom
Us(2,1) := -b1 / l1
Type: Expression(Integer)
axiom
PsUs := Ps * Us
Type: Matrix(Expression(Integer))
axiom
PsUsT := transpose(PsUs)
Type: Matrix(Expression(Integer))
axiom
PsUsTAsPsUs := PsUsT * As * PsUs
Type: Matrix(Expression(Integer))
axiom
C := inverse(PsUs)
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)
axiom
x2 := C * x1
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 no library operations named **
Use HyperDoc Browse or issue
)what op **
to learn if there is any operation containing " ** " in its name.
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)
axiom
asin f1
Type: UnivariateTaylorSeries
?(Expression(Integer),
x,
0)
axiom
sin %
Type: UnivariateTaylorSeries
?(Expression(Integer),
x,
0)
SandboxMSkuce?
axiom
1+1
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.
axiom
radix(36,37)
Type: RadixExpansion
?(37)
Is it error?
axiom
integrate(log(log(x)),x)
Type: Union(Expression(Integer),...)