当前位置:当百下载站 > 电脑软件 > 系统工具 > Maxima(计算机代数系统)v5.47.0
Maxima(计算机代数系统)

Maxima(计算机代数系统)

版本:v5.47.0 大小:156.99MB 语言:简体中文 类别:系统工具
  • 类型:国外软件
  • 更新:2026-11-07 17:20:30
  • 系统:win7/win8/win10/win11

详情介绍

Maxima 是一个用 LISP 语言构建的计算机代数系统,能在电脑上协助分析函数。早期它主要面向代数运算,所以也可被视作一个计算机代数运算平台。经过多年迭代,它的能力已远超单纯的运算范畴。目前 Maxima 被大量用于高级函数分析,涵盖初等函数、代数、常量、变量、矩阵、微分、积分等方向,为从事数学研究的人提供了一个更智能的计算工具。在函数图像绘制方面,该软件同样表现出色,支持二维作图和数据作图。

Maxima(计算机代数系统) 软件截图

使用教程

1、将Maxima用作计算器

Maxima 可以当作一款响应迅速、结果可靠的计算器来使用,其精度可达到计算机硬件所允许的任意程度。与许多编程语言类似,在 Maxima 中需要输入一条或多条指令与表达式,并用分号“$$”将它们分隔开。

(%i1) 9+7;

(%o1) 16

-323

(%o2) -323

(%i3) 10/2;

(%o3) 5

计算得出的结果可用“%”符号调取,而此前任意一轮的输入值与输出值,则分别通过“%i”(输入)和“%o”(输出)这两个符号来引用。

(%i4) % - 10;

(%o4) -5

(%i5) %o1 * 3;

(%o5) 48

简化处理:从这一步开始,带编号的输入与输出将不再逐一列出,输出改用 a => sign 的形式表示。当分子和分母均为整数时,maxima 会给出约分后的分数或整数结果。要验证这一点,可以调用“float”方法(数值较大时也可用 bfloat)。

8/2;

=> 4

8/2.0;

=> 4.0

2/6;

该式表示三分之一,以分数形式写作 1/3。

float(1/3);

0.33333333333333

1/3.0;

0.33333333333333

26/4;

=> displaystyle frac{13}{2}

将 26 除以 4 后取浮点结果。

=> 6.5

如前所述,数值偏大在这里并不会构成障碍:

13^26;

这个数字串看起来像是一串随机排列的数值,实际上它是一段经过编码的字符序列,共包含29位数字,以9开头、以9结尾,中间由多个不同数字组合而成。

13.0^26

显示格式为 9.1733330193268623 乘以 10 的 +28 次方。

30!;

=> 265252859812191058636308480000000

计算表达式 float((7/3)^35) 的值,该表达式先对 7/3 做 35 次幂运算,再将结果转换为浮点类型。

=> 显示格式 7.5715969098311943 乘以 10 的正 12 次方

一些定量和常见的方程

日常使用中,有一批常见的定量数值会被频繁用到:

e 常数,即欧拉数(Euler’s Number),是数学中一个重要的无理数常数。

%pi 用于在数学公式中输出圆周率符号 π。

%phi 指黄金分割比,其数值等于 (1+√5)/2。

%i 表示虚数单位,即满足平方等于 -1 的数(写作 √-1)。

inf 表示正无穷大(infty)。

minf 表示负无穷大(-∞)

infinity 一款围绕“复杂无限”概念展开的工具软件

在实际运用中,我们不妨把其中若干项代入一些常见方程之中:

sin(%pi/2) + cos(%pi/3);

=> displaystyle frac{3}{2}

计算 %pi/3 的正切值与余切值之积。

=> 1

计算 sec(π/3) 与 csc(π/3) 之和,再对结果取浮点值。

=> 3.154700538379252

sqrt(81);

=> 9

log(%e);

=> 1

2、声明定义方程和变量

变量赋值使用单冒号即可完成,而方程的定义则需借助“:=”符号来区分。下面这段程序展示了它们的具体用法:

a:7; b:8;

=> 7

=> 8

sqrt(a^2+b^2);

=> sqrt{113}

f(x):= x^2 -x + 1;

x x + 1

f(3);

=> 7

f(a);

=> 43

f(b);

=> 57

需要留意的是,Maxima 内置的对数运算仅支持自然对数 log。它并未默认附带以 10 为底的对数函数 log10,若有需要,用户可以自行定义,方式如下:

以10为底的对数可通过换底公式求得:log10(x)等于log(x)除以log(10)。

=> displaystyle log10(x):=frac{log(x)}{log(10)};

log10(10)

=> 1

3、符号计算方法

因数分解可以通过 factor 来完成:

计算30的阶乘后,再对结果进行因数分解。

displaystyle 2^{26},3^{14},5^7,7^4,11^2,13^2,17,19,23,29

或者多项式的因子计算

factor(x^2 + x - 6) 的作用是对该多项式进行因式分解。

(x-2)(x+3)

然后,展开

展开 (x+3)^4 这个表达式。

x^4 加 12x^3 加 54x^2 加 108x 加 81

简化有理数表达式:

