[R] Simplify formula for iterative programming

From: Stefaan Lhermitte <stefaan.lhermitte_at_biw.kuleuven.be>
Date: Fri 03 Jun 2005 - 20:16:28 EST

Dear R-ians,

I am looking for the simplification of a formula to improve the calculation speed of my program. Therefore I want to simplify the following formula:

H = Si (Sj ( sqrt [ (Ai - Aj) + (Bi - Bj) ] ) )

A, B = two vectors (with numerical data) of length n sqrt = square root

Si = summation over i  (= 0 to n)
Sj = summation over j (= 0 to n)
Ai = element of A with index i
Aj = element of A with index j
Bi = element of B with index i
Bj = element of B with index j

n is not fixed, but it changes with every run for my program. Therefore for I am looking for a simplication of h in order to calculate it when my A and B get extendend by 1 element (n = n + 1).

I know a computional simplified formula exists for the standard deviation (sd) that is much easier in iterative programming. Therefore I wondered I anybody knew about analog simplifications to simplify H:

sd = sqrt [ ( Si (Xi - mean(X) ) ) /n ] -> simplified computation -> sqrt [ (n * Si( X ) - ( Si( X ) ) )/ n ]

This simplied formula is much easier in iterative programming, since I don't have to keep every element of X.
E.g.: I have a vector X[1:10] and I already have caculated Si( X[1:10] ) (I will call this A) and Si( X ) (I will call this B). When X gets extendend by 1 element (eg. X[11]) it easy fairly simple to calculate sd(X[1:11]) without having to reuse the elements of X[1:10]. I just have to calculate:

sd = sqrt [ (n * (A + X[11]) - (A + X[11]) ) / n ]

This is fairly easy in an iterative process, since before we continue with the next step we set:
A = (A + X[11])
B = (B + X[11])

Can anybody help me to do something comparable for H? Any other help to calculate H easily in an iterative process is also welcome!

Kind regards,

R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Jun 03 20:39:59 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:32:22 EST