如何筛选出列表中的实数
mathematica吧
全部回复
仅看楼主
level 2
lixiaojiazu 楼主
请问一下,在mathematica中计算得到了这样的一组数据点,每个数据点中有四个数,有没有简单的方法筛选出其中为实数的数据点?
(PS: 虚数i复制过来变成了大写 I )
{{-0.919695, 0.917125, -2.80724, -2.80724}, {-0.919695, 0.917125,
0.334355, -2.80724}, {0.919695, 0.917125, -2.80724,
0.334355}, {0.919695, 0.917125, 0.334355, 0.334355}, {-0.602587,
2.35146, -2.5693, -2.5693}, {-0.602587, 2.35146,
0.572296, -2.5693}, {0.602587, 2.35146, -2.5693,
0.572296}, {0.602587, 2.35146, 0.572296,
0.572296}, {-0.140749 + 0.0387699 I,
1.71189 - 0.833602 I, -1.34292 + 0.0261258 I, -1.34292 +
0.0261258 I}, {-0.140749 + 0.0387699 I, 1.71189 - 0.833602 I,
1.79867 + 0.0261258 I, -1.34292 + 0.0261258 I}, {0.140749 -
0.0387699 I, 1.71189 - 0.833602 I, -1.34292 + 0.0261258 I,
1.79867 + 0.0261258 I}, {0.140749 - 0.0387699 I,
1.71189 - 0.833602 I, 1.79867 + 0.0261258 I,
1.79867 + 0.0261258 I}, {-0.140749 - 0.0387699 I,
1.71189 + 0.833602 I, -1.34292 - 0.0261258 I, -1.34292 -
0.0261258 I}, {-0.140749 - 0.0387699 I, 1.71189 + 0.833602 I,
1.79867 - 0.0261258 I, -1.34292 - 0.0261258 I}, {0.140749 +
0.0387699 I, 1.71189 + 0.833602 I, -1.34292 - 0.0261258 I,
1.79867 - 0.0261258 I}, {0.140749 + 0.0387699 I,
1.71189 + 0.833602 I, 1.79867 - 0.0261258 I,
1.79867 - 0.0261258 I}, {-0.228921 + 0.162561 I,
2.93701 - 1.07919 I, -1.4666 + 1.34736 I, -1.4666 +
1.34736 I}, {-0.228921 + 0.162561 I, 2.93701 - 1.07919 I,
1.67499 + 1.34736 I, -1.4666 + 1.34736 I}, {0.228921 - 0.162561 I,
2.93701 - 1.07919 I, -1.4666 + 1.34736 I,
1.67499 + 1.34736 I}, {0.228921 - 0.162561 I, 2.93701 - 1.07919 I,
1.67499 + 1.34736 I, 1.67499 + 1.34736 I}, {-0.228921 - 0.162561 I,
2.93701 + 1.07919 I, -1.4666 - 1.34736 I, -1.4666 -
1.34736 I}, {-0.228921 - 0.162561 I, 2.93701 + 1.07919 I,
1.67499 - 1.34736 I, -1.4666 - 1.34736 I}, {0.228921 + 0.162561 I,
2.93701 + 1.07919 I, -1.4666 - 1.34736 I,
1.67499 - 1.34736 I}, {0.228921 + 0.162561 I, 2.93701 + 1.07919 I,
1.67499 - 1.34736 I, 1.67499 - 1.34736 I}}
我在帮助文档中找了一下Cases 函数,没有找到实现的方法。我的实际数据量上面的数据更多,每次手动筛选太麻烦,所以想问有没有简单的方法,谢谢。
2021年09月07日 02点09分 1
level 2
lixiaojiazu 楼主
我的结果是用NSolve函数解出来的。在求解的时候限定求解域为实数的话,提示错误”NSolve::nsmet: This system cannot be solved with the methods available to NSolve.“。去掉求解时的实数域限制,可以得到解,但是包含一部分复数解。我实际只想要想实数解。
2021年09月07日 02点09分 2
由于方程的式子非常长,所以不方便贴出来。
2021年09月07日 02点09分
吧务
level 10
Cases[data, {__Real}]
2021年09月07日 06点09分 3
非常感谢,谢谢~!!
2021年09月11日 10点09分
1