跳转到内容

计算机代数系统:修订间差异

计算器百科,非营利的计算器专业知识百科。
春上冰月留言 | 贡献
无编辑摘要
Dousha99留言 | 贡献
Missing link correction
 
(未显示3个用户的13个中间版本)
第1行: 第1行:
{{施工中|3小时}}
'''计算机代数系统'''(Computer Algebra System, 简称 [[CAS]]),计算机代数(Computer Algebra)在很多时候又被广义地理解为“号计算”(Symbolic Computation), 成与所谓“[[数值计算]]”(Numerical Computation)相对的概念。“符号”的运算在这里代替了“数”。符号可以代表整数, 有理数, 实数和复数, 也可以代表多项式, 函数, 还可以代表数学结构如集合, 群, 环, 代数等等。我们在学习和研究中用笔和纸进行数学运算多为符号运算。
'''计算机代数系统'''(Computer Algebra System, 简称 [[CAS]]),是以字为运算单位软件,可以进行数学表达式的符号运算。


== 功能 ==
== 代数功能 ==


计算机代数系统能计算[[代数式]],与传统的[[数值运算]]不同的是,计算机代数系统把一个字符串(比如 <math>x</math>)视作一个“符号”而不是一个“值”。对于计算机来说,下列的算式都属于代数运算的范畴,都需要计算机代数系统才能计算:
计算机代数系统能计算[[代数式]],与传统的[[数值运算]]不同的是,计算机代数系统把一个字符串(比如 <math>x</math>)视作一个“符号”而不是一个“值”。对于计算机来说,下列的算式都属于代数运算的范畴,都需要计算机代数系统才能计算:
第10行: 第9行:
     {{Code|<math>a+a = 2 a</math>}}
     {{Code|<math>a+a = 2 a</math>}}
     {{Code|<math>\sqrt{x^2} = \left\vert x \right\vert</math>}}
     {{Code|<math>\sqrt{x^2} = \left\vert x \right\vert</math>}}
如果数值运算之前,互为反函数的函数会抵消,从而得出精确解,这也属于计算机代数系统的范畴。
 
    {{Code|<math>\sin^{-1}(\cos^{-1}(\tan^{-1}(\tan(\cos(\sin(9)))))) = 9</math>}}
=== 代数式的微积分、极限、三角函数、指数函数 ===
=== 代数式的微积分、极限、三角函数、指数函数 ===
     {{Code|<math>\int_{}^{} \sin(\ln(x))\,dx = \frac{x\sin(\ln(x))}{2} - \frac{x\cos(\ln(x))}{2}</math>}}
     {{Code|<math>\int_{}^{} \sin(\ln(x))\,dx = \frac{x\sin(\ln(x))}{2} - \frac{x\cos(\ln(x))}{2}</math>}}
第17行: 第15行:
     {{Code|<math>\lim_{x \to 0}  \frac{x}{\sin(x)} = 1</math>}}
     {{Code|<math>\lim_{x \to 0}  \frac{x}{\sin(x)} = 1</math>}}
     {{Code|<math>\int_{-\infty}^{+\infty} \frac{1-\cos(x)}{x^2}\,dx = \pi</math>}}
     {{Code|<math>\int_{-\infty}^{+\infty} \frac{1-\cos(x)}{x^2}\,dx = \pi</math>}}
=== 代数式的求和与求积 ===
=== 代数式的求和与求积 ===
     {{Code|<math>\sum_{k=1}^n \frac{1}{k(k+1)} = - \frac{1}{n}</math>}}
     {{Code|<math>\sum_{k=1}^n \frac{1}{k(k+1)} = - \frac{1}{n}</math>}}
如果数值求和求积并不会以传统方式进行循环,而是先计算代数结果再代入计算以提高速度,这也属于计算机代数系统的范畴,例如,在[[TI-Nspire CAS]]计算器中,默认设置的情况下:
 
    {{Code|这个式子将会被视作数值运算并以数值运算方式进行:<math>\sum_{x=1}^{10000} x = 50005000</math>}}
    {{Code|这个式子将会被视作代数运算并使用计算机代数系统:<math>\sum_{x=1}^{100000000} x = 5000000050000000</math>}}
