如果符号解算不出来且符号解不是必须的,试试数值解
mathematica吧
全部回复
仅看楼主
吧务
level 15
xzcyr 楼主
这个也是讲烂了的内容,但吧里好像没有标题足够显眼的帖,姑且专开一帖,方便索引。
比较常用的“超级函数”基本都有与之对应的数值求解器。如标题所说,如果符号解没算出来并且符号解对你来说不是必要的,那么不妨去试试数值解。
只写这么几行的话内容好像太少,那就再稍微谈一下比较常见的成对的符号/数值求解器及其特性。
对于代数方程:Solve(虽然现在已经发展成了超级求解器,但它主要是个多项式方程求解器)/NSolve(引入时间非常晚,目前在某些方程上的表现反而不如Solve,但对部分类型的方程可能有奇效,具体看帮助)、FindRoot(需要初值,优点是差不多是个方程就能解,但方程性质不好照样会跪)
对于微分方程:DSolve(虽然近几版明显改善,但依旧是符号求解失败重灾区)/NDSolve(性能强劲,但某种意义上也是把人骗进去杀的玩意儿)
对于积分:Integrate(性能强劲,但是积不出来的积分就是积不出来)/NIntegrate(性能强劲,最近的加强应该是有限元法的引入,但是自从版本8引入LevinRule后好像就没有了针对特殊类型积分的改进。)
对于极值:Maximize、Minimize/NMaximize、NMinimize(全局算法,无需初值,"DifferentialEvolution"法有时有奇效,新引入的"Convex"法值得关注);FindMaximum、FindMinimum(这俩需要初值)
……成对的函数当然不止这些,不过我现在累了,今天先到这儿。
2024年04月06日 14点04分 1
level 2
findroot真不错
2024年04月07日 08点04分 2
level 11
感谢像吧主这样人的存在!
2024年04月10日 03点04分 3
吧务
level 15
xzcyr 楼主
对于傅立叶变换:FourierTransform(bug是真不少,当然这跟傅立叶变换牵扯到广义函数时的复杂性有一定关系,用的时候要小心)/NFourierTransform(位于Needs["FourierSeries`"]内的函数,其实就是NIntegrate外面加个壳,对于数值傅立叶变换,真正有用的不是它),Fourier(快速傅立叶变换,与傅立叶变换相关的种种数值算法基本靠的都是它,但是请注意它毕竟是基于均匀采样的有限个数据,所以——粗略地说——只能看作傅立叶变换的数值近似版本,但是对于空间上衰减迅速的函数,其近似效果是非常好的。顺便很多人搞不清楚Fourier和FourierTransform之间的坐标变换关系,这个嘛,其实没这么难,大家只要想想,如果我在复平面上绕原点,从0角度开始,逆时针画个圈,那么,圈上的各点的角度坐标是多少?没错,是从0到Pi,再从-Pi到0。)
2024年05月04日 08点05分 5
1