|
|
last edited 4 years ago by test1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 | ||
Editor: 127.0.0.1
Time: 2007/11/16 05:07:50 GMT-8 |
||
Note: make computations live |
changed: - <ul> - - <li> - <p> - Some computations. An important thing: everything is - <em>mathematically typed</em> in Axiom. <br/> - <pre> - -(1) -> 1+1 - - (1) 2 - Type: PositiveInteger -(2) -> integrate(1/x^(1/3),x) - - 3+-+2 - 3\|x - (2) ------ - 2 - Type: Union(Expression Integer,...) - </pre> - </p> - Axiom is running under Windows. - </li> - - <li> - Some matrix computations under <a href="http://texmacs.org/">TeXmacs</a>. - <p> - <img src="/uploads/screenshot3.png"> - </p> - Please notice the hierarchical editing capabilities of TeXmacs. - <p> - <img src="http://axiom-wiki.newsynthesis.org/uploads/screenshot2.jpg" /> - </p> - </li> - - <li> - <p>Some more complicated computations: - <pre> A short demonstration of Axiom An important thing: all objects in Axiom have a <em>type</em>. This enables us to give a simple demonstration of the Cayley-Hamilton theorem. Let n equal 4. The semicolon at the end of the input tells Axiom not to display the result. Thus, only its type is shown: \begin{axiom} n := 4; \end{axiom} We define an abbreviation: let 'SM' be the ring of quadratic $n\times n$ matrices with rational functions as entries: \begin{axiom} SM ==> SquareMatrix(n, FRAC POLY INT) \end{axiom} Let 'M' be a generic $4 \times 4$ matrix: \begin{axiom} M: SM := matrix [[a[i,j] for j in 1..n] for i in 1..n] \end{axiom} Compute the characteristis polynomial of 'M': \begin{axiom} P := determinant (M - x * 1); \end{axiom} We now interpret 'P' as univariate polynomial in 'x', coefficients being from the $4 \times 4$ matrices. The double colon performs this coercion: \begin{axiom} Q := P::UP(x, SM); \end{axiom} Finally we evaluate this polynomial with the original matrix as argument. In Axiom you do not need to use parenthesis if the function takes only one argument: \begin{axiom} Q M \end{axiom} Some matrix computations under <a href="http://texmacs.org/">TeXmacs</a>. <img src="/uploads/screenshot3.png"> Notice the hierarchical editing capabilities of TeXmacs. <img src="/uploads/screenshot2.jpg" /> Some more complicated computations: \begin{axiom} changed: - - All user variables and function definitions have been cleared. - -(1) -> Word := OrderedFreeMonoid(Symbol) - - - (1) OrderedFreeMonoid Symbol - Type: Domain -(2) -> poly:= XPR(Integer,Word) - - - (2) XPolynomialRing(Integer,OrderedFreeMonoid Symbol) - Type: Domain -(3) -> p:poly := 2 * x - 3 * y + 1 - - - (3) 1 + 2x - 3y - Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol) -(4) -> q:poly := 2 * x + 1 - - - (4) 1 + 2x - Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol) -(5) -> p + q - - - (5) 2 + 4x - 3y - Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol) -(6) -> p * q - - - 2 - (6) 1 + 4x - 3y + 4x - 6y x - Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol) -(7) -> (p +q)^2 -p^2 -q^2 - 2*p*q - - - (7) - 6x y + 6y x - Type: XPolynomialRing(Integer,OrderedFreeMonoid Symbol) -(8) -> M := SquareMatrix(2,Fraction Integer) - - - (8) SquareMatrix(2,Fraction Integer) - Type: Domain -(9) -> poly1:= XPR(M,Word) - - - (9) - XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol) - Type: Domain -(10) -> m1:M := matrix [[i*j**2 for i in 1..2] for j in 1..2] - - - +1 2+ - (10) | | - +4 8+ - Type: SquareMatrix(2,Fraction Integer) -(11) -> m2:M := m1 - 5/4 - - - + 1 + - |- - 2 | - | 4 | - (11) | | - | 27| - | 4 --| - + 4+ - Type: SquareMatrix(2,Fraction Integer) -(12) -> m3: M := m2**2 - - - +129 + - |--- 13 | - | 16 | - (12) | | - | 857| - |26 ---| - + 16+ - Type: SquareMatrix(2,Fraction Integer) -(13) -> pm:poly1 := m1*x + m2*y + m3*z - 2/3 - - - + 2 + + 1 + +129 + - |- - 0 | |- - 2 | |--- 13 | - | 3 | +1 2+ | 4 | | 16 | - (13) | | + | |x + | |y + | |z - | 2| +4 8+ | 27| | 857| - | 0 - -| | 4 --| |26 ---| - + 3+ + 4+ + 16+ -Type: XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol) -(14) -> qm:poly1 := pm - m1*x - - - + 2 + + 1 + +129 + - |- - 0 | |- - 2 | |--- 13 | - | 3 | | 4 | | 16 | - (14) | | + | |y + | |z - | 2| | 27| | 857| - | 0 - -| | 4 --| |26 ---| - + 3+ + 4+ + 16+ -Type: XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol) -(15) -> qm**3 - - - (15) - + 8 + + 1 8+ +43 52 + + 129 + - |- -- 0 | |- - -| |-- -- | |- --- - 26 | - | 27 | | 3 3| | 4 3 | | 8 | 2 - | | + | |y + | |z + | |y - | 8| |16 | |104 857| | 857| - | 0 - --| |-- 9| |--- ---| |- 52 - ---| - + 27+ + 3 + + 3 12+ + 8 + - + - + 3199 831 + + 3199 831 + + 103169 6409 + - |- ---- - --- | |- ---- - --- | |- ------ - ---- | - | 32 4 | | 32 4 | | 128 4 | 2 - | |y z + | |z y + | |z - | 831 26467| | 831 26467| | 6409 820977| - |- --- - -----| |- --- - -----| | - ---- - ------| - + 2 32 + + 2 32 + + 2 128 + - + - +3199 831 + +103169 6409 + +103169 6409 + - |---- --- | |------ ---- | |------ ---- | - | 64 8 | 3 | 256 8 | 2 | 256 8 | - | |y + | |y z + | |y z y - |831 26467| | 6409 820977| | 6409 820977| - |--- -----| | ---- ------| | ---- ------| - + 4 64 + + 4 256 + + 4 256 + - + - +3178239 795341 + +103169 6409 + +3178239 795341 + - |------- ------ | |------ ---- | |------- ------ | - | 1024 128 | 2 | 256 8 | 2 | 1024 128 | - | |y z + | |z y + | |z y z - |795341 25447787| | 6409 820977| |795341 25447787| - |------ --------| | ---- ------| |------ --------| - + 64 1024 + + 4 256 + + 64 1024 + - + - +3178239 795341 + +98625409 12326223 + - |------- ------ | |-------- -------- | - | 1024 128 | 2 | 4096 256 | 3 - | |z y + | |z - |795341 25447787| |12326223 788893897| - |------ --------| |-------- ---------| - + 64 1024 + + 128 4096 + -Type: XPolynomialRing(SquareMatrix(2,Fraction Integer),OrderedFreeMonoid Symbol) - </pre> - </p> - </li> - - </ul> - -</div> -<div id="credit">$Id: screenshots.html,v 1.8 2003/11/02 09:43:28 dmentre Exp $ -</div> - Word := OrderedFreeMonoid(Symbol) poly:= XPR(Integer,Word) p:poly := 2 * x - 3 * y + 1 1 + 2x - 3y q:poly := 2 * x + 1 p + q p * q (p +q)^2 -p^2 -q^2 - 2*p*q M := SquareMatrix(2,Fraction Integer) poly1:= XPR(M,Word) m1:M := matrix [[i*j**2 for i in 1..2] for j in 1..2] m2:M := m1 - 5/4 m3: M := m2**2 pm:poly1 := m1*x + m2*y + m3*z - 2/3 qm:poly1 := pm - m1*x qm**3 \end{axiom}
An important thing: all objects in Axiom have a type. This enables us to give a simple demonstration of the Cayley-Hamilton theorem.
Let n equal 4. The semicolon at the end of the input tells Axiom not to display the result. Thus, only its type is shown:
n := 4;
We define an abbreviation: let SM
be the ring of quadratic matrices with rational functions as entries:
SM ==> SquareMatrix(n,FRAC POLY INT)
Let M
be a generic matrix:
M: SM := matrix [[a[i,j] for j in 1..n] for i in 1..n]
(1) |
Compute the characteristis polynomial of 'M':
P := determinant (M - x * 1);
We now interpret P
as univariate polynomial in x
, coefficients being from the matrices. The double colon performs this coercion:
Q := P::UP(x,SM);
Finally we evaluate this polynomial with the original matrix as argument. In Axiom you do not need to use parenthesis if the function takes only one argument:
Q M
(2) |
Some matrix computations under TeXmacs?.
Notice the hierarchical editing capabilities of TeXmacs?.
Some more complicated computations:
)cl all
All user variables and function definitions have been cleared. Word := OrderedFreeMonoid(Symbol)
(3) |
poly:= XPR(Integer,Word)
(4) |
p:poly := 2 * x - 3 * y + 1
(5) |
1 + 2x - 3y
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. q:poly := 2 * x + 1
(6) |
p + q
(7) |
p * q
(8) |
(p +q)^2 -p^2 -q^2 - 2*p*q
(9) |
M := SquareMatrix(2,Fraction Integer)
(10) |
poly1:= XPR(M,Word)
(11) |
m1:M := matrix [[i*j**2 for i in 1..2] for j in 1..2]
(12) |
m2:M := m1 - 5/4
(13) |
m3: M := m2**2
(14) |
pm:poly1 := m1*x + m2*y + m3*z - 2/3
(15) |
qm:poly1 := pm - m1*x
(16) |
qm**3
(17) |