符号计算软件是如何计算多项式方程组的?
我发现mathematica求解多项式方程组的时候,即使用求解数值解,总能给出多项式方程组的所有数值解,
不知道是用了什么算法,
我记得牛顿迭代法,算方程组的时候,也只能一次给出一个算法,
且经常不收敛到特定的解,而收敛到别的解,也就是初始值往往
决定了收敛到哪个解,但是mathematica一下子就给出所有解,
所以我很好奇,怎么做到的?用了什么算法? N年前有个软件叫REDUCE 用数学天堂解任意方程最方便。 本帖最后由 mathematica 于 2019-10-1 09:50 编辑
灵树 发表于 2019-9-30 17:18
用数学天堂解任意方程最方便。
比如解联立方程组可以吗?
比如x^2*y+x+y=10且y^2*(x+y)+10*y=88
你的软件能求出所有的数值解吗?
数值解如下
x->-0.6397727991573012094-1.6566277893507628836 I y->-1.703954677029806527-3.946167137946147803 I
x->-0.6397727991573012094+1.6566277893507628836 I y->-1.703954677029806527+3.946167137946147803 I
x->1.2528628554678593331 y->3.4039985778366076502
x->0.6250461824495742919+1.3434303408759198609 I y->-2.051708202242230207-5.076357399903960512 I
x->0.6250461824495742919-1.3434303408759198609 I y->-2.051708202242230207+5.076357399903960512 I
x->-1.3256823493251327707 y->4.1073271807074658171
做到这一步,可以求出实数值。
如果再化简到标准方程就可以求出复数值了。 我知道有个走向数学丛书
计算复杂性(王则柯)
里面似乎有关于多项式算法的描述
感觉……高中时候这种书我还啃得动
现在老了………………
看着这书,我总觉得这书是让人远离数学的
虽然方法很巧妙……
BTW,大约是mathe说的:
多项式求根可以用留数定理+(数值)围道积分的方法判断在某个区域内是否有根
(……复平面上的二分法) 实现起来很简单四五十行代码的事。 Gröbner_basis 看一下综述 https://wenku.baidu.com/view/2988bc1bfad6195f312ba683.html kastin 发表于 2019-10-4 10:54
看一下综述 https://wenku.baidu.com/view/2988bc1bfad6195f312ba683.html
力学人真棒
页:
[1]
2