使用下标时最大值返回错误结果

泡沫

我正在使用 WxMaxima 进行一些计算,因此我可以将结果直接导出到我的 LaTeX 文件中。我有一些带有希腊下标的希腊变量,这让我很头疼。过去在 Maxima 中,我曾经将下标放在括号中[]但我注意到传统的 LaTeX 语法_也有效。除了它不适用于希腊字母:

在此处输入图片说明

所以[]当我想用希腊字母下标希腊字母时,我必须使用括号一但它会导致一些计算错误。

例如考虑两个简单的函数:

%epsilon[r](r):=c[1]-c[2]/r^2;
%epsilon[%theta](r):=c[1]+c[2]/r^2;

现在,如果我运行:

fullratsimp(%epsilon[r](r)+%nu*%epsilon[%theta](r));

它给了我:

((c[1]*%nu+c[1])*r^2+c[2]*%nu+c[2])/r^2

在此处输入图片说明

这显然是错误的,因为正确的结果可以通过以下方式计算:

fullratsimp((c[1]-c[2]/r^2)+%nu*(c[1]+c[2]/r^2));

在此处输入图片说明

如果您能帮助我了解问题所在以及如何解决,我将不胜感激。

罗伯特·多迪尔

问题是foo[x1](y) := ...andfoo[x2](y) := ...只定义了一个 function foo,第二个定义破坏了第一个,因此 onlyfoo[x2](y) := ...被定义。

您可以通过创建 lambda 表达式(未命名函数)并将它们分配给下标变量来获得所需的效果。

(%i1) %epsilon[r](r):=c[1]-c[2]/r^2 $
(%i2) %epsilon[%theta](r):=c[1]+c[2]/r^2 $
(%i3) %epsilon[r];
                                  c
                                   2
(%o3)                 lambda([r], -- + c )
                                   2    1
                                  r
(%i4) %epsilon[%theta];
                                  c
                                   2
(%o4)                 lambda([r], -- + c )
                                   2    1
                                  r
(%i5) kill(%epsilon) $
(%i6) %epsilon[r] : lambda([r], c[1]-c[2]/r^2) $
(%i7) %epsilon[%theta] : lambda([r], c[1]+c[2]/r^2) $
(%i8) %epsilon[r];
                                       c
                                        2
(%o8)                 lambda([r], c  - --)
                                   1    2
                                       r
(%i9) %epsilon[%theta];
                                       c
                                        2
(%o9)                 lambda([r], c  + --)
                                   1    2
                                       r
(%i10) fullratsimp(%epsilon[r](r)+%nu*%epsilon[%theta](r));
                                2
                 (c  %nu + c ) r  + c  %nu - c
                   1        1        2        2
(%o10)           ------------------------------
                                2
                               r

请注意,foo[x](y) := ...也会创建 lambda 表达式,但您需要在此处确保您自己的定义,而不是由 Maxima 自动创建的定义。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

来自函数的C分段错误,返回数组的最大值

来自分类Dev

找到最大值时,Python错误“无法使用弹性类型执行归约”

来自分类Dev

MYSQL返回每个组的最大值

来自分类Dev

从SQL选择中返回最大值

来自分类Dev

QueryDSL返回最大值

来自分类Dev

返回数组中最大值的索引

来自分类Dev

MongoDB查找并全部返回最大值

来自分类Dev

在SQLITE中获取视图的最大值时,错误地使用了aggregate:max()

来自分类Dev

返回数组javascript的最大值

来自分类Dev

熊猫在读取CSV数据文件时返回的错误最大值

来自分类Dev

计算最大值和最小值Javascript时得到错误的值

来自分类Dev

返回每组最大值的行

来自分类Dev

在javascript对象中返回最大值

来自分类Dev

找到最大值时,Python错误“无法使用弹性类型执行归约”

来自分类Dev

如何以最大值返回多行

来自分类Dev

返回所有组的最大值?

来自分类Dev

使用excel vba查找最大值并返回表的标题

来自分类Dev

使用反向模式时,ValueAnimator不会达到最大值

来自分类Dev

Max()函数不返回最大值

来自分类Dev

当最大值返回NULL时,函数不返回期望值

来自分类Dev

Node.js解析最小值和最大值返回错误值

来自分类Dev

Oracle SQL:仅返回最大值

来自分类Dev

返回数组中最大值的索引

来自分类Dev

如何使用python从数组中返回最大值索引?

来自分类Dev

选择最大值而不使用最大值?

来自分类Dev

返回最大值的索引

来自分类Dev

如何返回最大值的对应日期

来自分类Dev

从多维数组 (ndarray) 返回最大值

来自分类Dev

返回最大值的位置(列)