内蒙古大学吧 关注:148,656贴子:2,621,607
  • 12回复贴,共1

CAS(计算机代数系统)软件——MAXIMA,不同于Matlab

取消只看楼主收藏回复

之前的话:简单的介绍,如有错误欢迎指正,也欢迎补充。基本资料来自互联网,一定贴题目和标注出处;贴网址容易被删,尽量贴。

(wxMaxima屏幕截图)
历史就不贴了,长,大伙儿也不乐意看,反正Maxima的前身是“代数”数学软件Mathematica、Maple的先驱。看到这里,很多人肯定都会有这样几个问题:
1.俺们Matlab用得好好的,干嘛用这个名气不大的Maxima?
诚然,Matlab是一个功能很丰富的数学软件,在国内的使用范围也十分广泛。不过,Matlab是matrix laboratory,本质是做矩阵运算,而这也正是matlab的强项——数值分析 Numerical Analysis。举个例子,“2开根号”在matlab里是1.414...数位再多也是以代数方式逼近,并不是绝对想等(Symbolic Tool Box的问题见下)
而Maxima是代数运算,或者叫符号运算,这是绝对的变量计算,它和人的计算方式或解方程方式相同。相当于,Matlab从一开始就带入数值计算,而Maxima是对计算过程进行推导之后,得到最终表达式,之后使用者可以带入数值得到最终解。从一开始就近似,与到最后才近似一次,这个准确程度当然是不同的。简单的说,“2开根号”就=,而不是1.414...


