Author: Eelco de Groot
Date: 06:57:34 04/21/05
Go up one level in this thread
I changed the Rtdiff routine so that it should now converge faster, using not a slope of fixed 700 everytime but making use of the fact that I can calculate the slope in Performance vs. Ratingdifference when assuming the normal distribution. I believe this is similar to Newton's method, for finding the roots of a graph or function numerically? But here I actually now the precise slope. But if Hastings approximation is just not good enough or I have forgotten another minus sign....it will of course not work... So I'll try to put this into an actual program. I have never made macro's for Excel yet, I will certainly try that now that you showed me how, Odd Gunnar! That is probably the easiest thing to do. These are the new routines, until further notice...: FUNCTION phi(x:REAL):REAL; CONST p=0.2316419; c1=0.31938153; c2=-0.356563782; c3=1.78147937; c4=-1.821255978; c5=1.330274429; VAR t,sndf:REAL; BEGIN sndf:=EXP(-SQR(x)/2)/SQRT(2*PI); t:=1/(p*x+1); phi:=-(((((c5*t+c4)*t+c3)*t+c2)*t+c1)*t*sndf)+1; END; FUNCTION Rtdiff(Performance:REAL):REAL; CONST tol=0.0001; sdev=200*SQRT(2); VAR delta,slope:REAL; BEGIN slope:=708; Rtdiff:=(Performance-0.50)*slope; delta:=1 WHILE delta >= tol DO BEGIN Iteration:=phi(Rtdiff/sdev); delta:=Performance-Iteration; slope:=400*SQRT(PI)*EXP(SQR(Rtdiff/sdev)/2); Rtdiff:=Rtdiff+(delta*slope); END; END; Regards, Eelco On April 21, 2005 at 06:14:05, Eelco de Groot wrote: >Hi Odd Gunnar, > >It is extremely fascinating stuff! Thanks for the graphs. Wonderful! > >A bit embarrassing I can't yet see from the head where my new routine exactly >goes wrong. >Didn't yet have time to check myself. Turbo Pascal does not work on this >computer. I can try the old 386, but Turbo pascal does not have such great >accuracy anyway. First I will try to put it in TI-basic. > >You were absolutely right about the minus sign. That is equivalent to putting in >phi = -(((((c5 * t + c4) * t + c3) * t + c2) * t + c1) * t * sndf)+1 >That is how the routine should have been... >Since taking -Rtdiff gives the complementary surface under the normal curve that >amounts to the same thing! > >The "groot" curve does follow the normal curve right up to about 0.9, so maybe >tolerance factor is to blame. Tol can be a smaller number of course. More likely >it simply does not converge at numbers close to one or zero. > > Eelco
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.