歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> Linux資訊 >> 更多Linux

Linux中MAXIMA符號運算軟件的簡介

  由於課程設計的關系,我必須得找個符號運算軟件,無奈mathmatica死活要注冊碼.於是選擇了MAXIMA.發現網上還沒有多少相關的中文資料,只好自己動手翻譯了一個簡介,希望能夠對後來人有所幫助.有些數學名詞和語法上肯定還有不好的地方,希望大家多提提意見!:thank 如果還有時間,我會繼續把它的幫助文件翻譯過來.    1 簡介    在 Linux 中運行 MAXIMA, 只需鍵入    maxima<回車>    電腦將顯示如下致辭:    GCL (GNU Common Lisp) Version(2.3) ter jun 27 14:16:29 BRT 2000  Licensed under GNU Library General Public License  Contains Enhancements by W. Schelter  Maxima 5.4 ter jun 27 14:16:11 BRT 2000 (with enhancements by W. Schelter).  Licensed under the GNU Public License (see file COPYING)  (C1)    這裡的 (C1) 是一個``標簽''. 每一個輸入或者輸出行將被標記一個標簽, 憑此種唯一的標簽, 該行可以在其余的會話中被調出. C 標簽用來標記你的命令; D 標簽用來標記機器的輸出. 所以絕對不要使用諸如 C1 或 D5的變量名, 如果使用, 將會和那些行的標簽搞混.    MAXIMA 對字母的大小寫是不敏感的: 不管你輸入的是 sin(x) 還是 SIN(x), 是 %e^x 還是 %E^x, 它都會明白你的意思是正弦函數和指數函數, 然後按標准的方式回顯大寫的 SIN 和 %E. 以上對用戶定義的變量並不成立, 即: x and X 對於 MAXIMA 是 不一樣的 變量! (試試看.)    2 特殊的按鍵和符號    要結束一個 MAXIMA 對話, 只需鍵入 quit();. 如果你按了 ^C, 將會變成下面的樣子:    Correctable error: Console interrupt.  Signalled by MACSYMA-TOP-LEVEL.  If continued: Type :r to resume execution, or :q to quit to top level.  Broken at SYSTEM:TERMINAL-INTERRUPT. Type :H for Help.  MAXIMA>>:q    (C1)    注意在 MAXIMA>> 提示符後鍵入 :q 或者 :t (for top level) 將會帶你回到 MAXIMA level. 另一方面 ^Y , 除了在屏幕上回顯外不會產生任何效果; 最終, ^Z 會和 quit(); 同樣的效果. (這裡的 ^ 表示控制鍵, 所以 ^C 意味著先按住標著 Ctrl 的鍵再按下 C 鍵.)    要中止一次計算, 但不離開 MAXIMA, 只需鍵入 ^C. 知道這個用法對你很重要, 比如說, 你開始了一次要花很多時間的計算. 記住在 MAXIMA>> 提示符後鍵入 :q 以回到 MAXIMA. 如例所示:  (C1) sum(1/x^2,x,1,1000);    Correctable error: Console interrupt.  Signalled by MACSYMA-TOP-LEVEL.  If continued: Type :r to resume execution, or :q to quit to top level.  Broken at SYSTEM:TERMINAL-INTERRUPT. Type :H for Help.  MAXIMA>>:q    (C2)    為了告訴 MAXIMA 你已經輸完了你的命令, 記得用分號 (;), 再加上一個回車. 注意單獨的一個回車並不代表了你已經完成了你的輸入.    另一個可以代替分號 (;) 的終止符是一個美元符號 ($), 而且, 它可以取消 MAXIMA 計算結果的顯示. 當你在進行一次有著很長結果的計算, 並且你不想浪費時間顯示結果的時候, 這會很有用.    如果你想重復一條你已經給出的命令, 比如說在 (C5) 行, 你可以在上述的行號前加兩個單引號 ('') 的方法來避免再次輸入, i.e., ''C5. (注意這只是簡單地輸入 C5 行, 而不是把它再做一次 - 試試吧.)    如果你想直接查詢 MAXIMA 已經計算出的結果, 你也可以使用它的 D 標簽, 或者你可以使用專門的符號--分號 (%).    標准量 e (自然對數的底數), i (-1 的平方根) 和 p (3.14159) 分別表示成 %e (或者 %E), %i (或者 %I), 和 %pi (或者 %PI). 注意這裡 % 只是作為一個前綴使用, 與用 % 來查詢先前計算結果的用法完全無關.    為了把一個值賦給一個變量, MAXIMA 使用冒號 (:), 而不是等號. 等號被用來表示相等關系.    3 算術    常見的算術符號有:    [+] 加  [-] 減 [*] 數乘  [/] 除  [^] 或者 ** 冪  [.] 矩陣乘法  [sqrt(x)] x的平方根.  MAXIMA 的輸出是嚴格按(有理數的)算術表示. E.g.,    (C1) 1/100+1/101;    201  (D1) -----  10100    如果是包涵無理數的混合運算, 無理數將保持用符號表示的方式:  (C2) (1+sqrt(2))^5;    5  (D2) (SQRT(2) + 1)  (C3) eXPand(%);    (D3) 29 SQRT(2) + 41    當然, 用十進制小數表示結果往往是很有用的. 這可以通過在你想要展開的表達式後面加上 ``,numer'' 來實現.  (C4) %,numer;    (D4) 82.01219330881976    注意在這裡使用了 % 來查詢先前的結果. 在這個版本的 MAXIMA 裡, numer 給出 16 位的有效數字, 但最後一位往往是不可靠的. 當然, MAXIMA 可以通過使用 bfloat 函數來提供 任意高的的精度 :  (C5) bfloat(d3);    (D5) 8.201219330881976B1  有效數字顯示的位數由 MAXIMA 變量 FPPREC 控制, 它的缺省值是 16:  (C6) fpprec;    (D6) 16    我們把 FPPREC 替換成100位:  (C7) fpprec:100;    (D7) 100  (C8) ''c5;    (D8) 8.20121933088197564152489730020812442785204843859314941221237124017312418#    7540110412666123849550160561B1    注意在 (C8) 中用雙引號 ('') 來重復命令 (C5). MAXIMA 可以處理非常大的數而不用近似值:  (C9) 100!;    (D9) 9332621544394415268169923885626670049071596826438162146859296389521759999#    322991560894146397615651828625369792082722375825118521091686400000000000000000#    0000000    4 代數    作為一個使分析計算更便利的計算機工具, 當我們看到 MAXIMA 在代數上的方便後, 它的重要性就變得更明顯了. 這裡有一個分解多項式的例子:    (C1) (x+3*y+x^2*y)^3;    2 3  (D1) (x y + 3 y + x)  (C2) expand(%);    6 3 4 3 2 3 3 5 2 3 2 2 4  (D2) x y + 9 x y + 27 x y + 27 y + 3 x y + 18 x y + 27 x y + 3 x y    2 3  + 9 x y + x    現在假設我們把 5/z 代入上面表達式中的 x 中:  (C3) d2,x=5/z;    2 3 2 3 2  135 y 675 y 225 y 2250 y 125 5625 y 1875 y 9375 y  (D3) ------ + ------ + ----- + ------- + --- + ------- + ------ + -------  z 2 2 3 3 4 4 5  z z z z z z z    3  15625 y 3  + -------- + 27 y  6  z    MAXIMA 函數 RATSIMP 可以把它按同分母排列:    (C4) ratsimp(%);    3 6 2 5 3 4 2 3  (D4) (27 y z + 135 y z + (675 y + 225 y) z + (2250 y + 125) z    3 2 2 3 6  + (5625 y + 1875 y) z + 9375 y z + 15625 y )/z    表達式還可以使用 factor 函數進行因式分解:  (C5) factor(%);    2 3  (3 y z + 5 z + 25 y)  (D5) ----------------------  6  z    MAXIMA 可以進行非線性代數方程的系統求解, 在這個例子裡,我們使用函數 solve 解一個三元方程組, 三個變量為 A, B, C:  (C6) a + b*c=1;    (D6) b C + a = 1  (C7) b - a*c=0;    (D7) b - a C = 0  (C8) a+b=5;    (D8) b + a = 5  (C9) solve([d6,d7,d8],[a,b,c]);    25 SQRT(79) %I + 25 5 SQRT(79) %I + 5 SQRT(79) %I + 1  (D9) [[a = -------------------, b = -----------------, C = ---------------],  6 SQRT(79) %I - 34 SQRT(79) %I + 11 10    25 SQRT(79) %I - 25 5 SQRT(79) %I - 5 SQRT(79) %I - 1  [a = -------------------, b = -----------------, C = - ---------------]]  6 SQRT(79) %I + 34 SQRT(79) %I - 11 10    注意這裡的顯示由一個 ``列表(list)'' 組成, i.e., 由兩個方括號 [ ... ] 括住的一些表達式, 它本身還包涵著兩個列表. 後者每一個都包涵了方程組的一組解.    MAXIMA 同樣可以輕松處理三角問題. trigexpand 函數使用 sum-of-angles (和差化積?) 公式盡可能的把每一個參數分配進三角函數:    (C10) sin(u+v)*cos(u)^3;    3  (D10) COS (u) SIN(v + u)  (C11) trigexpand(%);    3  (D11) COS (u) (COS(u) SIN(v) + SIN(u) COS(v))    反之, trigredUCe 函數把一個表達式轉換成和的形式, 每一項只包涵一個 sin 或 cos:    (C12) trigreduce(d10);    SIN(v + 4 u) + SIN(v - 2 u) 3 SIN(v + 2 u) + 3 SIN(v)  (D12) --------------------------- + -------------------------  8 8    realpart 函數和 imagpart 函數可以返回一個復表達式的實部和虛部:    (C13) w:3+k*%i;    (D13) %I k + 3  (C14) w^2*%e^w;    2 %I k + 3  (D14) (%I k + 3) %E  (C15) realpart(%);    3 2 3  (D15) %E (9 - k ) COS(k) - 6 %E k SIN(k)    5 微積分    MAXIMA 可以計算導數和積分, 把函數按 Taylor 級數展開, 求極限, 對普通的微分方程進行精確求解. 我們從把符號 f 定義為如下的 x 的方程開始:    (C1) f:x^3*%E^(k*x)*sin(w*x);    3 k x  (D1) x %E SIN(w x)    我們計算 f 對 x 的導數:  (C2) diff(f,x);    3 k x 2 k x 3 k x  (D2) k x %E SIN(w x) + 3 x %E SIN(w x) + w x %E COS(w x)    現在我們來找 f 對 x 的不定積分:  (C3) integrate(f,x);    6 3 4 5 2 7 3  (D3) (((k w + 3 k w + 3 k w + k ) x    6 2 4 4 2 6 2 4 3 2 5  + (3 w + 3 k w - 3 k w - 3 k ) x + (- 18 k w - 12 k w + 6 k ) x    4 2 2 4 k x  - 6 w + 36 k w - 6 k ) %E SIN(w x)    7 2 5 4 3 6 3 5 3 3 5 2  + ((- w - 3 k w - 3 k w - k w) x + (6 k w + 12 k w + 6 k w) x    5 2 3 4 3 3 k x  + (6 w - 12 k w - 18 k w) x - 24 k w + 24 k w) %E COS(w x))    8 2 6 4 4 6 2 8  /(w + 4 k w + 6 k w + 4 k w + k )    稍稍變換一下語法就可以得到定積分:  (C4) integrate(1/x^2,x,1,inf);    (D4) 1  (C5) integrate(1/x,x,0,inf);    Integral is divergent  -- an error. Quitting. To debug this try DEBUGMODE(TRUE);)    下面我們用 f(先前已經在 C1 中定義) 和雙曲正弦函數定義符號 g , 然後找出它關於點 x = 0 的 Taylor 級數展開式 (up to, say, order 3 terms):  (C6) g:f/sinh(k*x)^4;    3 k x  x %E SIN(w x)  (D6) -----------------  4  SINH (k x)  (C7) taylor(g,x,0,3);    2 3 2 2 3 3  w w x (w k + w ) x (3 w k + w ) x  (D7)/T/ -- + --- - -------------- - ---------------- + . . .  4 3 4 3  k k 6 k 6 k    當 x 趨向於0時 g 的極限可以如下求出:    (C8) limit(g,x,0);    w  (D8) --  4  k  MAXIMA 還可以對不可求值的式子求解 (用引號標記):  (C9) 'diff(y,x);    dy  (D9) --  dx    (C9) 裡的引號運算符的意思是 ``不去求值''. 如果沒有它, MAXIMA 將得到 0:  (C10) diff(y,x);    (D10) 0    使用引號運算符我們就可以寫出微分方程:  (C11) 'diff(y,x,2) + 'diff(y,x) + y;    2  d y dy  (D11) --- + -- + y  2 dx  dx    MAXIMA 的 ODE2 函數可以解出 first and second order ODE's:  (C12) ode2(d11,y,x);    - x/2 SQRT(3) x SQRT(3) x  (D12) y = %E (%K1 SIN(---------) + %K2 COS(---------))  2 2    6 矩陣乘法    MAXIMA 可以計算行列式, 以及帶符號元素(i.e., 帶有代數變量的元素) 的矩陣的逆, 特征值和特征向量. 我們從一個元素一個元素地輸入一個矩陣 m 開始:    (C1) m:entermatrix(3,3);    Is the matrix 1. Diagonal 2. Symmetric 3. Antisymmetric 4. General  Answer 1, 2, 3 or 4 : 4;  Row 1 Column 1: 0;  Row 1 Column 2: 1;  Row 1 Column 3: a;  Row 2 Column 1: 1;  Row 2 Column 2: 0;  Row 2 Column 3: 1;  Row 3 Column 1: 1;  Row 3 Column 2: 1;  Row 3 Column 3: 0;    Matrix entered.  [ 0 1 a ]  [ ]  (D1) [ 1 0 1 ]  [ ]  [ 1 1 0 ]    然後我們找出它的轉置, 行列式和逆矩陣:  (C2) transpose(m);    [ 0 1 1 ]  [ ]  (D2) [ 1 0 1 ]  [ ]  [ a 1 0 ]  (C3) determinant(m);    (D3) a + 1  (C4) invert(m),detout;    [ - 1 a 1 ]  [ ]  [ 1 - a a ]  [ ]  [ 1 1 - 1 ]  (D4) -----------------  a + 1    在 (C4) 中, 修飾語 DETOUT 將矩陣行列式的值保持在矩陣的逆之外. 作為檢驗, 我們用 m 去乘它的逆 ( 注意這裡用句號表示矩陣乘法的用法):  (C5) m.d4;    [ - 1 a 1 ]  [ ]  [ 1 - a a ]  [ 0 1 a ] [ ]  [ ] [ 1 1 - 1 ]  (D5) [ 1 0 1 ] . -----------------  [ ] a + 1  [ 1 1 0 ]  (C6) expand(%);    [ a 1 ]  [ ----- + ----- 0 0 ]  [ a + 1 a + 1 ]  [ ]  [ a 1 ]  (D6) [ 0 ----- + ----- 0 ]  [ a + 1 a + 1 ]  [ ]  [ a 1 ]  [ 0 0 ----- + ----- ]  [ a + 1 a + 1 ]  (C7) factor(%);    [ 1 0 0 ]  [ ]  (D7) [ 0 1 0 ]  [ ]  [ 0 0 1 ]    另外, 要找出 m 的特征值和特征向量, 我們使用 EIGENVECTORS 函數:  (C8) eigenvectors(m);    Warning - you are redefining the MACSYMA function EIGENVALUES  Warning - you are redefining the MACSYMA function EIGENVECTORS  SQRT(4 a + 5) - 1 SQRT(4 a + 5) + 1  (D8) [[[- -----------------, -----------------, - 1], [1, 1, 1]],  2 2    SQRT(4 a + 5) - 1 SQRT(4 a + 5) - 1  [1, - -----------------, - -----------------],  2 a + 2 2 a + 2    SQRT(4 a + 5) + 1 SQRT(4 a + 5) + 1  [1, -----------------, -----------------], [1, - 1, 0]]  2 a + 2 2 a + 2    在 D8 中, 第一個 triple 給出了 m 的特征值, 第二個給出了它們各自的重數 (這裡每個都是無重復的). 下面三個 triples 給出了 m 相應的特征向量. 為了從三個特征向量表達式中提取一個, 我們可以使用 PART 函數:  (C9) part(%,2);    SQRT(4 a + 5) - 1 SQRT(4 a + 5) - 1  (D9) [1, - -----------------, - -----------------]  2 a + 2 2 a + 2    7 用 MAXIMA 編程    到現在為止, 我們已經在交互模式下用過了 MAXIMA, 就象個計算器一樣. 然而, 對於那些扯進了反復控制次序的計算, 還是運行一個程序來得方便. 這裡我們展示了一個短且簡單的程序, 用來計算一個有著兩個變量 x 和 y 的函數 f 的臨界點. 這個程序提示用戶輸入函數 f, 然後它計算 fx 和 fy 的偏導數, 然後, 它使用 MAXIMA 命令 SOLVE 去獲得 fx = fy = 0 的解. 這個程序是在 MAXIMA 之外用一個文本編輯器寫得, 然後用 BATCH 命令裝載進 MAXIMA. 下面是程序列表:    /* --------------------------------------------------------------------------  this is file critpts.max:  as you can see, comments in maxima are like comments in C    Nelson Luis Dias, [email protected]  created 20000707  updated 20000707  --------------------------------------------------------------------------- */  critpts():=(  print("program to find critical points"),  /* ---------------------------------------------------------------------------  asks for a function  --------------------------------------------------------------------------- */  f:read("enter f(x,y)"),  /* ---------------------------------------------------------------------------  echoes it, to make sure  --------------------------------------------------------------------------- */  print("f = ",f),  /* ---------------------------------------------------------------------------  produces a list with the two partial derivatives of f  --------------------------------------------------------------------------- */  eqs:[diff(f,x),diff(f,y)],  /* ---------------------------------------------------------------------------  produces a list of unknowns  --------------------------------------------------------------------------- */  unk:[x,y],  /* ---------------------------------------------------------------------------  solves the system  --------------------------------------------------------------------------- */  solve(eqs,unk)  )$    這個程序 (實際上是個沒有參數的函數) 叫做 critpts. 每一行都是一個有效的, 可以由鍵盤上執行的 MAXIMA 命令, 它們由逗號隔開. 偏導數被貯存在一個叫做 eqs 的變量中, 未知數貯存在 unk 中. 這裡是它運行的例子:    (C1) batch("critpts.max");    batching #/home/nldias/work/papers2000/intromax/critpts.max  (C2)  (C2) critpts() := (PRINT("program to find critical points"),    f : READ("enter f(x,y)"), PRINT("f = ", f), eqs : [DIFF(f, x), DIFF(f, y)],    unk : [x, y], SOLVE(eqs, unk))  (C3) critpts();    program to find critical points  enter f(x,y)  %e^(x^3+y^2)*(x+y);  2 3  y + x  f = (y + x) %E  (D3) [[x = 0.4588955685487 %I + 0.35897908710869,    y = 0.49420173682751 %I - 0.12257873677837],    [x = 0.35897908710869 - 0.4588955685487 %I,    y = - 0.49420173682751 %I - 0.12257873677837],    [x = 0.41875423272348 %I - 0.69231242044203,    y = 0.4559120701117 - 0.86972626928141 %I],    [x = - 0.41875423272348 %I - 0.69231242044203,    y = 0.86972626928141 %I + 0.4559120701117]]    8 MAXIMA 函數提要    看在 maxima-5.4/info/ 目錄中 texinfo 或 Html 格式的手冊. 從 MAXIMA 本身, 你可以用 DESCRIBE(function name).    ALLROOTS(A)  Finds all the (generally complex) roots of the polynomial equation A, and lists them in NUMERical format (i.e. to 16 significant figures).  APPEND(A,B)  Appends the list B to the list A, resulting in a single list.  BATCH(A)  Loads and runs a BATCH program with filename A.  COEFF(A,B,C)  Gives the coefficient of B raised to the power C in expression A.  CONCAT(A,B)  Creates the symbol AB.  CONS(A,B)  Adds A to the list B as its first element.  DEMOIVRE(A)  Transforms all complex exponentials in A to their trigonometric equivalents.  DENOM(A)  Gives the denominator of A.  DEPENDS(A,B)  Declares A to be a function of B. This is useful for writing unevaluated derivatives, as in specifying differential equations.  DESOLVE(A,B)  Attempts to solve a linear system A of ODE's for unknowns B using Laplace transforms.  DETERMINANT(A)  Returns the determinant of the square matrix A.  DIFF(A,B1,C1,B2,C2,...,Bn,Cn)  Gives the mixed partial derivative of A with respect to each Bi, Ci times. For brevity, DIFF(A,B,1) may be represented by DIFF(A,B). 'DIFF(...) represents the unevaluated derivative, useful in specifying a differential equation.  EIGENVALUES(A)  Returns two lists, the first being the eigenvalues of the square matrix A, and the second being their respective multiplicities.  EIGENVECTORS(A)  Does everything that EIGENVALUES does, and adds a list of the eigenvectors of A.  ENTERMATRIX(A,B)  Cues the user to enter an A × B matrix, element by element.  EV(A,B1,B2,...,Bn)  Evaluates A subject to the conditions Bi. In particular the Bi may be equations, lists of equations (such as that returned by SOLVE), or assignments, in which cases EV ``plugs'' the Bi into A. The Bi may also be Words such as NUMER (in which case the result is returned in numerical format), DETOUT (in which case any matrix inverses in A are performed with the determinant factored out), or DIFF (in which case all differentiations in A are evaluated, i.e., 'DIFF in A is replaced by DIFF). For brevity in a manual command (i.e., not inside a user-defined function), the EV may be dropped, shortening the syntax to A,B1,B2,...,Bn.  EXPAND(A)  Algebraically expands A. In particular multiplication is distributed over addition.  EXPONENTIALIZE(A)  Transforms all trigonometric functions in A to their complex exponential equivalents.  FACTOR(A)  Factors A.  FREEOF(A,B)  Is true if the variable A is not part of the expression B.  GRIND(A)  Displays a variable or function A in a compact format. When used with WRITEFILE and an editor outside of MAXIMA, it offers a scheme for producing BATCH files which include MAXIMA-generated expressions.  IDENT(A)  Returns an A × A identity matrix.  IMAGPART(A)  Returns the imaginary part of A.  INTEGRATE(A,B)  Attempts to find the indefinite integral of A with respect to B.  INTEGRATE(A,B,C,D)  Attempts to find the indefinite integral of A with respect to B. taken from B = C to B = D. The limits of integration C and D may be taken is INF (positive infinity) of MINF (negative infinity).  INVERT(A)  Computes the inverse of the square matrix A.  KILL(A)  Removes the variable A with all its assignments and properties from the current MAXIMA environment.  LIMIT(A,B,C)  Gives the limit of expression A as variable B approaches the value C. The latter may be taken as INF of MINF as in INTEGRATE.  LHS(A)  Gives the left-hand side of the equation A.  LOADFILE(A)  Loads a disk file with filename A from the current default Directory. The disk file must be in the proper format (i.e. created by a SAVE command).  MAKELIST(A,B,C,D)  Creates a list of A's (each of which presumably depends on B), concatenated from B = C to B = D  MAP(A,B)  Maps the function A onto the subexpressions of B.  MATRIX(A1,A2,...,An)  Creates a matrix consisting of the rows Ai, where each row Ai is a list of m elements, [B1, B2, ..., Bm].  NUM(A)  Gives the numerator of A.  ODE2(A,B,C)  Attempts to solve the first- or second-order ordinary differential equation A for B as a function of C.  PART(A,B1,B2,...,Bn)  First takes the B1th part of A, then the B2th part of that, and so on.  PLAYBACK(A)  Displays the last A (an integer) labels and their associated expressions. If A is omitted, all lines are played back. See the Manual for other options.  RATSIMP(A)  Simplifies A and returns a quotient of two polynomials.  REALPART(A)  Returns the real part of A.  RHS(A)  Gives the right-hand side of the equation A.  SAVE(A,B1,B2,..., Bn)  Creates a disk file with filename A in the current default directory, of variables, functions, or arrays Bi. The format of the file permits it to be reloaded into MAXIMA using the LOADFILE command. Everything (including labels) may be SAVEd by taking B1 equal to ALL.  SOLVE(A,B)  Attempts to solve the algebraic equation A for the unknown B. A list of solution equations is returned. For brevity, if A is an equation of the form C = 0, it may be abbreviated simply by the expression C.  STRING(A)  Converts A to MACSYMA's linear notation (similar to FORTRAN's) just as if it had been typed in and puts A into the buffer for possible editing. The STRING'ed expression should not be used in a computation.  STRINGOUT(A,B1,B2,...,Bn)  Creates a disk file with filename A in the current default directory, of variables (e.g. labels) Bi. The file is in a text format and is not reloadable into MAXIMA. However the strungout expressions can be incorporated into a FORTRAN, BASIC or C program with a minimum of editing.  SUBST(A,B,C)  Substitutes A for B in C.  TAYLOR(A,B,C,D)  Expands A in a Taylor series in B about B = C, up to and including the term (B-C)D. MAXIMA also supports Taylor expansions in more than one independent variable; see the Manual for details.  TRANSPOSE(A)  Gives the transpose of the matrix A.  TRIGEXPAND(A)  Is a trig simplification function which uses the sum-of-angles formulas to simplify the arguments of individual SIN's or COS's. For example, trigexpand(sin(x+y)) gives COS(x) SIN(y) + SIN(x) COS(y).  TRIGREDUCE(A)  Is a trig simplification function which uses trig identities to convert products and powers of SIN and COS into a sum of terms, each of which contains only a single SIN or COS. For example, trigreduce(sin(x)^2) gives (1 - COS(2x))/2.  TRIGSIMP(A)  Is a trig simplification function which replaces TAN, SEC, etc., by their SIN and COS equivalents. It also uses the identity SIN()2 + COS()2 = 1.    --------------------------------------------------------------------------------    Footnotes:    1 Adapted from ``Perturbation Methods, Bifurcation Theory and Computer Algebra'' by Rand and Armbruster, Springer, 1987    2 Adapted to LATEX and HTML by Nelson L. Dias ([email protected]), SIMEPAR Technological Institute and Federal University of Paran? Brazil




Copyright © Linux教程網 All Rights Reserved