cssauh.com 首页  
OlympicNew   常见问题与解答 (FAQ)常见问题与解答 (FAQ)   搜索搜索   成员列表成员列表   成员组成员组   注册注册   个人资料个人资料   登陆查看您的私人留言登陆查看您的私人留言   登陆登陆 

计算机代数运算软件Maxima

 
发表新帖   回复帖子    cssauh.com 首页 -> 学习讨论
阅读上一个主题 :: 阅读下一个主题  
作者 留言
传说中的马哥



注册时间: 2004-12-24
帖子: 333

帖子发表于: 星期五 五月 12, 2006 11:53 am    发表主题: 计算机代数运算软件Maxima 引用并回复

Maxima是一个优秀的开放源代码代数运算系统,符号运算能力可以和著名商业数学软件Mathematica相媲美。这里是它的使用方法的一个简介。
  1. 运行和退出
    运行:
    在Linux下,运行如下命令:
    代码:
    maxima
    在Windows下,直接点击Maxima图标就可以了。进入maxima环境后,会看到开始处有
    代码:
    (%i1)
    ,这是行标。%i表示输入行,%o表示输出行,后面的数字表示第几个输入或输出。

    退出:
    代码:
    quit();
    可以看出,maxima语法和C语言类似,语句结束需要加分号。maxima里面是要区分大小写的。

  2. 算术运算
    符号
    代码:
    +, -, *, /, ^
    分别表示加、减、乘、除、乘方。maxima是一个精确计算的代数系统,例如分数,开方等运算会保持符号形式,不会被自动转化为小数。另外,maxima是在命令行方式下运行的,给出的运算结果也是ascii码,可能习惯使用图形界面的用户不太习惯,不过你很快就会发现ascii码的结果和图形显示一样清楚。另外,软件TeXmacs可以用作maxima的前端,它可以给出和LaTeX一样漂亮的输出结果。(其实TeXmacs就是用的TeX字体。)不过我没有在Windows平台上测试过这个功能。
    代码:
    (%i1) 2/5+3/4;
                                          23
    (%o1)                                 --
                                          20
    如果要输出小数,可以用numer命令:
    代码:
    (%i2) %,numer;
    (%o2)                                1.15
    百分号%代表最后一次输出的结果。另外,可以用bfloat输出任意精确度的小数,有效数字位数由变量fpprec控制,默认是16位。
    代码:
    (%i3) fpprec:100;
    (%o3)                                 100
    (%i4) bfloat(%pi);
    (%o4) 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068b0
    (%i3)中的冒号表示赋值。

  3. 代数运算
    多项式展开:
    代码:
    (%i5) (x^2+2*x*y+3*y^2)^3;
                                     2            2 3
    (%o5)                        (3 y  + 2 x y + x )
    (%i6) expand(%);
                6         5       2  4       3  3       4  2      5      6
    (%o6)   27 y  + 54 x y  + 63 x  y  + 44 x  y  + 21 x  y  + 6 x  y + x
    等量代换:
    代码:
    (%i7) %o6, x=2/z;
                     5        4        3        2
                108 y    252 y    352 y    336 y    192 y   64       6
    (%o7)       ------ + ------ + ------ + ------ + ----- + -- + 27 y
                  z         2        3        4       5      6
                           z        z        z       z      z
    提取公分母:
    代码:
    (%i8) ratsimp(%);
              6  6        5  5        4  4        3  3        2  2
          27 y  z  + 108 y  z  + 252 y  z  + 352 y  z  + 336 y  z  + 192 y z + 64
    (%o8) -----------------------------------------------------------------------
                                             6
                                            z
    因式分解:
    代码:
    (%i9) factor(%);
                                    2  2             3
                                (3 y  z  + 4 y z + 4)
    (%o9)                       ----------------------
                                           6
                                          z
    解非线性方程组:
    代码:
    (%i10) a+b+2*c=0;
    (%o10)                          2 c + b + a = 0
    (%i11) 2*a-b=1;
    (%o11)                            2 a - b = 1
    (%i12) a-2*b*c=5;
    (%o12)                           a - 2 b c = 5
    (%i13) solve([%o10,%o11,%o12],[a,b,c]);
                 sqrt(7) + 1      2 sqrt(7) - 1      sqrt(7) - 14
    (%o13) [[a = -----------, b = -------------, c = -------------],
                      3                 3            4 sqrt(7) - 2
                              sqrt(7) - 1        2 sqrt(7) + 1      sqrt(7) + 14
                       [a = - -----------, b = - -------------, c = -------------]]
                                   3                   3            4 sqrt(7) + 2