IP属地:上海1楼2015-01-25 15:14回复
    2. Matlab 没有algebra(或symbolic,以下全称为symbolic) 运算么?
    事实是,Matlab在不知何时开始,也加入了symbolic运算,叫Symbolic Toolbox。用syms来定义变量为Symbolic 变量。Matlab这个功能也比比较全面。不过,在用Matlab Symbolic Toolbox的时候,总是在这里或哪里出问题,比如用solve解方程的时候,又是给出的答案是类似“X=31.124985”这样的小数,而且这个X的变量类型还是syms,而不是float,需要进行类型转换。当然,这只是我遇到的一个问题,可能是我的使用方法不正确。不过也反映出了Matlab的原生设计是为了“矩阵”和“数值运算”的。
    而两个symbolic 类型的数值,即便是整数倍,相除的时候也有可能得 “3.00000000000”,等你用这个数值作为指针index的时候,想提取数列里的第3个数值。此时Matlab会提示一个问题,这个数列指针只能为整数。这是因为,Matlab虽然显示除出的得数为“3.00000000000”,但这只是显示结果,而实际结果,很可能在若干位置后有个1,或者3,如“3.00000000000...01”,而导致无法作为指针。此时需要将“3.00000000000”取整为“3”……
    而对于Maxima,则没有这样的问题,不存在定义变量名为symbolic变量的条件,最后的结果也不存在“类型转换”的麻烦。有人可能说,“不就一个类型转换么,又不麻烦?”。不过当处理一个复杂的计算方程或者计算过程时,我们希望用更多的时间来解决“运算逻辑”或者“算法”,而不是使用各种方法来解决软件提示的编程语言问题……否则很烦,相信我,真的很烦……
    “那Maxima能解决数值计算么?”答案很令人欣喜——可以,完全可以。Maxima也有方便实用的矩阵运算,相信只是数值运算的效果不会比Matlab差


    IP属地:上海2楼2015-01-25 15:34
    回复
      2025-11-15 13:29:21
      广告
      不感兴趣
      开通SVIP免广告
      3.在对于symbolic 运算时, Maxima 的运算速度比Matlab 相对快。
      如果是一个并不复杂的计算,Matlab 的Symbolic toolbox 和 Maxima可能区别并不明显,因为计算机的运算速度对于这个运算来说过剩。
      不过,当遇到一个复杂的符号运算时,Maxima这种原生的符号运算软件的优势就明显了,Matlab完成一个功能可能需要1小时,而Maxima只需要几分钟。一次没什么关系,不过要做100次这样的计算时,Maxima的优势就明显了,尤其是再将100个结果汇集,发现程序有错误的时候(不要问我为什么会有这样的想法)……
      也许有人说“这是你的Matlab软件算法优化太差”。我不否认,我只完成了功能,而没有花很多时间进行算法优化。不过,这也正是Maxima的一个优势,Maxima自身的计算已经进行过了很多的优化,并不需要用户太过考虑。如Matlab在进行逼近(Approximation)的时候有时还得用户自己根据需要指定逼近方法……


      IP属地:上海3楼2015-01-25 15:41
      回复
        忘了说,第一章图片来自维基百科
        来自知乎用户的评价:
        mathematica更适合于工程这种说法真是新鲜。“工科生用Matlab,理科生用Mathematica”。Matlab最厉害的就是工程领域的工具箱,解放了大波工科生。Mathematica就比较偏理论了,不过近几个版本工程方面进步也不小。数学家(不包括应用数学)普遍喜欢的是计算机代数系统(CAS),他们更愿意用Mathematica、Maple、SageMath、Axiom、Maxima、GAP...等,喜欢Matlab的就极少。物理学家要推导公式,也需要一个强悍的符号计算系统,Mathematica的主要作者Stephen Wolfram就是物理学出身。计算机科学家很多更喜欢和LISP族函数式语言打交道,而Mathematica就继承了LISP的优良血统,Donald Ervin Knuth用Mathematica多年,裘宗燕老师、王垠先生用Mathematica的水平很高。
        (此处楼主并不完全同意,Mathematica或者Maxima的功能也并不弱,但符号计算或理论计算优势相对更明显)
        数值分析的话,MATLAB严格优于MathematicaMatlab从一开始就是数值计算软件,Mathematica则是计算机代数系统。历史上Matlab的数值计算的确比Mathematica好点,不过大概从Mathematica5.2开始情况就没这么简单了。然而很多人对Mathematica的印象还停留在10多年前,仍认为比Matlab差了很多,这些人有浅尝辄止的,跟风的怕是更多。严格来说孰优孰劣远非几句话就说得清。
        原评论网址:http://www.zhihu.com/question/20454290


        IP属地:上海5楼2015-01-25 16:15
        回复
          看样子是Dana Paquin的教程贴错了,不好意思
          百度网盘地址:
          http://pan.baidu.com/s/1B79a2


          IP属地:上海7楼2015-01-26 03:20
          收起回复
            搜到名为“mathoc”博主的blog,这个学习笔记所含图形均使用开源数学软件Maxima完成。博主似乎没有贴Maxima的原代码,不过题型似乎也都不是特别复杂,同学可自行尝试
            (度娘炮不要再删我贴的链接了……)
            博客地址:http://blog.sina.com.cn/s/articlelist_5072910199_2_1.html
            《国防科大MOOC高等数学-1》
            “这一系列文档是根据国防科技大学2014年5月在中国大学MOOC平台讲授“高等数学(一)”课程整理的学习笔记,确切的说只是课堂练习题与课后测试题的个人解法。若有不当乃至谬误之处请各位高手不吝指正。谢谢!“——mathoc


            IP属地:上海12楼2015-01-30 04:34
            回复
              贴出原程序的还有,海之子论坛的“insect”(名字有点儿怪)原创的——用Maxima学习《数学物理方法》
              原贴地址:http://bbs.ouc.edu.cn/forum.php?mod=viewthread&tid=59398
              属于比较基础的试验,如果想找个材料先练练手,这个还是不错的,贴出的代码也可以作为例子程序进行修改
              (第二章更新在6楼,看不到的同学请使劲儿向下翻页)


              IP属地:上海13楼2015-01-30 04:55
              回复
                来自sourceforge的教程
                The Maxima Book. Paulo Ney de Souza. Richard J. Fateman. Joel Moses. Cliff Yapp. 19th September 2004
                本书百度网盘地址:
                http://pan.baidu.com/s/1c0jVawS


                IP属地:上海14楼2015-09-18 13:55
                回复
                  2025-11-15 13:23:21
                  广告
                  不感兴趣
                  开通SVIP免广告
                  Mathematical Modeling and Simulation这本书有中文版本《数学建模与仿真:科学与工程导论》
                  在网上可以找到,感兴趣的同学可以找找看


                  IP属地:上海15楼2015-09-18 14:36
                  收起回复
                    不过仍有使用方法需要注意,如solve()和resultant()
                    知乎上提到了一个解二次方程组的问题:http://www.zhihu.com/question/21962058
                    为了方便大家,直接贴出问题和解法
                    问题:
                    solve([x^2+y^2=1, (x-2)^2+(y-3)^2=9],[x,y]);
                    返回的只有[]
                    ----------------------------------------------------------------
                    知乎用户“孙圣开”的解法:


                    IP属地:上海19楼2016-01-02 15:32
                    回复
                      还有一个帖子讲了如何使用 iTeXmacs美化Maxima输出的排版:
                      来自开源中国zhcosin的帖子《搭建完美的数学计算环境: iTeXmacs+maxima》
                      http://my.oschina.net/zhcosin/blog/88141?p=1
                      maxima 与 iTeXmacs效果如下(图片来自zhcosin帖子)


                      IP属地:上海20楼2016-01-02 15:41
                      回复
                        又一篇教程:《Maxima在线性代数的应用》 PDF
                        作者:蔡炎龍,转换重排:dbzhang
                        度盘分享地址:http://pan.baidu.com/s/1hrs2qK8
                        希望在学习线性代数的同学们可以试试


                        IP属地:上海21楼2016-01-08 17:01
                        回复
                          Maxima 的视频教程(英语无字幕未翻译) (有0~6,共7段教程)
                          教程来自anorman728,实在没有能力翻译(水平渣)
                          如果有需要可上传原视频到度盘,极其欢迎字幕施工
                          第0段是介绍,其余视频陆续上传,可查看视频选集列表
                          视频来自:搜狐视频


                          IP属地:上海22楼2016-01-08 17:14
                          回复