gpt4 book ai didi

wolfram-mathematica - 你如何解释 Mathematica 中的负值?

转载 作者:行者123 更新时间:2023-12-03 22:29:04 25 4
gpt4 key购买 nike

我试图更深入地了解 Mathematica 表达式是如何在内部表示的,并且对 Level 的逻辑感到困惑Mathematica 中的命令。如果我们有以下输入:

In[1]:= a = z*Sin[x + y] + z1*Cos[x1 + y1]

Out[1]= z1 Cos[x1 + y1] + z Sin[x + y]

In[2]:= FullForm[a]

Out[2]= Plus[Times[z1,Cos[Plus[x1,y1]]],Times[z,Sin[Plus[x,y]]]]

In[3]:= TreeForm[a]

我们得到以下树:

tree form of expression a, above

如果我们要求 Mathematica 只返回 Level 4,我们得到:
In[4]:= Level[a,{4}]
Out[4]= {x1,y1,x,y}

我知道我们比“词干”(0 级的 Plus 运算符)低 4 个级别。事实上,我想我明白正指数总是与树的茎位置有关。 (我希望我是对的??)

相比之下,当您要求负水平时,则没有共同的引用点(如上面的茎),因为树的不同分支的长度不同。因此,如果您要求 Mathematica 仅提供 Level -1,我们会得到:
In[6]:= Level[a,{-1}]
Out[6]= {z1,x1,y1,z,x,y}

当我猜到我应该回来时,我对这个输出感到惊讶 {x1, y1, x, y} (没有 z1z )。但是好吧,如果我试图理解这一点,我将 -1 表示“每个分支的结束”。如果是这样,那么我希望 Level[a,{-2}]返回:
{z1*Cos[x1+y1],z*Sin[x+y],x1+y1,x+y}

但是,这不是我得到的结果,Mathematica 产生了:
In[8]:= Level[a,{-2}]
Out[8]= {x1+y1,x+y}

所以,现在我很困惑,没有看到理解负水平输出的一致方式。

是否有一种一致的、更简单的方式来理解这个主题?我应该以某种“正确”的方式阅读树的结构吗?

抱歉“冗长的问题”,但我希望你明白我在问什么。

最佳答案

如果你看 docs , 他们说:

A negative level -n consists of all parts of expr with depth n.



所以负水平不是从引用点开始计算的,而是根据子表达式的深度定义的。 z1*Cos[x1+y1]深度为 4,因此当您要求时它不会返回 Level[..., {-2}] .

关于wolfram-mathematica - 你如何解释 Mathematica 中的负值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6998797/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com