0

考虑到我以最大值得到这个输出:

b : solve([ans,ans2],[x,y]);    
float(b);
    [[x=0.0,y=%r11],[x=-5.0,y=0.0],[x=1.0422311,y=0.537285*%i],[x=-0.940313,y=0.537285*%i],[x=-5.1019178,y=0.537285*
    %i],[x=1.0422311,y=-0.537285],[x=-0.940313,y=-0.537285],[x=-5.1019178,y=-0.537285],[x=1.0422311,y=-0.537285*%i],[x=-
    0.940313,y=-0.537285*%i],[x=-5.1019178,y=-0.537285*%i],[x=1.0422311,y=0.537285],[x=-0.940313,y=0.537285],[x=-5.1019178,y
    =0.537285]]

如何对解决方案进行排序并仅获取域 -2 < x < 2 和 -2 < y < 2 上的解决方案?

我已经寻找了很多这个解决方案,它真的很有帮助,因为我可以找到我正在寻找的东西而没有任何“噪音”。

这可能是我在“解决”命令括号中写的东西吗?

提前非常感谢!

4

1 回答 1

1

您可以使用sublist

b: [[x=0.0,y=%r11],[x=-5.0,y=0.0],[x=1.0422311,y=0.537285*%i],[x=-0.940313,y=0.537285*%i],[x=-5.1019178,y=0.537285*
    %i],[x=1.0422311,y=-0.537285],[x=-0.940313,y=-0.537285],[x=-5.1019178,y=-0.537285],[x=1.0422311,y=-0.537285*%i],[x=-
    0.940313,y=-0.537285*%i],[x=-5.1019178,y=-0.537285*%i],[x=1.0422311,y=0.537285],[x=-0.940313,y=0.537285],[x=-5.1019178,y
    =0.537285]];

filter(s):= block([x: assoc(x, s), y: assoc(y, s)],
  featurep(x, real) and featurep(y, real) and x>-2 and x<2 and y>-2 and y<2);

sublist(b, 'filter);

回报:

(%o9) [[x = 1.0422311, y = - 0.537285], [x = - 0.940313, y = - 0.537285], 
                 [x = 1.0422311, y = 0.537285], [x = - 0.940313, y = 0.537285]]
于 2013-04-29T14:20:12.523 回答