mathematica 发表于 2019-8-31 09:04:42

符号计算软件是如何计算多项式方程组的?

我发现mathematica求解多项式方程组的时候,
即使用求解数值解,总能给出多项式方程组的所有数值解,
不知道是用了什么算法,
我记得牛顿迭代法,算方程组的时候,也只能一次给出一个算法,
且经常不收敛到特定的解,而收敛到别的解,也就是初始值往往
决定了收敛到哪个解,但是mathematica一下子就给出所有解,
所以我很好奇,怎么做到的?用了什么算法?

无心人 发表于 2019-9-29 17:14:01

N年前有个软件叫REDUCE

灵树 发表于 2019-9-30 17:18:40

用数学天堂解任意方程最方便。

mathematica 发表于 2019-10-1 09:48:24

本帖最后由 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

灵树 发表于 2019-10-1 19:31:51


做到这一步,可以求出实数值。
如果再化简到标准方程就可以求出复数值了。

.·.·. 发表于 2019-10-2 00:27:24

我知道有个走向数学丛书
计算复杂性(王则柯)
里面似乎有关于多项式算法的描述
感觉……高中时候这种书我还啃得动
现在老了………………

看着这书,我总觉得这书是让人远离数学的
虽然方法很巧妙……

BTW,大约是mathe说的:

多项式求根可以用留数定理+(数值)围道积分的方法判断在某个区域内是否有根
(……复平面上的二分法)

灵树 发表于 2019-10-2 13:32:12

实现起来很简单四五十行代码的事。

mathe 发表于 2019-10-2 16:44:49

Gröbner_basis

kastin 发表于 2019-10-4 10:54:59

看一下综述 https://wenku.baidu.com/view/2988bc1bfad6195f312ba683.html

mathematica 发表于 2019-10-9 09:35:08

kastin 发表于 2019-10-4 10:54
看一下综述 https://wenku.baidu.com/view/2988bc1bfad6195f312ba683.html

力学人真棒
页: [1] 2
查看完整版本: 符号计算软件是如何计算多项式方程组的?