1. abs absolute value 2. adj adjunct of matrix 3. arccos 4. arccosh 5. arcsin 6. arcsinh 7. arctan 8. arctanh 9. binomial 10. break break out of a loop 11. ceiling 12. check stop if not zero 13. condense find subexpressions 14. conj complex conjugate 15. contract contract across tensor indices 16. cos 17. cosh 18. d derivative and gradient 19. denominator 20. det determinant of a matrix 21. dim 22. display display an expression 23. do evaluate multiple expressions 24. dot inner product of tensors 25. draw draw a graph 26. eigen 27. eval normalize an expression 28. exp 29. expcos exponential cosine 30. expsin exponential sine 31. factor factor a number or polynomial 32. factorial 33. filter 34. float 35. floor 36. for 37. gcd 38. hermite emit a hermite polynomial 39. hilbert emit a hilbert matrix 40. inner inner product of tensors 41. integral 42. inv invert a matrix 43. isprime 44. laguerre emit a laguerre polynomial 45. lcm least common multiple 46. legendre emit a legendre polynomial 47. log natural logarithm 48. mod 49. numerator 50. outer outer product of tensors 51. prime 52. print 53. product multiply over an index 54. prog evaluate with scoped variables 55. quote 56. rank rank of tensor 57. rationalize combine fractions 58. return early return from a function 59. roots find roots of a polynomial 60. simfac simplify factorials 61. simplify simplify an expression 62. sin 63. sinh 64. sqrt square root 65. stop stop running a script 66. subst substitute expressions 67. sum sum over an index 68. tan 69. tanh 70. taylor emit a taylor series 71. test conditional evaluation 72. trace trace of matrix 73. transpose transpose tensor indices 74. unit emit a unit matrix 75. wedge wedge product of tensors 76. zero emit a zero tensor
Enter
abs(a - b) + abs(b - a)
Result
2 abs(a - b)
Enter
abs(3 + 4 i)
Result
5
Enter
abs((a,b,c))
Result
1/2
2 2 2
(a + b + c )
Enter
A = (1,i,-i)
sqrt(dot(A,conj(A))) - abs(A)
Result
0
Enter
A = ((1,2),(3,4))
abs(A)
Result
stop: abs(tensor) with tensor rank > 1
Enter
A = ((a,b),(c,d))
adj(A)
Result
d -b
-c a
The inverse of a matrix is equal to the adjunct divided by the determinant.
Enter
inv(A) - adj(A) / det(A)
Result
0
Enter
binomial(10,5)
Result
252
Enter
2 a (x + 1)
Result
2 a + 2 a x
Enter
condense(last)
Result
2 a (x + 1)
Enter
conj(3+4i)
Result
3 - 4 i
Enter
A = ((a,b),(c,d))
contract(A,1,2)
Result
a + d
Enter
d(x^2,x)
Result
2 x
For tensor f the derivative of each element is computed.
Enter
d((x,x^2),x)
Result
1
2 x
Returns the gradient of f when x is a vector.
Note that gradient raises the rank of f by 1.
Enter
u = x^2 + y^3
d(u,(x,y))
Result
2 x
2
3 y
Functions with 0-arity are treated as dependent on all variables.
Enter
d(f(),(x,y))
Result
d(f(),x)
d(f(),y)
Since partial derivatives commute, multi-derivatives are ordered to produce a
canonical form.
Enter
d(d(f(),y),x)
Result
d(d(f(),x),y)
Enter
denominator(a/b)
Result
b
Enter
A = ((a,b),(c,d))
det(A)
Result
a d - b c
Enter
A = (1,2,3,4)
dim(A)
Result
4
Enter
A = ((1,2,3),(4,5,6))
dim(A,1)
Result
2
Enter
dim(A,2)
Result
3
| Gamma | Γ | alpha | α | mu | μ | ||
| Delta | Δ | beta | β | nu | ν | ||
| Theta | Θ | gamma | γ | xi | ξ | ||
| Lambda | Λ | delta | δ | pi | π | ||
| Xi | Ξ | epsilon | ε | rho | ρ | ||
| Pi | Π | zeta | ζ | sigma | σ | ||
| Sigma | Σ | eta | η | tau | τ | ||
| Upsilon | Υ | theta | θ | upsilon | υ | ||
| Phi | Φ | iota | ι | phi | φ | ||
| Psi | Ψ | kappa | κ | chi | χ | ||
| Omega | Ω | lambda | λ | psi | ψ | ||
| omega | ω |
Enter
A = (A1,A2,A3)
B = (B1,B2,B3)
dot(A,B)
Result
A1 B1 + A2 B2 + A3 B3
The dot product is equivalent to an outer product followed by a contraction
across the inner indices.
Enter
A = hilbert(10)
dot(A,A) - contract(outer(A,A),2,3)
Result
0
Example 1. Check the relation AX = lambda X where lambda is an eigenvalue and X is the associated eigenvector.
Enter
A = hilbert(3)
eigen(A)
lambda = D[1,1]
X = Q[1]
dot(A,X) - lambda X
Result
-1.16435e-14
-6.46705e-15
-4.55191e-15
Example 2: Check the relation A = QTDQ.
Enter A - dot(transpose(Q),D,Q) Result 6.27365e-12 -1.58236e-11 1.81902e-11 -1.58236e-11 -1.95365e-11 2.56514e-12 1.81902e-11 2.56514e-12 1.32627e-11
Enter
A = quote(sin(pi/6))
A
Result
1
sin(--- pi)
6
Enter
eval(A)
Result
1
---
2
Enter
exp(1.0)
Result
2.71828
Enter
exp(a) exp(b)
Result
exp(a + b)
Enter
expcos(x)
Result
1 1
--- exp(-i x) + --- exp(i x)
2 2
Enter
expsin(x)
Result
1 1
--- i exp(-i x) - --- i exp(i x)
2 2
Enter
factor(12345)
Result
3 5 823
The second form factors polynomial p in x.
The argument x can be omitted in which case the computer will
guess which symbol to use.
Enter
factor(x^3 + x^2 + x + 1)
Result
2
(1 + x) (1 + x )
Enter
factorial(100)
Result
93326215443944152681699238856266700490715968264381621468592963895217599993229915
608941463976156518286253697920827223758251185210916864000000000000000000000000
Enter
factorial(100) - 100!
Result
0
Enter
Y = A exp(-i k x) + B exp(i k x)
filter(Y exp(-i k x), x)
Result
B
Enter
float(100!)
Result
9.33262e+157
Enter
for(k,1,4,print(1/k,tab(10),1/k^2))
Result
1 1
1 1
--- ---
2 4
1 1
--- ---
3 9
1 1
--- ----
4 16
Enter
hermite(x,3)
Result
3
-12 x + 8 x
Enter
hilbert(3)
Result
1 1
1 --- ---
2 3
1 1 1
--- --- ---
2 3 4
1 1 1
--- --- ---
3 4 5
Enter
A = (A1,A2,A3)
B = (B1,B2,B3)
inner(A,B)
Result
A1 B1 + A2 B2 + A3 B3
Enter
integral(log(x),x)
Result
-x + x log(x)
Enter
A = ((a,b),(c,d))
inv(A)
Result
d b
----------- - -----------
a d - b c a d - b c
c a
- ----------- -----------
a d - b c a d - b c
Enter
isprime(9007199254740991)
Result
0
Enter
isprime(2^53 - 111)
Result
1
Enter
laguerre(x,2)
Result
1 2
1 - 2 x + --- x
2
Enter
laguerre(x,2,a)
Result
3 1 2 1 2
1 + --- a - 2 x - a x + --- a + --- x
2 2 2
Enter
lcm(4,6)
Result
12
Enter
lcm(4 x, 6 x y)
Result
12 x y
Enter
legendre(x,2)
Result
1 3 2
- --- + --- x
2 2
Enter
legendre(x,2,0)
Result
1 3 2
- --- + --- x
2 2
Enter
legendre(x,2,1)
Result
1/2
2
-3 x (1 - x )
Enter
log(10.0)
Result
2.30259
Enter
log(-10.0)
Result
2.30259 + i π
Enter
A = (A1,A2,A3)
B = (B1,B2,B3)
outer(A,B)
Result
A1 B1 A1 B2 A1 B3
A2 B1 A2 B2 A2 B3
A3 B1 A3 B2 A3 B3
Enter
numerator(a/b)
Result
a
Enter
prime(1)
Result
2
Enter
prime(10000)
Result
104729
Enter
product(k,1,3,1/(1-(1/prime(k)^s)))
Result
1
----------------------------------
1 1 1
(1 - ----) (1 - ----) (1 - ----)
s s s
2 3 5
Enter
n = 3
n
Result
3
Enter
n = quote(n)
n
Result
n
Enter
U = (u1,u2,u3,u4)
rank(U)
Result
1
Enter
rationalize(1/x + 1/y)
Result
x + y
-------
x y
Rationalize can often simplify expressions.
Enter
A = ((a,b),(c,d))
B = inv(A)
dot(A,B)
Result
a d b c
----------- - ----------- 0
a d - b c a d - b c
a d b c
0 ----------- - -----------
a d - b c a d - b c
Enter
rationalize(last)
Result
1 0
0 1
Enter
(x - 1/2) (x - 1/3) (x + 1/4) / x^3
Result
1 1 7
1 + ------- - ------- - ------
3 2 12 x
24 x 24 x
Enter
roots(last,x)
Result
1
- ---
4
1
---
3
1
---
2
Enter
roots(a x = b)
Result
b
---
a
Enter
roots(a x^2 + b x + c)
Result
1/2
2
b (-4 a c + b )
- ----- - ------------------
2 a 2 a
1/2
2
b (-4 a c + b )
- ----- + ------------------
2 a 2 a
This is converted to this n! / n (n - 1)! n (n - 1)! n! (n + 1)! / n! n + 1 (n + 2)! / n! (n + 1) (n + 2)Example 1.
Enter
F(n,k) = k binomial(n,k)
(F(n,k) + F(n,k-1)) / F(n+1,k)
Result
k! n! n! (1 - k + n)! k! n!
-------------------- + -------------------- - ----------------------
(-1 + k)! (1 + n)! (1 + n)! (-k + n)! k (-1 + k)! (1 + n)!
Enter
simfac
Result
1 1 - k + n 1
------- + ----------- - -------
1 + n 1 + n 1 + n
Enter
simplify
Result
n
-------
1 + n
Example 2. It may be necessary to rationalize or condense an expression first.
Enter
(n + 1) / (n + 1)!
Result
n 1
---------- + ----------
(1 + n)! (1 + n)!
Enter
simfac
Result
n 1
---------- + ----------
(1 + n)! (1 + n)!
Enter
rationalize
Result
1 + n
----------
(1 + n)!
Enter
simfac
Result
1
----
n!
Enter
(A-B)/(B-A)
Result
A B
-------- - --------
-A + B -A + B
Enter
simplify(last)
Result
-1
Enter
A = ((A11,A12),(A21,A22))
det(A) inv(A) - adj(A)
Result
((-A22 + A11 A22^2 / (A11 A22 - A12 A21) - A12 A21 A22 / (A11 A22 - A12 A21),
A12 - A11 A12 A22 / (A11 A22 - A12 A21) + A12^2 A21 / (A11 A22 - A12 A21)),
(A21 - A11 A21 A22 / (A11 A22 - A12 A21) + A12 A21^2 / (A11 A22 - A12 A21),
-A11 - A11 A12 A21 / (A11 A22 - A12 A21) + A11^2 A22 / (A11 A22 - A12 A21)))
Enter
simplify(last)
Result
0
The simplify function can return factored
(unexpanded)
expressions.
Factored expressions can fail in tests for equality.
The eval function can be used to expand factored expressions.
Enter
f = x^2
subst(sqrt(x),x,f)
Result
2
1/2
(x )
Enter
eval(last)
Result
x
Enter
sum(k,1,3,1/k^s)
Result
1 1
1 + ---- + ----
s s
2 3
Enter
taylor(1/cos(x),x,6)
Result
1 2 5 4 61 6
1 + --- x + ---- x + ----- x
2 24 720
== testeq >= testge > testgt <= testle < testltEach relational operator evaluates to 1 if the relation is true and 0 if the relation is false. If the relation cannot be determined then the associated relational function is returned unevaluated.
Enter 2 < 3 Result 1 Enter 3 < 2 Result 0 Enter a < b Result testlt(a,b)The AND and OR of relations can be implemented using multiplication and addition. For example, the following function returns 1 when x is between a and b, otherwise 0 is returned.
pulse(x) = test(
(x >= a) * (x <= b), 1,
(x < a) + (x > b), 0) # could use else clause "1, 0)"
Relational operators have lower precedence than addition and multiplication
so the relational expressions are parenthesized in this case.
In this example the else clause is not used so that pulse
returns unevaluated if the relation cannot be determined.
Enter
A = ((a,b),(c,d))
trace(A)
Result
a + d
Note that trace is equivalent to contract.
Enter
trace(A) - contract(A,1,2)
Result
0
Enter
unit(4)
Result
1 0 0 0
0 1 0 0
0 0 1 0
0 0 0 1
Enter
u = (u1,u2,u3,u4)
v = (v1,v2,v3,v4)
wedge(u,v)
Result
0 u1 v2 - u2 v1 u1 v3 - u3 v1 u1 v4 - u4 v1
-u1 v2 + u2 v1 0 u2 v3 - u3 v2 u2 v4 - u4 v2
-u1 v3 + u3 v1 -u2 v3 + u3 v2 0 u3 v4 - u4 v3
-u1 v4 + u4 v1 -u2 v4 + u4 v2 -u3 v4 + u4 v3 0
Enter
wedge(u,v) + wedge(v,u)
Result
0
Enter
A = zero(2,2)
A
Result
0 0
0 0
Enter
A[1,2] = a
A
Result
0 a
0 0