找回密码
 快速注册
搜索
查看: 27|回复: 1

Mathematica与SymPy解方程组不同

[复制链接]

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

hbghlyj 发表于 2023-7-26 06:01 |阅读模式
本帖最后由 hbghlyj 于 2023-7-26 06:07 编辑 求参数的值,使二元多项式在ℝ上可约Mathematica解方程组:
  1. f = (x^2 + y^2 - 1) ((x - 3)^2 + y^2 - 1) + k x y;
  2. Assuming[k∈Reals, Solve[D[f, x] == D[f, y] == f == 0, {k, x, y}]]
复制代码

输出10组解:
  1. {{k -> 0, x -> 3/2, y -> -I/2*Sqrt[5]},
  2. {k -> 0, x -> 3/2, y -> I/2*Sqrt[5]},
  3. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {1, 1, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 1, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {1, 1}]},
  4. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {1, 2, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 1, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {1, 2}]},
  5. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {2, 1, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 2, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {2, 1}]},
  6. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {2, 2, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 2, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {2, 2}]},
  7. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {3, 1, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 3, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {3, 1}]},
  8. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {3, 2, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 3, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {3, 2}]},
  9. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {4, 1, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 4, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {4, 1}]},
  10. {k -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & , 1323*#2 + 5454*#1*#2 + 3810*#1^2*#2 - 8254*#1^3*#2 + 1932*#1^4*#2 + 380*#3 & }, {4, 2, 1}], x -> Root[24 + 7*#1 - 22*#1^3 + 6*#1^4 & , 4, 0], y -> Root[{24 + 7*#1 - 22*#1^3 + 6*#1^4 & , -392 - 96*#1 - 105*#1^2 + 426*#1^3 - 108*#1^4 + 95*#2^2 & }, {4, 2}]}}
复制代码

SageMath解相同的方程组:
  1. var('k x y')
  2. f = (x^2 + y^2 - 1) * ((x - 3)^2 + y^2 - 1) + k * x * y
  3. solve([diff(f, x), diff(f, y), f], [k, x, y], solution_dict=True, algorithm='sympy')
复制代码

为什么仅输出了前2组解呢?
  1. [{k: 0, x: 3/2, y: -1/2*I*sqrt(5)},
  2. {k: 0, x: 3/2, y: 1/2*I*sqrt(5)}]
复制代码

3149

主题

8386

回帖

6万

积分

$\style{scale:11;fill:#eff}꩜$

积分
65391
QQ

显示全部楼层

 楼主| hbghlyj 发表于 2023-7-26 06:09
发现把algorithm='sympy'去掉,就也是10组解了。这是什么原因?

手机版|悠闲数学娱乐论坛(第3版)

GMT+8, 2025-3-4 11:56

Powered by Discuz!

× 快速回复 返回顶部 返回列表