祝贺增设数学软件版块,希望促进数学软件开发研究!
数学软件是matlab、maple、Mathematica 等国外软件的天下,国内的研究大多是如何更好地使用这些软件,这样会永远跟在别人后面。这些软件实在太强大了,但并非尽善尽美。举例来说,国产的优化软件1stOpt的优化算法是世界领先的。郭先生的HugeCalc也有众多亮点,拥有世界领先的大数算法。
软件的核心的东西是算法。国外的软件公司汇集了很多优秀的算法,人力、物力、财力巨大,所以长成了软件大鳄。以matlab为例,众多的实用工具箱恐怕是受到追捧的重要原因。
国内众多的算法高手,算法之精悍一点也不比国外差,但大多数人的聪明才智只是随着时间的消逝而消逝。
为了能将大家的研究心得与他人共享,因而在此提一个建议:将自己的算法封装到dll中,给出接口说明,便于他人使用。为了有偿使用,鼓励创新,所有dll都提供一个统一的函数接受注册码之类的参数。在这方面,HugeCalc为我们树立了榜样。当然,并不是只有大型的算法才这样做,小巧的自己感觉有价值的算法都可以这样做。
最近在热心网友的帮助调试下,我也写了两个函数:isolve用于求解隐函数方程全部解,solve用于搜索非线性方程组的全部解(尽可能搜索全部解),这两个函数放到了Forcal扩展库FcOpt中(可到我的网站下载OpenFC试用并提出改进意见)。相信大家会写出更多更好的库函数,因而我在这里算是预先献丑,抛砖引玉吧。
欢迎大家讨论。 1# forcal
我也写了两个函数:isolve用于求解隐函数方程全部解,solve用于搜索非线性方程组的全部解(尽可能搜索全部解)
关于求根,Mathematica有两大类的 命令,一类是试图求所有确切解的,一类是用随机算法,启发式算法搜索出某一可行解的 , 这第二类命令的函数命名有一个鲜明的特点,就是以Find开头,十分明了,比如:
FindRoot,FindArgMax,FindMinimum
我感觉楼主的这两个函数的命名不够人性化,要是我某天用forcal的话,很可能会把这两个函数名和 功能张冠李戴了
国产的优化软件1stOpt,我很早用过,的确很不错,至少比MATLAB爽快利落。
但很多问题,它似乎只能给出一个解,而不能给出所有解,我的意思是说,该软件用的算法似乎都是那种启发式搜索的偏多。
当然了,我对该软件认识的还不够,可这也不能怪我阿,1stOpt根本就没有像样的文档! 2# wayne
关于求根,Mathematica有两大类的 命令,一类是试图求所有确切解的,一类是用随机算法,启发式算法搜索出某一可行解的 , 这第二类命令的函数命名有一个鲜明的特点,就是以Find开头,十分明了,比如:
FindRoot,FindArgMax,FindMinimum
我感觉楼主的这两个函数的命名不够人性化,要是我某天用forcal的话,很可能会把这两个函数名和 功能张冠李戴了
wayne 发表于 2011-1-21 20:33 http://bbs.emath.ac.cn/images/common/back.gif
呵呵,名字起的有些随意了。是不是改成iFindAllRoot和FindAllRoot更好些?或者iFindRoot和FindRoot?i表示隐函数。
请大家给想个更好的名字。名字尽可能简洁些,因为这两个函数很常用。
另外,matlab似乎还没有提供求非线性方程(组)全部解的函数,Mathematica的FindRoot似乎也是只求得一个解。虽然可以通过编程求得全部解,但失去了简单易用性和通用性,一般人不容易掌握。智能化、傻瓜化的东西更容易亲近用户。
哪些软件提供了这个功能,能否介绍一下? 关于文档问题,限于目前的状况,我是这样想的:
1、软件功能是本质,文档是现象。现象应该和本质一致,这就是我们所说的表里如一。文档华而不实,会引起人的厌烦;文档太差强人意,会让人失去兴趣;表里如一最好。
2、多数人:Forcal功能似乎不错->看看去->哇,真难看,算了:反正目前我也用不着,以后再说。或者:一看文档就知道不怎么样。
3、少数人:Forcal功能似乎不错->看看去->哇,真难看,不过再看看吧:耐着性子看看,其实问题也都说清楚了。
故目前只有少数真正对Forcal感兴趣的人会认真看Forcal的文档。
对1stOpt,我想也是这样:只有真正需要的人才去使用它。
应该充分发挥详尽文档的作用,Forcal将尽快做到表里如一。
这要再次感谢像bainhome 、wayne 等热心的朋友。
页:
[1]