分享
 
 
 

Linux中MAXIMA符号运算软件的简介

王朝system·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

由于课程设计的关系,我必须得找个符号运算软件,无奈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, nldias@simepar.br

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 (nldias@simepar.br), SIMEPAR Technological Institute and Federal University of Paran? Brazil

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有