#1: " ----------[ D e r i v e ]---------- " User #2: " ---------- Initialization ---------- " User #3: " ---------- Programming and Miscellaneous ---------- "User User #4: " How easy is it to substitute x for a + b in the following expression? " #5: " => (x + c)^2 + (d - x)^2 " User #6: "subst(b = x - a, expr)" User 2 2 #7: expr := (a + b + c) + (d - a - b) User 2 2 #8: expr := (a + (x - a) + c) + (d - a - (x - a)) Sub(#7) 2 2 #9: expr := (x + c) + (d - a - (x - a)) Simp(#8') 2 2 #10: expr := (x + c) + (d - x) Simp(#9') #11: expr := User User #12: " How easy is it to substitute r for sqrt(x^2 + y^2) in the following " #13: " expression? => x/r " User #14: "subst(y = SQRT(r^2 - x^2), q_)" User x q_ := --------------- #15: 2 2 User SQRT(x + y ) x q_ := --------------------------- #16: 2 2 2 2 Sub(#15) SQRT(x + SQRT(r - x ) ) x #17: ----- Simp(#16) |r| User #18: " Change variables so that the following transcendental expression is " User #19: " converted into a rational expression [Vernor Vinge] " User #20: " => (r - 1)^4 (u^4 - r u^3 - r^3 u + r u + r^4)/[u^4 (2 r - 1)^2] " User #21: q_ := 1 1 2*(r - COS(t)) ~ ---- + ------------------------ - --------------------------~ 4 2 2 2 2 3~ r (r - 2*r*COS(t) + 1) r *(r - 2*r*COS(t) + 1) ~ -------------------------------------------------------------~ 1 1 2*(r - 1) ~ ---- + ---------- - ---------------------- ~ 4 4 2 2 3/2 ~ r (r - 1) r *(r - 2*r + 1) ~ --- /2 ---- #22: r :epsilon (1, inf) User #23: r Simp(#22) User #24: "subst(t = ACOS((r^2 - u^2 + 1)/(2*r)), q_), simplify and factor" #25: u :epsilon (0, inf) User #26: u Simp(#25) Sub(#21) #27: q_ := ~ ~ ~ 1 1 ~ ---- + ------------------------------------------ - --------~ 4 / / / 2 2 \\ \2 / ~ r | 2 | | r - u + 1 || | 2 | 2 ~ |r - 2*r*COS|ACOS|-------------|| + 1| r *|r ~ \ \ \ 2*r // / \ ~ -------------------------------------------------------------~ 1 1 2*(r~ ---- + ---------- - -----------~ 4 4 2 2 ~ r (r - 1) r *(r - 2~ / / / 2 2 \\\ | | | r - u + 1 ||| 2*|r - COS|ACOS|-------------||| \ \ \ 2*r /// --------------------------------------- / / 2 2 \\ \3/2 | | r - u + 1 || | - 2*r*COS|ACOS|-------------|| + 1| \ \ 2*r // / ---------------------------------------- - 1) ----------- 3/2 *r + 1) 4 4 3 2 4 (r - 1) *(r - r *u + r*u*(1 - u ) + u ) #28: ------------------------------------------ Simp(#27) 4 2 u *(4*r - 4*r + 1) 4 4 3 2 4 (r - 1) *(r - r *u + r*u*(1 - u ) + u ) #29: ------------------------------------------ Fctr(#28) 4 2 u *(2*r - 1) #30: r := User #31: u := User User #32: " Establish a rule to symmetrize a differential operator: [Stanly Steinberg] " #33: " f g'' + f' g' -> (f g')' " User User #34: "f(x)*DIF(g(x), x, 2) + DIF(f(x), x)*DIF(g(x), x) -> DIF(f(x)*DIF(g(x), x), x))" #35: " => 2 (f g')' + f g " User #36: F(x) := User #37: G(x) := User /d \2 /d \ d #38: q := F(x)*|--| G(x) + |-- F(x)|*-- G(x) User \dx/ \dx / dx #39: 2*q + F(x)*G(x) User #40: 2*G'(x)*F'(x) + 2*F(x)*G''(x) + G(x)*F(x) Simp(#39) #41: q := User #42: f := User #43: g := User #44: " Infinite lists: [1 2 3 4 5 ...] * [1 3 5 7 9 ...] " User #45: " => [1 6 15 28 45 66 91 ...] " User #46: l1 := [1, 2, 3, 4, 5] User #47: l2 := [1, 3, 5, 7, 9] User VECTOR(l1 *l2 , i, 1, DIMENSION(l1)) #48: i i User #49: [1, 6, 15, 28, 45] Simp(#48) #50: l1 := User #51: l2 := User User #52: " Write a simple program to compute Legendre polynomials " 1 /d \n 2 n P(n, x) := -------*|--| (x - 1) #53: n \dx/ User 2 *n! User #54: " p[0](x) = 1, p[1](x) = x, p[2](x) = (3 x^2 - 1)/2, " User #55: " p[3](x) = (5 x^3 - 3 x)/2, p[4](x) = (35 x^4 - 30 x^2 + 3)/8 " #56: VECTOR(P(i, x), i, 0, 4) User Simp(#56) / 2 2 4 2 \ | 3*x - 1 x*(5*x - 3) 35*x - 30*x + 3 | #57: |1, x, ----------, --------------, -------------------| \ 2 2 8 / #58: " p[4](1) = 1 " User #59: q_ := P(4, x) User #60: q_ User 4 2 35*x - 30*x + 3 #61: ------------------- Simp(#60) 8 lim q_ #62: x->1 User #63: 1 Simp(#62) User #64: " Now, perform the same computation using a recursive definition " User / / #65: PP(n, x) := IF|n = 0, 1, IF|n = 1, x, \ \ (2*n - 1)*x*PP(n - 1, x) - (n - 1)*PP(n - 2, x) \\ -------------------------------------------------|| n // #66: VECTOR(PP(i, x), i, 0, 4) User Simp(#66) / 2 2 4 2 \ | 3*x - 1 x*(5*x - 3) 35*x - 30*x + 3 | #67: |1, x, ----------, --------------, -------------------| \ 2 2 8 / #68: PP(4, 1) User #69: 1 Simp(#68) #70: p := User #71: pp := User #72: " Iterative computation of Fibonacci numbers " User User MYFIB(n) := IF/n < 0, "undefined", IF/n < 2, n, (ITERATE(/f , f #73: | | \ 2 1 \ \ + f \, f, [0, 1], n)) \\ 2/ || 1// #74: " Convert the function into FORTRAN syntax " User MYFIB(n):=IF(n<0,"undefined",IF(n<2,n,(ITERATE([f SUB 2,f SUB 1+f $SUB 2],f,[0,1],n)) SUB 1)) User #75: " Create a list of the first 11 values of the function. " #76: VECTOR(MYFIB(i), i, 0, 10) User #77: [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55] Simp(#76) #78: myfib := User User #79: " Define the function p(x) = x^2 - 4 x + 7 such that p(lambda) = 0 for " User #80: " lambda = 2 +- i sqrt(3) and p(A) = [[0 0], [0 0]] for A = [[1 -2], [2 3]] " User #81: " (the lambda are the eigenvalues and p(x) is the characteristic polynomial of " #82: " A) [Johnson and Reiss, p. 184] " User 2 #83: P(x) := x - 4*x + 7 User #84: P(2 + #i*SQRT(3)) User #85: 0 Simp(#84) // 1 -2 \\ #86: P|| || User \\ 2 3 // / 0 0 \ #87: | | Simp(#86) \ 0 0 / #88: p := User #89: " Define a function to be the result of a calculation "User #90: "f(x):= #following_expression" User User / 1/3 \ | 2*x - 2 | ATAN|--------------| 2 1/3 2/3 | 1/3 | #91: LOG(x - 2 *x + 2 ) \ 2 *SQRT(3) / - ------------------------- + ---------------------- + 2/3 2/3 6*2 2 *SQRT(3) 1/3 LOG(x + 2 ) --------------- 2/3 3*2 Simp(#91) / 2/3 \ 1/6 | SQRT(3)*(2 *x - 1) | 108 *ATAN|----------------------| #92: \ 3 / ------------------------------------- - 6 1/3 2 1/3 2/3 1/3 1/3 2 *LN(x - 2 *x + 2 ) 2 *LN(x + 2 ) ----------------------------- + ------------------- 12 6 User / 2/3 \ 1/6 | SQRT(3)*(2 *x - 1) | 108 *ATAN|----------------------| #93: \ 3 / F(x) := ------------------------------------- - 6 1/3 2 1/3 2/3 1/3 1/3 2 *LN(x - 2 *x + 2 ) 2 *LN(x + 2 ) ----------------------------- + ------------------- 12 6 #94: expr := F(y) User #95: expr User Simp(#95) / 2/3 \ 1/6 | SQRT(3)*(2 *y - 1) | 108 *ATAN|----------------------| #96: \ 3 / ------------------------------------- - 6 1/3 2 1/3 2/3 1/3 1/3 2 *LN(y - 2 *y + 2 ) 2 *LN(y + 2 ) ----------------------------- + ------------------- 12 6 #97: expr := User #98: " An undocumented method " User User / 1/3 \ | 2*x - 2 | ATAN|--------------| 2 1/3 2/3 | 1/3 | #99: LOG(x - 2 *x + 2 ) \ 2 *SQRT(3) / q_ := - ------------------------- + ---------------------- + 2/3 2/3 6*2 2 *SQRT(3) 1/3 LOG(x + 2 ) --------------- 2/3 3*2 #100:F(x) :== q_ User Simp(#100) / 2/3 \ 1/6 | SQRT(3)*(2 *x - 1) | 108 *ATAN|----------------------| #101: \ 3 / ------------------------------------- - 6 1/3 2 1/3 2/3 1/3 1/3 2 *LN(x - 2 *x + 2 ) 2 *LN(x + 2 ) ----------------------------- + ------------------- 12 6 #102:expr := F(y) User #103:expr User Simp(#103) / 2/3 \ 1/6 | SQRT(3)*(2 *y - 1) | 108 *ATAN|----------------------| #104: \ 3 / ------------------------------------- - 6 1/3 2 1/3 2/3 1/3 1/3 2 *LN(y - 2 *y + 2 ) 2 *LN(y + 2 ) ----------------------------- + ------------------- 12 6 User #105:" Display the top-level structure of a nasty expression, hiding the " #106:" lower-level details. " User #107:expr := User #108:f := User #109:" Convert the following expression into TeX or LaTeX " User / 2 2 \ | EXP(x ) + EXP(- x ) | #110:y = SQRT|---------------------| User \ SQRT(3)*x - SQRT(2) / Simp(#110) 2 / 2 \ - x /2 | 2*x | #111: #e *SQRT\#e + 1/*SIGN(SQRT(3)*x - SQRT(2)) y = ----------------------------------------------------- SQRT(SQRT(3)*x - SQRT(2)) #112:" ---------- Quit ---------- " User