Maxima 在此处返回结果列表(最大值数组略有不同)。列表的每个元素都是一对方程(x = ... 和 y = ...)。对于其他阅读本文的人,结果看起来像
[[x = .06111426947129051, y = .1679154401926679],
[x = - 6.026109660574413, y = .3056091599125177],
[x = .2909171173159695, y = .4452108480953128],
[x = .4561445354339108 %i + 1.180400961416986,
y = .8695950265919334 %i + .05136082885038127],
[x = 1.180400961416985 - .4561445354339104 %i,
y = .05136082885038127 - .8695950265919334 %i],
[x = .06097600174281474 %i - 0.77772869099467,
y = 0.792517152411182 %i - .5107285531053073],
[x = - .06097600174281463 %i - 0.77772869099467,
y = - 0.792517152411182 %i - .5107285531053073],
[x = 0, y = 0]]
现在,从您的问题中,我不确定您是否只想要每个y
坐标,或者您是否想要找到解决的第二个解决方案。对于第二种解决方案,只需使用[n]
来获取第 n 个东西。因此,如果我将上面的列表存储为变量solns
,我可以使用
(%i12) solns[2];
(%o12) [x = - 6.026109660574413, y = .3056091599125177]
如果你想要每个y
坐标,你必须映射到列表中。例如,试试这个:
(%i14) map(lambda([pair], rhs(second(pair))), solns);
(%o14) [.1679154401926679,
.3056091599125177,
.4452108480953128,
.8695950265919334 %i + .05136082885038127,
.05136082885038127 - .8695950265919334 %i,
0.792517152411182 %i - .5107285531053073,
- 0.792517152411182 %i - .5107285531053073,
0]
(我稍微整理了输出的格式)。或者你也可以这样做
map(rhs, map(second, solns));
它给出了完全相同的答案,但不需要编写 lambda 形式。