solve the system of generating function equations associated with an attribute grammar - Maple Help

Online Help

All Products    Maple    MapleSim


Home : Support : Online Help : Mathematics : Discrete Mathematics : Combinatorics : Combinatorial Structures : combstruct/agfmomentsolve

combstruct[agfmomentsolve] - solve the system of generating function equations associated with an attribute grammar

Calling Sequence

agfmomentsolve(eqns, num, neweqns)

Parameters

eqns

-

set of multivariate generating function equations

num

-

number of times to differentiate; non-negative integer

neweqns

-

(optional) set of equations that Maple attempts to solve

Description

• 

The agfmomentsolve function accepts a set of multivariate generating functions. It attempts to solve the system of generating functions where the equations are differentiated num times with respect to each variable aside from size. It then evaluates the equations  with each nonsize variable set to 1.

  

The functions are returned as univariate functions.  Thus, it is important that the first variable marks size. The agfmomentsolve function is useful for finding averages and higher moments.

• 

The modified equations are returned by using the third argument, neweqns. If it is specified, it is assigned to the system of equations.

  

If the solving computation is intensive, you can interrupt it and recover the equations. This allows you to intervene with some manual manipulation or specialized solving methods.

• 

The agfmomentsolve function relies on solutions obtained by agfmomentsolve(eqns, num-j) where j=1..num. Thus, if these cannot be solved, fail is returned.

• 

For information on how to write combstruct grammar specifications, see combstruct and combstruct[specification].

Examples

withcombstruct:

First, obtain a system of equations by using gfeqns or agfeqns.

The following two examples use the variable u to mark the number of internal nodes in a nonplane tree.

eqns0:=agfeqnsT=ProdZ,SetT,hT=Prod0,SethT+1,labeled,z,u,h

eqns0:=Tz,u=zⅇTz,uu,Zz,u=zu

(1)

eqns1:=gfeqnsT=ProdZ,ProdE,SetT,E=Ε,labeled,z,u,E

eqns1:=Ez,u=u,Tz,u=zⅇTz,uu,Zz,u=z

(2)

Given the equations, it is possible to solve the generating function for the number of trees. This can be obtained from the univariate system which is obtained from the multivariate system with u set to 1. Further, cumulative generating functions for the number of internal nodes in a binary tree is determined by differentiating the multivariate generating function with respect to u, and setting this variable to 1. That is, the value of the system that agfmomentsolve(eqns, 1) attempts to solve.

agfmomentsolveeqns0,0

Tz=LambertWz,Zz=z

(3)

agfmomentsolveeqns0,1,new

T1z=ⅇLambertWzzⅇLambertWz1,T2z=zⅇLambertWzzⅇLambertWz1,Z1z=1,Z2z=z

(4)

new

T1z=ⅇLambertWz+zT1zⅇLambertWz,T2z=zT2zⅇLambertWz+zⅇLambertWz,Z1z=1,Z2z=z

(5)

The coefficient of zn of Tz, coeffTz,z,n, is the number of trees with n nodes, and coeffT2z,z,n is the total sum of all trees with n nodes for the number of internal nodes. The average number of internal nodes for a tree on n nodes is coeffT2z,z,ncoeffTz,z,n.

sol:=agfmomentsolveeqns0,2:

subssol,T2,2z

ⅇLambertWz2z2zⅇLambertWz2ⅇLambertWz3z33ⅇLambertWz2z2+3zⅇLambertWz1

(6)

This agfmomentsolve function yields information that can be used to compute the variance.

See Also

combstruct, combstruct[agfeqns], combstruct[gfsolve], combstruct[specification]


Download Help Document

Was this information helpful?



Please add your Comment (Optional)
E-mail Address (Optional)
What is ? This question helps us to combat spam