_________________
其实……我就是传说中的马哥
返回页首
阅览成员资料 (Profile) 发送私人留言 (PM) MSN Messenger
传说中的马哥



注册时间: 2004-12-24
帖子: 333

帖子发表于: 星期三 六月 14, 2006 4:25 pm    发表主题: 引用并回复

  1. 三角函数变换
    常用的三角函数变换有下面几种:
    • trigexpand
      利用和差化积公式展开
    • trigreduce
      利用积化和差等公式变成sin或cos的和
    • trigsimp
      利用
      代码:
         2         2
      sin (x) + cos (x) = 1
      等公式简化
    • trigrat
      简化分数形式
    下面是一些例子:
    代码:
    (%i1) sin(2*x)/cos(x)+cos(2*x);
                                  sin(2 x)
    (%o1)                         -------- + cos(2 x)
                                   cos(x)
    (%i2) trigexpand(%o1);
                                 2                    2
    (%o2)                   - sin (x) + 2 sin(x) + cos (x)
    (%i3) trigreduce(%o1);
    (%o3)                     sec(x) sin(2 x) + cos(2 x)
    (%i4) trigsimp(%o1);
                              sin(2 x) + cos(x) cos(2 x)
    (%o4)                     --------------------------
                                        cos(x)
    (%i5) trigrat(%);
    (%o5)                         cos(2 x) + 2 sin(x)
  2. 微积分
    • 微分:
      一阶导数
      代码:
      (%i1) f: sqrt(x-1)*exp(2*x^2);
                                                     2
                                                  2 x
      (%o1)                         sqrt(x - 1) %e
      (%i2) diff(f, x);
                                                           2
                                               2        2 x
                                            2 x       %e
      (%o2)               4 sqrt(x - 1) x %e     + -------------
                                                   2 sqrt(x - 1)
      二阶导数
      代码:
      (%i3) diff(sin(x)*exp(x^2), x, 2);
                             2             2                 2
                        2   x             x                 x
      (%o3)          4 x  %e   sin(x) + %e   sin(x) + 4 x %e   cos(x)
    • 不定积分:
      代码:
      (%i4) integrate(%o2, x);
                                             2   log(x - 1)
                                          2 x  - ----------
                                                     2
      (%o4)                     (x - 1) %e
    • 定积分:
      从这个例子可以看出,maxima是一个很聪明的代数系统,它不会像其他数学程序那样想当然的默认一个结果,而是主动问你必要的条件,然后给出正确的结果。
      代码:
      (%i5) integrate(exp(-a*x^2), x, 0, inf);
      Is  a  positive, negative, or zero?

      positive;
                                         sqrt(%pi)
      (%o5)                              ---------
                                         2 sqrt(a)
    • 泰勒展开:
      这个例子给出函数g的前三阶泰勒展开。
      代码:
      (%i6) g: sin(2*x)*exp(a*x);
                                        a x
      (%o6)                           %e    sin(2 x)
      (%i7) taylor (g, x, 0, 4);
                                      2       3     3         4
                              2   (3 a  - 4) x    (a  - 4 a) x
      (%o7)/T/     2 x + 2 a x  + ------------- + ------------- + . . .
                                        3               3

_________________
其实……我就是传说中的马哥
返回页首
阅览成员资料 (Profile) 发送私人留言 (PM) MSN Messenger
传说中的马哥



注册时间: 2004-12-24
帖子: 333

帖子发表于: 星期三 六月 14, 2006 5:15 pm    发表主题: 引用并回复

或许有些人对纯文字界面有些不适应,觉得输出的公式结果很难辨认,尤其当结果比较复杂时。没有关系。开放源代码软件TeXmacs可以为Maxima提供一个图形前端,只需要在TeXmacs里面调出Maxima环境就可以了。由于TeXmacs使用TeX字体,它可以帮助Maxima输出非常漂亮的数学公式。其实TeXmacs的本职工作是一个所见即所得的文档编辑器,可以输出非常专业的科学文章,但是它同时可以用作很多程序的图形前端。下面是在TeXmacs里面调用Maxima的截图,很漂亮吧:


_________________
其实……我就是传说中的马哥
返回页首
阅览成员资料 (Profile) 发送私人留言 (PM) MSN Messenger
从以前的帖子开始显示:   
发表新帖   回复帖子    cssauh.com 首页 -> 学习讨论 论坛时间为 HST (夏威夷)
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的帖子
不能在这个论坛删除自己的帖子
不能在这个论坛发表民意调查


Powered by phpBB © 2001, 2005 phpBB Group
phpBB 简体中文界面由 iCy-fLaME 更新翻译web hosting