内蒙古大学吧 关注:148,368贴子:2,618,136

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-08-12 09:16:24
      广告
      不感兴趣
      开通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
        回复
          有点意思


          IP属地:英国来自Android客户端6楼2015-01-26 00:30
          收起回复
            看样子是Dana Paquin的教程贴错了,不好意思
            百度网盘地址:
            http://pan.baidu.com/s/1B79a2


            IP属地:上海7楼2015-01-26 03:20
            收起回复
              收藏~


              来自Android客户端9楼2015-01-26 11:10
              收起回复
                只用logit


                来自iPhone客户端10楼2015-01-26 14:34
                收起回复
                  2025-08-12 09:10:24
                  广告
                  不感兴趣
                  开通SVIP免广告
                  搜到名为“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
                      回复
                        Mathematical Modeling and Simulation这本书有中文版本《数学建模与仿真:科学与工程导论》
                        在网上可以找到,感兴趣的同学可以找找看


                        IP属地:上海15楼2015-09-18 14:36
                        收起回复
                          楼主你好,我在xp和win10下安装的maxima都有问题,算下导数都会无响应。。。比如diff(sin(x^2))。请问有什么解决方法吗


                          IP属地:广东16楼2015-09-18 16:00
                          收起回复
                            可以转c语言么


                            IP属地:浙江来自Android客户端17楼2015-09-18 23:14
                            收起回复
                              2025-08-12 09:04:24
                              广告
                              不感兴趣
                              开通SVIP免广告
                              maxima密码学是这个范畴吗?


                              IP属地:江苏来自iPhone客户端18楼2015-12-29 11:23
                              收起回复