1.使用预定义的组合代数
我们现在演示如何使用预定义的组合代数进行示例计算,从对称函数的代数开始。注意,我们真的认为这些预定义的代数只是使用这个包的示例;当然,重要而有用的例子,但只是例子。
我们定义有理数上的对称函数环:
S:=示例::SymmetricFunctions(Dom::Rational);
这个戒指有几个特别的家族,比如对称的电源插座
:回想一下对称幂和
扩展到任何给定的指定字母表(即变量集)作为所有变量的总和
; 此外,给定一个分区
,的产品
表示为
:
p1:=S::p([1]);
p1([x,y,z]);
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math6.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math7.png)
p2:=S::p([2]);
p2([x,y,z])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math8.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math9.png)
p421:=S::p([4,2,1]);
p421([x,y,z])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math10.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math11.png)
注:乘积是可交换的,上述展开式中各项的出现顺序取决于MuPAD的内部顺序,在数学上是不相关的。
实际上,对称函数环是对称幂母上的自由交换代数:
p2*p1*p2*p421
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math12.png)
请注意,系统会立即展开任何表达式:
(p421+3*p2)*(1/4*p1-p2)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math13.png)
发生这种情况是因为通话S: :p([1])返回类型化对象,其中标准算术运算符已重载:
那就是,S: :功率总和(或S: :p简而言之)真正代表了在幂函数基础上扩展的对称函数域。如果您不希望在某些时候进行扩展,则始终可以将对象转换为表达式:
f:=(表达(p421)+3*表达(p2))*(1/4*表达(p1)-表达(p2))
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math14.png)
此表达式可以转换回对称函数:
S(f);
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math15.png)
为了做到这一点,我们使用了以下小技巧,因为基本元素的索引符号。
eval(sub(f,p=S::p::domainWrapper))
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math16.png)
这个技巧的解释是S: :p::domainWrapper是一种特殊的MuPAD对象,当用作S: :p::domainWrapper[3,2],返回对的调用S: :p([3,2]).
当然,示例::SymmetricFunctions提供了对称函数的其他经典基,如初等对称函数S: :e,单项式对称函数S: :米,齐次对称函数S: :h,Schur函数S: :S等:
展开(S::e([2])([x,y,z])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math17.png)
展开(S::m([2,1])([x,y,z])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math18.png)
展开(S::h([2])([x,y,z])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math19.png)
展开(S::S([2])([x,y,z])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math20.png)
下面是如何从一个基础转换到另一个基础
:
f:=S::p([4]);
S: :e(f);
S: :h(f);
S: :S(f);
S: :米(f)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math21.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math22.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math23.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math24.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math25.png)
当将两个不以相同基表示的对称函数相乘时,系统进行隐式转换,并在计算乘积的基中返回结果:
S: :p([2])*S::S([2])
-s[2,1,1]+s[4]+s[2,2]
当操作在给定的基础上不可用时,可能会出现类似的效果。例如,尚未为单项函数实现副积。因此,在以下情况中,将发生隐式转换,并在powersum函数中进行计算:
S: :副积(S::m([1,1])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math26.png)
如果要强制在给定的基础上计算或返回操作,可以在操作之前或之后显式调用适当的转换:
S::p([2])*S::p(S::S([2]));
S: :S(S::p([2]))*S::S([2]);
S: :p(S::p([2])*S::S([2]))
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math27.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math28.png)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math29.png)
现在,我们将所有内容结合起来,进行一些复杂的计算:
S: :p(S::m([1])*(S:(e([3])*S::S([2])+1))
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math30.png)
对于大多数基,构造函数接受一个不是立即划分的论点,并进行自然校正。例如,在乘法基础上,参数可以是组合,它将根据交换性进行适当排序:
S: :e([2,1,3])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math31.png)
同样,对于Schur基,参数可以是整数向量(通过Jacobi公式将Schur函数的定义扩展为整数向量),也可以是斜分块(表示相应的斜舒尔函数):
S: :S([[3,3,1],[2])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math32.png)
S: :S([7,3,0,9,4])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math33.png)
最后,在
和
以及Mac Donald函数的基础,我们现在演示。我们需要获取一些包含参数的地面字段
和
其中这些参数是度
元素(用lambda环的说法)。最简单的方法(实际上是当前MuPAD版本中最有效的方法)是在MuPAD的表达式字段中采用以下变体:
K:=域::ExpressionFieldWithDegreeOneElements([t,q]):
S:=示例::对称函数(K,vHL=t,vMcd=q):
这是Hall-Littlewood函数
:
el:=S::QP([3,2,1,1])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math40.png)
The expansion of埃尔就舒尔函数而言,其含义如下:
S: :S(el)
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math41.png)
The expansion of埃尔在字母表上
读作:
展开(el([q,q*t])
![数学](guidedTour-predefinedCombinatorialAlgebras_images/math43.png)