有一个带下标和上标的参数

Dro*_*ror 4 wolfram-mathematica

我想在mathematica中定义一个具有多个参数的对象/符号,例如:( S=(1-t)({b_i}^x,{b_i}^y)+t({b_{i+1}}^x,{b_{i+1}}^y)某种LaTeX表示法).在这个例子中,我试图描述的线段连接两个点b_ib_{i+1}.

我该如何定义这样的对象mathematica

我发现了以下两个问题:

但我不确定我是否正确使用它们.我所做的是以下内容.首先我调用:

Needs["Notation`"];

Symbolize[
ParsedBoxWrapper[
SubscriptBox["\[SelectionPlaceholder]", "\[Placeholder]"]]]

Symbolize[
ParsedBoxWrapper[
SuperscriptBox["\[SelectionPlaceholder]", "\[Placeholder]"]]]
Run Code Online (Sandbox Code Playgroud)

然后,我实际上定义了对象:

(1 - t) {Subscript[b, i]^x, Subscript[b, i]^y} + 
 t {Subscript[b, i + 1]^x, Subscript[b, i + 1]^y}
Run Code Online (Sandbox Code Playgroud)

这是做我想要的正确方法吗?

Sjo*_*ies 6

我不完全确定我明白你想要什么.你正在谈论的'对象'

(1 - t) {Subscript[b, i]^x, Subscript[b, i]^y} + 
 t {Subscript[b, i + 1]^x, Subscript[b, i + 1]^y}
Run Code Online (Sandbox Code Playgroud)

实际上并不是单个实体,而是两个列表的总和,每个列表由两个组件组成.所以,我认为你真的想定义Subscript[b, i]^x为一个符号.

您可以SymbolizeNotation包中执行此操作.但是,使用按下"符号"按钮上的"符号化"按钮时生成的模板(运行时得到这个<< Notation`)是绝对至关重要的.然后输入您的复合变量.我将假设上标x和y是固定符号,下标is是可变的:

在此输入图像描述


还有一件事:

使用它可能不是一个好主意,Subscript[b, i]^y因为你将失去将下标变量提升到x和y次幂的能力(轻微损失,但仍然).相反,你可能想要使用Subsuperscript[b,i,y].请注意,Subsuperscript文档页面"更多信息"部分中的句子似乎显然是错误的.它说:

要在笔记本中输入subsuperscript,请使用Ctrl + _开始常规下标,或使用Ctrl + ^开始常规上标.键入第一个脚本后,使用Ctrl +%移动到相反的脚本位置.Ctrl + Space移出下标或上标位置.

如果你FullForm在结果对象上做了一个,你会发现你做了一个Subscript[b, i]^y.要获得符号化模板中粘贴的符号,除了键入Subsuperscript[b, i_, y],评估和将结果复制到模板之外,我没有看到任何其他解决方案.

  • 文档显然不是错误的,它只是不能说明整个故事.遵循文档中的键击将产生一个`Subsuperscriptbox`,这将是Notation包将看到的.但是,Mma默认将其解释为`Power [Subscript [..]]`,这通常是你想要的.当您在输入中创建使用`Subsuperscript`时,Mma通过创建`InterpretationBox [SubsuperscriptBox [...],Subsuperscript [...],Editable-> False]]`来保护它免受标准解释,并且``Editable - >错误位有点烦人. (2认同)