To calculate the rate it is necessary to decide on the final generation . The Bendings living today come from 5 generations, not only the grandparents, parents, children, group, but also because of the birth date spread between generations, a generationon either side. A one-name study only includes the children of fathers, so that it is the male reproductive rate which is calculated. The progenitor of the main BENDING line is Robert of Payhembury, born c1530, and to 1987 he had 1448 descendants, in 15 generations in the male line, that is descendants born with the surname BENDING. As the 15th and probably 14th generations are not fully recorded in the files, for this exercise the 12th generation after the progenitor is taken. The number of descendants up to and including the 12th generation is 1186. We now need to find the average family size which will arrive at that figure after 12 generations. One approach is to use an iterative program which will gradually approach the answer within an acceptable degree of accuracy; for our purpose, 1186 plus or minus 1. |
The average family size must be less than 4, (4 means a doubling of males at each generation and 2 to the 12th power equals 4096); and more than 2, which gives 2 for the 12th generation. We start the program with a family size of 2, which is known to be low, and increment by 0.1 (n) until the target is exceeded, the increment n is then halved and used as a decrement until the target is undershot, n is then used as an increment so that the target is again exceeded and n halved. By this method the target is gradually approached until a figure within limits is reached. In this example there are 23 iterations. The program essentially consists of two loops, one inside the other. The inner loop takes the given family size and applies it to the 12 generations, and comes out of the loop into the outer loop with the calculated number of descendants. This is compared with the target (1185-1187) and if not within the limits, the family size is adjusted and the inner loop re-entered. |

descendants=1186 | ||||

counter=0 | ;counts number of generations | |||

generations=12 | ||||

familysize=2 | ;estimated no. of children | |||

n=1 | ;adjustment to familysize | |||

x=1 | ;counts number of iterations | |||

calcdescend=0 | ||||

totaldesc=0 | ||||

; calculation of descendants in male line | ||||

While calcdescend<(descendants-1) or calcdescend>(descendants+1) | ||||

allfamily=0 | ||||

malefamily=1 | ||||

allfamily=malefamily*familysize | ||||

calcdescend=allfamily | ||||

counter=1 | ||||

malefamily=familysize*.5 | ||||

While counter<(generations) | ||||

allfamily=malefamily*familysize | ||||

calcdescend=calcdescend+allfamily | ||||

malefamily=allfamily*0.5 | ||||

counter=counter+1 | ||||

endwhile | ||||

if calcdescend>(descendants) then | ||||

n=n*0.5 | ||||

familysize=familysize-n | ||||

endif | ||||

if calcdescend<(descendants) then | ||||

familysize=familysize+n | ||||

endif | ||||

x=x+1 | ;to guard against | |||

if x>(100) then | ;endless loop, finishes | |||

msgInfo("safeguard x",x) | ;calculation after 100 | |||

calcdescend=descendants | ;iterations | |||

endif | ||||

endwhile | ||||

msgInfo(familysize, calcdescend) | ||||

calculation of total descendants | ||||

counter=0 | ||||

allfamily=1 | ||||

While counter<(generations) | ||||

allfamily=allfamily*familysize | ||||

roraldesc=totaldesc+allfamily | ||||

counter=counter+1 | ||||

endwhile | ||||

msgInfo("All descendants", totaldesc) | ||||

endMethod |

+ If the program does not find a solution it would run indefinitely, the safeguard restricts the number of iterations to 100, if a solution is not found within this time the program will stop. |

to next page