ratsimp((x^2-1)/(x+1));

=> x-1

简化三角方程:

trigsimp(2*cos(x)^2 + sin(x)^2);

displaystyle cos ^2x+1

同理,将三角表达式方程进行展开:

trigexpand(sin(2*x)+cos(2*x));

=> displaystyle sinx + 2·cos x·sin x + cosx

需要留意的是,在Maxima里“2x”并不会被当作乘法处理,必须写成“2*x”才算明确。若打算借助TeX生成对应的表达式,可以用方程tex:

tex(%);

$$-\sin^2x+2,\ \cos x,\ \sin x+\cos^2x$$

4、公式求解

用“solve”方程就能轻松求解单个或一组公式:

solve(x^2-4,x);

=> displaystyle left[ x=-2 , x=2 right]

%[2]

=> x=2

solve(x^3=1,x);

x=1,x=(√3i1)/2,x=(√3i+1)/2

trigsimp(solve([cos(x)^2-x=2-sin(x)^2], [x]));

=> displaystyle left[ x=-1 right]

solve([x - 2*y = 14, x + 3*y = 9],[x,y]);

坐标点(12,-1)

5、二维和三维画图

Maxima 具备二维与三维绘图能力,同一张图内还能叠加更多效果。调用 plot2d 和 plot3d 时操作逻辑相当简明:第二个参数(若用 plot3d 则为第三个参数)传入一组 x(以及 y)的数值,由此划定绘图所覆盖的区间。

绘制函数 x^2-x+3 在区间 [-10,10] 上的图像,使用 plot2d 命令即可完成。

plot2d 可同时绘制多条曲线,写法是把表达式放进方括号中,例如 [x^2, x^3, x^4 -x +1];随后再给出自变量及其范围 [x,-10,10],整个调用即 plot2d([x^2, x^3, x^4 -x +1] ,[x,-10,10]);。

f(x,y):= sin(x) + cos(y);

plot3d(f(x,y), [x,-5,5], [y,-5,5]);

6、极限

limit((1+1/x)^x,x,inf);

=> %e

计算 x 趋近于 0 时 sin(x)/x 的极限,可用 limit(sin(x)/x, x, 0) 这个表达式。

=> 1

求极限 limit(2*(x^2-4)/(x-2),x,2)

=> 8

limit(log(x),x,0,plus);

=> 负无穷

limit(sqrt(-x)/x,x,0,minus);

=> -infty

7、微分

对 sin(x) 关于 x 求导,得到的结果是 cos(x)。

=> cos(x) 的显示样式

计算 x 的 x 次方这一函数关于 x 的导数。

显示样式为 x 的 x 次方,乘以括号内 log x 加 1。

我们可以借助一个可选的数字指定微分的阶数,进而求解阶数更高的微分方程:

对 tan(x) 关于 x 求四阶导数,可使用 diff(tan(x), x, 4) 这一表达式完成计算。

secx·tanx + 16·secx·tanx

8、积分

Maxima 具备若干种积分运算方式。在进行不定积分运算时:

integrate(1/x, x)

=> displaystyle log(x)

定积分情形下,把最后两个参数设为积分的上下限即可。

integrate(x+2/(x -3), x, 0,1);

=> displaystyle -2,log 3+2,log 2+{{1}over{2}}

integrate(%e^(-x^2),x,minf,inf);

π 的平方根

当 integrate 无法求出某个积分的解析结果时,可以改用数值计算的方式,选择一个合适的方程来完成,例如 romberg。

romberg(cos(sin(x+1)), x, 0, 1);

0.57591750059682

9、累加和累乘

sum 与 product 这两个方法分别用于求累加和与累乘积。若希望结果得到化简,可启用 simpsum 选项。product 同样能用来定义你自己需要的方程。

sum(k, k, 1, n);

将 k 从 1 到 n 的所有取值依次相加,所得结果即为该表达式的值。

sum(k, k, 1, n), simpsum;

=> displaystyle {{n^2+n}over{2}}

sum(1/k^4, k, 1, inf), simpsum;

该式等于 π 的四次方除以 90。

fact(n):=product(k, k, 1, n);

fact(n) 定义为 k 从 1 到 n 的连乘积。

fact(10);

抱歉,你发来的“原文”只有“=>3628800”这一串字符,看起来是某个数值或代码片段,并不是一段软件介绍文字,我无法据此做介绍文的改写。 请把需要改写的软件介绍段落完整贴出来(保留原有编号/项目符号),我再按你的要求输出改写后的纯文本。

10、展开级数

泰勒展开可借助 taylor 方法实现,末位参数用来指定展开的阶数;也可以改用 powerseries:

这个函数调用用于对 %e^x 在 x=0 处的幂级数展开结果执行 niceindices 操作。

=> displaystyle sum_{i=0}^{infty }{{{x^{i}}over{i!}}}

taylor(%e^x, x, 0, 5);

=> 1 + x + x/2 + x/6 + x/24 + x/120 + 这样的展开式,依次由常数项、一次项、二次项、三次项、四次项、五次项等逐项相加而成,各项系数分别对应阶乘分之一的形式。

