跳到内容

stla/千斤顶R

存储库文件导航

jack包:jack多项式

R-CMD检查 R-CMD-检查阀研磨

图书馆(千斤顶)

舒尔多项式在组合学和地带性的多项式在多元统计中有应用。他们是特殊情况千斤顶多项式.这个包允许计算这些多项式,也可以计算它们以象征的形式出现。

版本6.0.0中的重大更改

在版本6.0.0中,名称以后缀结尾的每个函数清洁石油产品(千斤顶CPPJackPolCPP公司等)已通过删除此项重命名后缀和函数千斤顶杰克波尔等已由重命名添加后缀R(右)以他们的名义:千斤顶R插孔PolR这些变化的原因是千斤顶更具吸引力千斤顶CPP更明智的做法是指定更具吸引力的使用实现的函数的名称卢比因为他们是高度的效率更高。功能的兴趣千斤顶R插孔PolR等。是贫乏的。

获得多项式

功能杰克波尔ZonalPol公司分区QPol舒尔波尔分别返回Jack多项式、分区多项式、四元数分区多项式和Schur多项式。

每个多项式都由一个正整数给出变量(n个参数)和整数分区(λ参数);Jack多项式还有一个参数阿尔法参数,一个名为千斤顶参数.

要获得Jack多项式杰克波尔,你必须提供杰克参数作为比格有理数或作为字符串表示分数,例如"2/5":

日本石油公司 <-杰克波尔(2λ =c(c)(1),阿尔法 = "2/5")日本石油公司
##98/25*x^3.y+28/5*x^2.y^2+98/25*x.y^3

这是一个q喷雾对象,来自q喷雾包裹.下面是计算此多项式的方法:

evalQ喷雾(日本石油公司,c("2""3/2"))##大理性(bigq):
## [1] 1239/10

也可以将q喷雾多项式的函数评估由Ryacas公司包裹:

贾卡斯 <-as.功能(日本石油公司)

您可以将此函数的变量值作为数字提供或字符串:

贾卡斯(2"3/2")## [1] "1239/10"

您甚至可以将变量名传递给此函数:

贾卡斯("x个""x个")##[1]英寸(336*x^4)/25英寸

如果要将复数替换为变量,请使用表示此数字的字符串,带有表示假想单位:

贾卡斯("2+2*I""2/3+I/4")##[1]“综合体(-158921)/2160101689/2160)”

也可以评估q喷雾某些复数的多项式具有的变量的值evalQ祈祷.你必须把真实的部分和假想部分:

evalQ喷雾(日本石油公司值_re =c(c)("2""2/3"),值_im =c(c)("2""1/4"))##长度为2的Big Rational(“bigq”)对象:
## [1] -158921/2160 101689/2160

多项式的直接求值

如果您只需计算Jack多项式,则无需使用q喷雾多项式:您可以使用函数千斤顶分区ZonalQ地区舒尔,它直接计算多项式;这是比计算q喷雾多项式,然后应用evalQ喷雾.

千斤顶(c("2""3/2"),λ =c(c)(1),阿尔法 = "2/5")##大理性(bigq):
## [1] 1239/10

然而,如果您必须为几个值计算Jack多项式,最好求助于q喷雾多项式的。

斜舒尔多项式

从版本6.0.0开始,该包能够计算出偏差Schur多项式,带函数SkewSchurPol公司.

符号插孔参数

从6.0.0版开始,可以使用系数中的符号Jack参数,这得益于符号Qspray包裹.

(J型 <-JackSymPol公司(2λ =c(c)(1)))##{[2*a^2+4*a+2]}*X^3.Y+{[4*a+4]}*X ^2.Y^2+{[2*a ^2+4*a+2]{*X.Y^3

这是一个符号Qspray对象,来自符号Qspray包裹。

A类符号Qspray对象对应于一个多元多项式,该多项式系数是具有有理系数的多项式的分数。这些多项式分数的变量可以看作是参数。杰克多项式属于这一类:定义,它们的系数是Jack中多项式的分数参数。然而,您可以在上面的输出中看到例如,系数为多项式在Jack参数中():没有分数。事实上,这个事实对任何一个杰克来说都是正确的多项式(适用于任何千斤顶J型-多项式)。这是一个已确定的事实,且不明显(这是Knop(打结)&萨希语公式).

