为什么枫不评估这个限制?

时间:2014-05-02 15:51:03

标签: maple

当我键入以下代码时,maple不会评估限制,但它显然存在。

> restart; 
> omega := proc (x, y) options operator, arrow; 2*[x, y, 1]/(1+x^2+y^2) end proc;

> phi := proc (x, y) options operator, arrow; Re((lambda*(x+I*y)+a+I*b)/(1-lambda*(a-I*b)*  (x+I*y))), Im((lambda*(x+I*y)+a+I*b)/(1-lambda*(a-I*b)*(x+I*y))) end proc;

> Omega := limit(omega(phi(x/(e^2*(x^2+y^2)), y/(e^2*(x^2+y^2)))), e = 0);

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

您似乎试图在列表中映射各种操作,这可以通过在[x,y,1]正文中的表达式的分子中使用omega来证明。

*/limit不会自动映射到列表。

您可以使用*或元素语法/expand来映射*~/~。为了获得限制,我使用下面的map命令。

如果您不打算在列表上映射操作,请解释[x,y,1]的用途。

另请注意,如果做出各种假设,Maple可以获得e->0的限制,或者某些“简化”(通过evalc,其作用就像未知数一样)是先前完成的致电limit。默认情况下,Maple会认为e以外的变量是复杂的。

restart; 

omega := (x, y) -> expand( 2*[x, y, 1]/(1+x^2+y^2) ):
#omega := (x, y) -> 2*~[x, y, 1]/~(1+x^2+y^2):

phi := (x, y) -> (Re((lambda*(x+I*y)+a+I*b)/(1-lambda*(a-I*b)*(x+I*y))),
                  Im((lambda*(x+I*y)+a+I*b)/(1-lambda*(a-I*b)*(x+I*y)))):

expr := omega(phi(x/(e^2*(x^2+y^2)), y/(e^2*(x^2+y^2)))):

map(limit,expr,e=0) assuming real;

      [                                / 2    2\]
      [      2 a            2 b      2 \a  + b /]
      [- -----------, - -----------, -----------]
      [   2    2         2    2       2    2    ]
      [  a  + b  + 1    a  + b  + 1  a  + b  + 1]

newexpr := evalc(expr):

map(limit,newexpr,e=0);

      [                                / 2    2\]
      [      2 a            2 b      2 \a  + b /]
      [- -----------, - -----------, -----------]
      [   2    2         2    2       2    2    ]
      [  a  + b  + 1    a  + b  + 1  a  + b  + 1]

如果您有其他想法,请告诉我们。