=== 多项式的因式分解和展开 ===
=== 多项式的因式分解和展开 ===
     {{Code|<math>factor(x^5-15x^4+85x^3-225x^2+274x-120) = (x-1)(x-2)(x-3)(x-4)(x-5)</math>}}
     {{Code|<math>factor(x^5-15x^4+85x^3-225x^2+274x-120) = (x-1)(x-2)(x-3)(x-4)(x-5)</math>}}
     {{Code|<math>expand((x+1)(x+2)(x+3)(x+4)(x+5)) = x^5+15x^4+85x^3+225x^2+274x+120</math>}}
     {{Code|<math>expand((x+1)(x+2)(x+3)(x+4)(x+5)) = x^5+15x^4+85x^3+225x^2+274x+120</math>}}
=== 使用特征方程法求解数列通项公式 ===
=== 使用特征方程法求解数列通项公式 ===
     {{Code|<math>rSolve(a_{n+2} = a_{n+1} + a_n, a_n, [a_1 = 1, a_2 =1]) = \frac{\sqrt{5}}{5}(\frac{1+\sqrt{5}}{2})^n - \frac{\sqrt{5}}{5}(\frac{1-\sqrt{5}}{2})^n</math>}}
     {{Code|<math>rSolve(a_{n+2} = a_{n+1} + a_n, a_n, [a_1 = 1, a_2 =1]) = \frac{\sqrt{5}}{5}(\frac{1+\sqrt{5}}{2})^n - \frac{\sqrt{5}}{5}(\frac{1-\sqrt{5}}{2})^n</math>}}
=== 矩阵的超越函数 ===
    {{Code|<math>\sqrt{\begin{pmatrix}1 & 4 \\6 & 3\end{pmatrix}}=\begin{pmatrix}\frac{2\sqrt{7} + 3\sqrt{3}i}{5} & \frac{2\sqrt{7} - 2\sqrt{3}i}{5}\\ \frac{3\sqrt{7} - 3\sqrt{3}i}{5} & \frac{3\sqrt{7} + 2\sqrt{3}i}{5}\end{pmatrix}</math>}}
== 其他功能 ==
有些算式看起来属于数值运算的范畴,但是它们也需要计算机代数系统才能计算,或者才能得到正确结果。
=== 高精度求值 ===
=== 高精度求值 ===
有时所需要的精度已经远远超出了二进制直接处理所能容纳的精度,必须把数值作为“符号”看待时,也属于计算机代数系统的范畴
有时所需要的精度已经远远超出了二进制直接处理所能容纳的精度,必须把数值作为“符号”看待时,也属于计算机代数系统的范畴
     {{Code|<math>2^{2^{8}} = 115792089237316195423570985008687907853269984665640564039457584007913129639936</math>}}
     {{Code|<math>2^{2^{8}} = 115792089237316195423570985008687907853269984665640564039457584007913129639936</math>}}
=== 精确数值运算 ===
=== 精确数值运算 ===
有时候需要把一些类似于 <math>\pi</math>、<math>e</math> 的常数代入算式中求值,并将其视作一个特殊的“符号”而不是它的值,或者希望输出时可以获取带有这些常数的结果,如 <math>\frac{3 \pi}{2}</math> 时,也属于计算机代数系统的范畴。
有时候需要把一些类似于 <math>\pi</math>、<math>e</math> 的常数代入算式中求值,并将其视作一个特殊的“符号”而不是它的值,或者希望输出时可以获取带有这些常数的结果,如 <math>\frac{3 \pi}{2}</math> 时,也属于计算机代数系统的范畴。
     {{Code|<math>\sin(2 \pi) = 0</math>}}
     {{Code|<math>\sin(2 \pi) = 0</math>}}
     {{Code|<math>\sin^{-1}(1) = \frac{\pi}{2}</math>}}
     {{Code|<math>\sin^{-1}(1) = \frac{\pi}{2}</math>}}