可以使用substitute参数功能:

(J5号机组 <-substitute参数(J型5) )##72*X^3.Y+24*X^2.Y^2+72*X.Y^3
J5号机组 ==杰克波尔(2λ =c(c)(1),阿尔法 = "5")##[1]正确

请注意,您可以更改用于表示变量的字母。默认情况下,Jack参数表示为变量是记为X(X)Y(Y)Z轴如果变量不超过三个,否则,它们表示为X1型X2个,…以下是如何更改这些符号:

显示SymbolicQsprayOption(J型"")<- "阿尔法"显示符号QsrayOption(J型"X(X)")<- "x个"
J型
##{[2*alpha^2+4*alpha+2]}*x1^3.x2+{[4*alpha+4]}*x1^2.x2^2+{[2*alpha^2+4*alpha+2]}*x1.x2^3

如果您想让变量由x个,执行:

显示SymbolicQsprayOption(J型"show单项式")<-显示单项式XYZ(c("x个"""))J型
##{[2*alpha^2+4*alpha+2]}*x^3.y+{[4*alpha+4]}*x^2.y^2+{[2*alpha^2+4*alfa+2]}*x.y^3

Jack多项式的紧表示

Jack多项式在正则基上的表达式可以很长。由于这些多项式是对称的,因此可以得到相当大的通过将多项式写成单项式对称多项式。这就是功能紧凑对称Qspray做:

(J型 <-杰克波尔(λ =c(c)(41),阿尔法 = "2") )##3888*x^4.y^3.z+2592*x^3.y^2.z^2+3888*x^2.y^3+3888*x^3.y ^4.z+4752*x|3.y^3.z ^2+4752*x^3.y^2.z ^3+3888*x ^3.y.z ^4+2592*x ^2.y ^4.z ^2+4752*x^2.y^3.y ^3+3888*x.y^3.z^4紧凑对称Qspray(J型)|>cat()##3888*M[4,3,1]+2592*M[4,2,2]+4752*M[3]

功能紧凑对称Qspray也适用于符号Qspray对象,如带有符号Jack的Jack多项式参数。

很容易找出什么是单项式对称多项式:M[i,j,k]是所有单项式的总和x^p.y^q.z^r年哪里(p,q,r)是的排列(i,j,k).

Jack多项式的“紧表达式”n个变量是不依赖于n个如果n>=总和(λ):

λ <-c(c)(1)阿尔法 <- ""
J4号机组 <-杰克波尔(4λ阿尔法)第9页 <-JackPol公司(9λ阿尔法)紧凑对称Qspray(J4号机组)|>cat()##32*M[3]+16*M[2,2]+28*M[2,1,1]+24*M[1,1,1,1]紧凑对称Qspray(J9号机组)|>猫()##32*M[3]+16*M[2,2]+28*M[2,1,1]+24*M[1,1,1,1]

事实上,当n<总和(λ).

霍尔内部产品

这个q喷雾包提供了计算霍尔内部的函数两个对称多项式的乘积,即HallInnerProduct公司。这是广义霍尔内积,带参数的内积$\阿尔法$.众所周知,带参数的Jack多项式$\阿尔法$带参数的霍尔内积正交$\阿尔法$.让我们试一试:

阿尔法 <- ""
J1号机组 <-杰克波尔(4λ =c(c)(1),阿尔法哪一个 = "P(P)")J2型 <-杰克波尔(4λ =c(c)(22),阿尔法哪一个 = "P(P)")HallInnerProduct公司(J1号机组J2型阿尔法)##大理性(bigq):
## [1] 0HallInnerProduct公司(J1号机组J1号机组阿尔法)##大理性(bigq):
## [1] 135/8HallInner产品(J2型J2型阿尔法)##大理性(bigq):
## [1] 63/5

如果您设置alpha=空在里面HallInnerProduct公司,你把大厅弄进去带符号参数的乘积$\阿尔法$:

HallInner产品(J1号机组J1号机组阿尔法 = 无效的)##3/128*α^4+1/4*α^3+63/128*α^2+81/64*α

