Digits:=20; calcam:=proc(lambda) local r; r:=((1-lambda/6)*(1-(2*lambda)/5))/((1-lambda/5)*(1-lambda/2)); return(evalf(r,20)); end; calcbm:=proc(startlambda,nseqep,tol) local newlambda,seqep,b,i,lastbm; seqep:=nseqep; i:=1; lastbm:=-10000; #b:=calcam(startlambda); b:=1; newlambda:=evalf(startlambda,20); if startlambda=6 then seqep:=[1,op(seqep)]; end if; while abs(lastbm-b)>tol do lastbm:=b; if(i<=nops(seqep)) then newlambda:=(5+seqep[i]*sqrt(25-4*newlambda))/2; else newlambda:=(5-sqrt(25-4*newlambda))/2; end if; b:=b*calcam(newlambda); i:=i+1; end do; return(b); end;