【交流】受限于数学发展而无法或很难求解却经常有人想解的问题
mathematica吧
全部回复
仅看楼主
吧务
level 15
xzcyr 楼主
其实本来想用的标题是《【交流】“这些问题你换软件也没用!”——受限于数学发展而无法或很难求解却经常有人想用Mathematica解的问题》。Mathematica作为一个软件,必然无法超越现有的数学理论,也就是说,对于尚未在理论上得到很好解决的问题,Mathematica是不太可能
直接求解出来的——这话说出来大家都明白,但是,一般用户常常很难分辨哪些问题目前在理论上是很难或无法求解的,故开此交流帖,大家可以来谈谈自己所知道的相关问题。为避免讨论门槛过高,接受疑似案例的提出。
还有就是回帖时请尽量一楼一话题。
最后,顶楼放个云笔记链接,用于整理回复中有价值的信息:http://note.youdao.com/noteshare?id=adef791007abde149867ea8b95aad15d(不用说,帖子发出的此刻还是白的)
2016年11月05日 13点11分 1
吧务
level 15
xzcyr 楼主
占个二楼以防万一。(顶楼的链接要是因为某种原因挂了,将会在此楼的楼中楼中补链。)
2016年11月05日 13点11分 2
吧务
level 15
xzcyr 楼主
我先来说一个吧,
高阶多项式方程组的一般化求解。这个搞不好是我见过的出现频率最高的“在理论上求解十分困难却总有人想解”的问题了。
明确一下,“高阶多项式方程组”指的是由形为
a(0)+a(1) x+a(2) x^2+…b(0)+b(1) y+b(2) y^2+…c(0)+c(1) z+c(2) z^2+…=d
的方程组成的方程组,其中x, y, z是待求的未知量。经常看到有人拿着Solve或者NSolve试图要求解这类方程,但是,Solve和NSolve在求解此类方程时调用的GroebnerBasis,GroebnerBasis的主要算法Buchberger复杂度为双指数型,也就是说未知量数目的增加会导致求解时间的暴增。(好吧,说了这么多,其实大多是从这帖学舌的:http://mathematica.stackexchange.com/a/2672/1871 对于这个问题的理论基础部分我也不算熟悉,有什么说错的地方欢迎指出。)
对于此类问题,较现实的解法是用FindRoot,当然这要求你有较为合理的初值——一般而言通过仔细分析方程背后的问题背景,这不致于太困难。
在Solve或NSolve里添加限制条件(未知量取值范围,是否是实数域等)可能可以加速求解,但是也有求解速度反被拖慢的例子。
还解不出来就改改方程背后的模型吧。
2016年11月05日 14点11分 3
楼主阐述正确极富哲理性。
2019年05月05日 10点05分
求多项式方程组的全部解是经常会遇到的问题,方法主要分为两类:第一类是基于符号计算的消元方法,比如吴方法(吴文俊),Groebner基方法(Solve用的是这个)。第二类是基于数值计算的方法,比如特征值法,牛顿法(FindRoot用的是这个),同伦法
2017年04月26日 02点04分
正如上面所说,Groebner基方法受限于高次数问题,而吴方法恰恰只是受限于变元个数问题。从实际生活来说,变量个数一般不会太多,吴方法更适合发挥作用。数值方法则中的特征值法与Grobner基方法类似,只是后面用数值方法来解决复杂计算问题。
2017年04月26日 02点04分
牛顿法,也就是FindRoot用到的方法,因为采用的是泰勒展开一阶近似迭代,所以是局部收敛算法,因而对初值特别敏感,有时候选择不对往往得不到解。由于一次只能收敛到一个解,因此很难得到全部解(除非初值选择恰好各自收敛到对应的解)。同伦法是全局收敛的,而且能得到全部孤立解,但也存在一些问题。
2017年04月26日 02点04分
level 9
非线性偏微分方程数值解[乖]MMA总是一会好一会坏
2017年05月09日 01点05分 4
其实,一个非常粗略的经验规则是,名字里带了“非线性”的东西大部分都难解或者无法解。不过如上所说这个经验非常粗略。比如说, Burgers方程以及流体力学的欧拉方程组这样的会由光滑的初始条件演化出冲击波的方程,NDSolve就解不了,但学界似乎对此还是有比较成熟的研究的。对了这个我该补到对面去。
2017年11月04日 12点11分
level 5
没了?
2018年11月30日 00点11分 7
确切地说是没人加新的。
2018年11月30日 16点11分
1