Minimal Maxima
本文作者:Robert Dodier
本文作者:dbzhang800
适用版本:
文章状态:整理中...
Maxima 是什么?
Maxima 是一个处理数学表达式的系统,例如x + y, sin(a + bπ)以及u · v − v · u
Maxima 并不太关心表达式的含义,一个表达式是否有意义由使用者来判断。
有时你想给未知数赋值并且要计算表达式的值。Maxima 很善长做这件事。但是Maxima 也很 善长推迟赋值;你可以先对表达式做一番处理,然后才给(也许永远不给)未知数赋值。
我们先看几个例子:
1.我想计算球的体积。
(%i1) V: 4/3 * %pi * r^3; 3 4 %pi r (%o1) -------- 3
2.半径是10。
(%i2) r: 10; (%o2) 10
3.V的值和前面一样;在我们下令以前,Maxima不会改变V的值。
(%i3) V; 3 4 %pi r (%o3) -------- 3
4.Maxima,重新计算一下V。
(%i4) ’’V; 4000 %pi (%o4) -------- 3
5.我想看到一个具体的数值而不是一个表达式。
(%i5) ’’V, numer; (%o5) 4188.79020478639
表达式
Maxima 中所有的东西都是表达式,包括数学表达式、对象、程序结构等。表达式要么是原子,要么是操作符与它的自变量。
原子是一个符号(名字),一个用引号括起来的字符串,或者是一个数(整数或浮点数)。
所有非原子表达式都表示为op(a1 , . . . , an ),其中op是操作符的名字,a1 , . . . , an 是自变。(表达式的显示形式可能不太一致,但内部表示都是一样的。)表达式中的自变量可以是原子或非原子表达式。
数学表达式中含有一个操作符,比如+ − ∗/ < = > 或者一个函数,比如sin(x),bessel_j(n, x)。在这种情况下操作符就是函数。
对象在Maxima 中是表达式。列表[a1 , . . . , an ]就是表达式list(a1 , . . . , an )。矩阵就是表达式
matrix(list(a1,1 , . . . , a1,n ), . . . ,list(am,1 , . . . , am,n ))
程 序 构 造 是 表 达 式 。 一 个 代 码 块block(a1 , . . . , an )是 操 作 符 为block自 变 量 为a1 , . . . , an 的表 达 式 。 条 件 语 句if a then b elseif c then d是 表 达 式if(a, b, c, d)。 循 环for a in L do S是 类 似于do(a, L, S)的表达式。
Maxima 函数op返回一个非原子表达式的操作符。函数args返回非原子表达式的自变量。函数atom判断一个表达式是不是原子。
让我们看几个例子。