Maple求解方程式显示“RootOf”

时间:2017-02-11 16:37:20

标签: solver maple

我正在尝试解决以下系统:

gx:=2*x*exp(x^2+y^2)-4*y
gy:=2*y*exp(x^2+y^2)-4*x
sys:={gx=0,gy=0}:
solve(sys,{x,y})

然后显示以下输出:

{x = 0, y = 0}, {x = RootOf(2*_Z^2-ln(2)), y = RootOf(2*_Z^2-ln(2))}, {x = -RootOf(2*_Z^2-ln(2)-I*Pi), y = RootOf(2*_Z^2-ln(2)-I*Pi)}

第一个“root”(0,0)是正确的,但是我如何删除那个根和Z是什么?是否有可能从中得到正确的答案?

2 个答案:

答案 0 :(得分:1)

这是函数allvalues的一个很好的场景。 从帮助页面:

  

计算涉及RootOfs的表达式的所有可能值

gx:=2*x*exp(x^2+y^2)-4*y;
gy:=2*y*exp(x^2+y^2)-4*x;
sys:={gx=0,gy=0}:
sol := solve(sys,{x,y}):

seq(allvalues(sol[i]), i= 1..numelems([sol])):
print~([%])[];

Output of allvalues version 1

但请注意,您没有以这种方式获得所有解决方案。解决问题的方法有很多种;要获得所有解决方案,请在solve命令中使用可选参数allsolutions = true

sol2 := solve(sys,{x,y},allsolutions = true):
seq(allvalues(sol2[i]), i= 1..numelems([sol2])):
print~([%])[];

Output of allvalues version 1

如果你运行它,你会看到一个新的变量_Z1,它有一个尾随波浪号(~) - 这个代号表示对变量有假设。要查看这些假设,请使用

about(_Z1);
Originally _Z1, renamed _Z1~:
  is assumed to be: integer

这意味着上述解决方案适用于任何整数_Z1。这些都是您的解决方案,并以预期的方式编写。

答案 1 :(得分:0)

您可以使用fsolve来确定最终的数值解决方案,

restart;
gx:=2*x*exp(x^2+y^2)-4*y;
gy:=2*y*exp(x^2+y^2)-4*x;
sys:={gx=0,gy=0}:
fsolve(sys,{x,y})
  

{x = .5887050113,y = .5887050113}

sys:={gx=0.,gy=0.}:
solve(sys,{x,y})
  

{x = 0.,y = 0.},{x = .5887050112,y = .5887050112},{x = -.5887050112,y = -.5887050112},{x = -.9887236333-.7943556085 * I,y = .9887236333 + .7943556085 * I},{x = .9887236333 + .7943556085 * I,y = -.9887236333-.7943556085 * I}