需要注意的是,很多函数计算器,比如 [[CASIO fx-82CN X]],[[CASIO fx-82ES]],[[TI-36X]]等,都支持像上面这样计算算式,但是计算的实质是近似看待,'''不属于'''计算机代数系统的范畴。例如,这些计算器在计算的时候,'''只能显示带一重根号或带有 <math>\pi</math> 的结果''',而不能显示带多重根号的结果:
    {{Code|<math>\sin(\frac{\pi}{4}) = \frac{\sqrt{2}}{2}</math>}}
    {{Code|<math>\sin^{-1}(\frac{\sqrt{2 - \sqrt{2}}}{2}) = \frac{1}{8}\pi</math>}}
    {{Code|<math>\sin(\frac{\pi}{8}) = 0.3826834324</math>}}
另一个表现就是对于某些十分近似的式子可能会产生错误的结果:<ref>[http://www.cncalc.org/thread-9900-1-1.html 给函数机们出道数学题 - cnCalc论坛]</ref>
例如,在 CASIO 的 [[ES]] 或者 [[ClassWiz]] 系列函数机中,计算下面这个式子,会得到一个含有 <math>\pi</math> 的答案:
    {{Code|<math>9^{6^{6^{6^{-3}}}} = \frac{346502623}{1680} \pi</math>}}
然而这个答案是'''{{Color|red|错误}}'''的,或者说是'''{{Color|red|不精确}}'''的,经过计算可得:
    {{Code|<math>9^{6^{6^{6^{-3}}}} - \frac{346502623}{1680} \pi \approx 5.21540641785 \times 10^{-8}</math>}}
=== 大数求和求积 ===
如果数值求和求积并不会以传统方式进行循环,而是先计算代数结果再代入计算以提高速度,这也属于计算机代数系统的范畴,例如,在[[TI-Nspire CAS]]计算器中,默认设置的情况下:
    {{Code|这个式子将会被视作数值运算并以数值运算方式进行:<math>\sum_{x=1}^{10000} x = 50005000</math>}}
    {{Code|这个式子将会被视作代数运算并使用计算机代数系统:<math>\sum_{x=1}^{100000000} x = 5000000050000000</math>}}
== 拥有计算机代数系统的计算器 ==
{{请勿大量罗列}}
此处仅列举'''自带'''计算机代数系统的计算器,通过安装[[Add-in|插件]](如 [[CASIO fx-CG20]] 可以通过安装 [[Eigenmath]] 来实现计算机代数系统)或者某些[[计算器程序|程序]](如 不带CAS功能的黑白屏 [[TI-84 Plus]] 安装 [[Zoom500]]<ref>[http://www.zoommath.com/products/zoom-math-500-calculus/ Zoom500官方介绍页面]</ref> 来实现计算机代数系统)则不会被列入此列表中。
=== 卡西欧 ===
* [[ClassPad]] 系列: [[fx-CP400]], [[ClassPad 330 PLUS]], [[ClassPad 330]], [[ClassPad 300 PLUS]], [[ClassPad 300]]
* [[AFX]] 系列: [[ALGEBRA FX 2.0]], [[ALGEBRA FX 2.0 PLUS]]
=== 德州仪器 ===
* [[TI-Nspire CAS]]系列:[[TI-Nspire CAS]],[[TI-Nspire CX CAS]],[[TI-Nspire CX-C CAS]],[[TI-Nspire CM-C CAS]]
* [[68k]]系列:[[TI-92]],[[TI-92 Plus]],[[Voyage 200]],[[TI-89]],[[TI-89 Titanium]]
=== 惠普 ===
* [[HP-Prime|Prime]] 系列:[[HP-Prime]]
* [[HP-Apple系列|HP-Apple]] 系列:[[HP-40GS]],[[HP-50G]]
''请参考{{分类|拥有计算机代数系统的计算器}}以获取更多相关信息。''
== 支持计算机代数系统的计算软件 ==
=== 开源软件 ===
* [[Xcas]]/[[Giac]]
* [[Eigenmath]]
=== 商业软件 ===
* [[Wolfram Mathematica]]
* [[Maple]]
* [[MATLAB]]
== 参考 ==
<references />

2018年2月17日 (六) 13:38的最新版本

计算机代数系统(Computer Algebra System, 简称 CAS),计算机代数(Computer Algebra)在很多时候又被广义地理解为“符号计算”(Symbolic Computation), 成为与所谓“数值计算”(Numerical Computation)相对的概念。“符号”的运算在这里代替了“数”的运算。符号可以代表整数, 有理数, 实数和复数, 也可以代表多项式, 函数, 还可以代表数学结构如集合, 群, 环, 代数等等。我们在学习和研究中用笔和纸进行的数学运算多为符号运算。

代数功能

计算机代数系统能计算代数式,与传统的数值运算不同的是,计算机代数系统把一个字符串(比如 x)视作一个“符号”而不是一个“值”。对于计算机来说,下列的算式都属于代数运算的范畴,都需要计算机代数系统才能计算:

代数式的化简

最简单的计算机代数系统示例就是代数式的化简,好比是数值运算里的 1+1=2

a+a=2a
x2=|x|

代数式的微积分、极限、三角函数、指数函数

sin(ln(x))dx=xsin(ln(x))2xcos(ln(x))2
dydxxx=xx(ln(x)+1)
limx0xsin(x)=1
+1cos(x)x2dx=π

代数式的求和与求积

k=1n1k(k+1)=1n

多项式的因式分解和展开

factor(x515x4+85x3225x2+274x120)=(x1)(x2)(x3)(x4)(x5)
expand((x+1)(x+2)(x+3)(x+4)(x+5))=x5+15x4+85x3+225x2+274x+120

使用特征方程法求解数列通项公式

rSolve(an+2=an+1+an,an,[a1=1,a2=1])=55(1+52)n55(152)n

矩阵的超越函数

(1463)=(27+33i52723i53733i537+23i5)

其他功能

有些算式看起来属于数值运算的范畴,但是它们也需要计算机代数系统才能计算,或者才能得到正确结果。

高精度求值

有时所需要的精度已经远远超出了二进制直接处理所能容纳的精度,必须把数值作为“符号”看待时,也属于计算机代数系统的范畴

228=115792089237316195423570985008687907853269984665640564039457584007913129639936

精确数值运算

有时候需要把一些类似于 πe 的常数代入算式中求值,并将其视作一个特殊的“符号”而不是它的值,或者希望输出时可以获取带有这些常数的结果,如 3π2 时,也属于计算机代数系统的范畴。

sin(2π)=0
sin1(1)=π2

需要注意的是,很多函数计算器,比如 CASIO fx-82CN XCASIO fx-82ESTI-36X等,都支持像上面这样计算算式,但是计算的实质是近似看待,不属于计算机代数系统的范畴。例如,这些计算器在计算的时候,只能显示带一重根号或带有 π 的结果,而不能显示带多重根号的结果:

sin(π4)=22
sin1(222)=18π
sin(π8)=0.3826834324

另一个表现就是对于某些十分近似的式子可能会产生错误的结果:[1]

例如,在 CASIO 的 ES 或者 ClassWiz 系列函数机中,计算下面这个式子,会得到一个含有 π 的答案:

96663=3465026231680π

然而这个答案是错误的,或者说是不精确的,经过计算可得:

966633465026231680π5.21540641785×108

大数求和求积

如果数值求和求积并不会以传统方式进行循环,而是先计算代数结果再代入计算以提高速度,这也属于计算机代数系统的范畴,例如,在TI-Nspire CAS计算器中,默认设置的情况下:

这个式子将会被视作数值运算并以数值运算方式进行:x=110000x=50005000
这个式子将会被视作代数运算并使用计算机代数系统:x=1100000000x=5000000050000000

拥有计算机代数系统的计算器

请勿大量罗列
此处仅列举同类事物的典型事例。您可以继续添加,但是添加的事例必须具有代表性


此处仅列举自带计算机代数系统的计算器,通过安装插件(如 CASIO fx-CG20 可以通过安装 Eigenmath 来实现计算机代数系统)或者某些程序(如 不带CAS功能的黑白屏 TI-84 Plus 安装 Zoom500[2] 来实现计算机代数系统)则不会被列入此列表中。

卡西欧

德州仪器

惠普

请参考分类:拥有计算机代数系统的计算器以获取更多相关信息。

支持计算机代数系统的计算软件

开源软件

商业软件

参考