这是一个q喷雾对象。霍尔内积总是多项式在里面$\阿尔法$.

也可以获得两个的霍尔内积符号Qspray多项式。以Jack多项式为例符号参数:

J型 <-JackSymPol公司(4λ =c(c)(1),哪一个 = "P(P)")显示SymbolicQsprayOption(J型"")<- "t吨"HallInnerProduct公司(J型J型阿尔法 = 2)##[20*t^4-24*t^3+92*t^2-48*t+104]%//%[t^4+4*t^3+6*t^2+4*t+1]

我们使用t吨显示Jack参数而不显示阿尔法所以在那里Jack参数和Hall参数之间没有混淆产品。

现在,如果我们计算这个的符号霍尔内积会发生什么Jack多项式本身,也就是说,如果我们运行HallInnerProduct(J,J,alpha=NULL)? 让我们看看:

(臀部 <-HallInnerProduct公司(J型J型阿尔法 = 无效的) )##{[24]%//%[4*t^4+16*t^3+24*t^2+16*t1+4]}*α^4+{[9*t^2-6*t+1]%//%[t^4+4*t^3+6*t^2+4*t+1]}*γ^3+{[3*t^4-6*t^3+5*t^2]%//%[t^4+4*t63+6*t+2]}*β^2+{[4*t ^4]%//%[t^4+4*t^3+6*t^2+4*t+1]}*alpha

我们得到Jack多项式本身的Hall内积,其中两个符号参数:Jack参数显示为t吨霍尔产品的参数显示为阿尔法。这是一个符号Qspray对象。

现在,人们可能会对象征性的霍尔内部产品感兴趣当Jack参数和霍尔乘积的参数一致,即设置α=t在中符号Qspray我们命名的多项式臀部。可以将其作为如下所示:

changeVariables(更改变量)(臀部列表(qlone(1)))##[3*t^4+t^3]%//%[t^2+2*t+1]

这简直是一个骗局。这个changeVariables(更改变量)功能允许替换a的变量符号Qspray带新变量的多项式在第二个参数中作为列表给出。这个臀部多项式只有一个变量,阿尔法,它有一个参数,t吨.此参数t吨是的多项式变量喷雾质量比的系数臀部。从技术上讲,这是一个q喷雾对象:这是qlone(1).所以我们假如列表(qlone(1))作为新变量的列表。这对应于设置α=t。的用法changeVariables(更改变量)有点偏斜,因为qlone(1)不是的新变量臀部,这是一个常数。

拉普拉斯-贝尔特拉米算子

只是为了说明千斤顶包装(q喷雾喷雾质量比符号Qspray),让我们检查一下Jack多项式是否是贝尔特拉米操作人员关于齐次对称多项式空间。

Laplace Beltrami公司 <- 功能(q喷雾阿尔法) {n个 <-变量数(q喷雾)衍生产品1 <-重叠(seq_len(n个),功能() {衍生Q喷雾(q喷雾)})衍生产品2 <-重叠(seq_len(n个),功能() {衍生Q喷雾(衍生产品1[[]],)})x个 <-重叠(seq_len(n个),qlone公司)#x_1、x_2。。。,x个n
  #第一学期
  输出1 <- 0升
  对于( 在里面seq_len(n个)) {输出1 <- 输出1 + 阿尔法 * x个[[]]^2 * 衍生产品2[[]]}#第二任期
  输出2 <- 0升
  对于( 在里面序列号(_L)(n个)) {对于(j个 在里面seq_len(n个)) {如果( != j个) {输出2 <- 输出2 + x个[[]]^2 * 衍生产品1[[]]/(x个[[]]- x个[[j个]])}}}#在这个步骤中,“out2”是一个“ratioOfQsprays”对象,因为存在除法
  #按`x[[i]]-x[[j]]`;但实际上它的分母是1,因为
  #简化,然后提取其分子以获得“qspray”对象
  输出2 <-获取分子(输出2)输出1/2 + 输出2}
阿尔法 <- ""
J型 <-杰克波尔(4,c(22),阿尔法)共线Q喷雾(q喷雾1 =Laplace Beltrami公司(J型阿尔法),q喷雾2 = J型)##[1]正确