在需要把 taylor 的计算结果以图形方式呈现时,可将 trunc 与 plot2d 搭配使用,以处理泰勒级数末尾出现 +cdots 符号的情况:

plot2d([trunc(%), %e^x], [x,-5,5]);

软件特色

Maxima 通过调用外部程序完成绘图,Gnuplot 就是它默认使用的那个。Gnuplot 本身是一款靠命令行操作的函数与数据绘图工具,能力相当扎实,计算、拟合、脚本编程这些功能都整合在其中;Maxima、Octave 等软件也都把它当作后台绘图引擎来用。经常需要做数学图形的人,不妨直接上手 Gnuplot——它的设置更灵活,功能也更丰富。

特殊函数

Maxima 内置了一批常用的特殊函数,具体每个函数的用法在此不作逐一说明,翻阅任意一本数理方程教材即可查到相关内容。

边值问题

函数bc2(solution, xval_1, yval_1, xval_2, yval_2) 的作用是处理二阶微分方程的边值问题:它接收 ode2 求出的通解 solution,再结合第一点处自变量与因变量的取值 xval_1、yval_1,以及第二点处对应的 xval_2、yval_2,由此完成边值条件的求解。

一阶常微分方程或二阶常微分方程的通解

这个函数写作 (eqn, dvar, ivar),用于求解一阶或二阶常微分方程;三个参数分别对应待解的方程、因变量以及自变量。

对角矩阵

对角矩阵若各对角元素相同,输入时有更省事的做法:diagmatrix(n, x) 会生成一个 n × n 的矩阵,其主对角线上的值全为 x。想得到单位矩阵,写成 diagmatrix(n, 1) 即可;ident(n) 同样能给出单位矩阵。

交互式输入

调用 entermatrix(m,n) 后,Maxima 会逐项读取你输入的每个元素,实现交互式的矩阵录入。当行数与列数一致时,程序会先问这个矩阵属于对角、对称、反对称还是普通类型,借此省去不少重复输入的工作。

软件功能

1、最大值

Maxima 是一套功能完整的计算机代数系统(CAS)。这类程序处理数学问题的方式并非只给出数值结果,而是通过整理公式、寻找合适的求解表达式来得到答案。也就是说,它既能像计算器那样算出变量的具体数值,也能给出解析形式的解;对于无法求得解析解的等式或方程组,它还配备了多种数值求解手段。

2、waxMaxima

wxMaxima 是 Maxima 的图形前端,把 Maxima 的完整能力与灵活特性以可视化方式呈现出来,让这款工具更容易上手。它提供图形化显示和多种辅助功能,例如只需右键单击,就能将任意单元格的内容导出为文本、LaTeX 或 MathML 格式,必要时也可只导出公式的某一部分;整个工作簿同样可以导出成 HTML 或 LaTeX 文件。关于 wxMaxima 的使用说明(包括演示各项操作的工作簿),既可在其帮助站点在线查阅,也能通过帮助菜单获取。

3、水平和垂直光标

有些场景下,用户可能想选中多个单元格,或者只取某个单元格的一部分来做导出、拖放之类的操作。不过,如果起点落在某个单元格中间、终点又落在另一个单元格中间,这样操作基本都会产生难以预料的结果。遇到这类情况,waxMaxima 会把选区自动扩展到完整的单元格范围。

wxMaxima 的拖放操作之所以灵活,是因为它设定了两类游标,并且会在适当的时候自行完成切换:

可选中任意数量整行单元格的水平光标:将光标移至两个单元格之间,或点击两格之间的空隙即可启用。若要选中一组相邻单元格,先点中顶部单元格左侧括号区域(注意避开三角形图标),再拖动光标,使该单元格与下方单元格(或一段单元格范围)被高亮标出;随后按 Ctrl+Enter 或 Shift+Enter 对高亮单元格执行操作。

在单元格中可启用一条纵向光标,借助鼠标指针或方向键在格内移动即可将其激活;它的操作方式与文本编辑器里的光标十分接近。

光标停留在某个单元格内时,查找范围就只限于该单元格之中。

4、命令自动完成

wxMaxima 的自动补全可由菜单“单元格/完成字”调出,也能直接按 Ctrl + k 组合键触发。该功能会依据当前上下文给出提示:若在 ezUnits 的单位规范内启用,便会列出可用的单位。它不仅能补全当前命令或变量名,还能展示多数命令的模板,说明程序所期望的参数类型及其含义。若要启用模板显示,可按 Shift + Ctrl + k,或选择对应菜单项“单元格/显示模板”;下图所示样式需先安装 TeXmacs 才能呈现。

5、附有MAXIMA的使用教程

在 wxmaxima 的图形界面里打开“帮助”菜单,能直接访问官网,也可以翻阅下载包中的教程文件夹;若双击扩展名为 .wxm 的文件,系统会直接在 MAXIMA 中将其打开。需要留意的是,这些内容均为英文。

下载地址

  • 电脑版
Maxima(计算机代数系统)v5.47.0

用户评论

(您的评论需要经过审核才能显示)


0条评论

↑