The formula I used was
TAS and windspeed from three (GPS) groundspeeds.
Determine your groundspeed on three headings that differ by 120 degrees (eg 40, 160 and 280 degrees), call these v1, v2 and v3
Let
vms = (v1^2 + v2^2 + v3^2)/3
a1= v1^2/vms -1
a2= v2^2/vms -1
a3= v3^2/vms -1
mu= (a1^2 + a2^2 + a3^2)/6
Let bp and bm be the roots of the quadratic b^2 -b + mu =0
ie:
bp= 1/2 +sqrt(1/4-mu)
bm= mu/bp
The TAS and windspeed are then given by sqrt(vms*bp) and sqrt(vms*bm) provided that the TAS exceeds the windspeed. If this is not the case, the roots are exchanged.
I flew the three headings at a constant 140kt IAS, at 4200ft, 1024QNH, +10C OAT. The 3 ground speeds were 153, 140, 147kt.
The calculation yielded 146kt and that is TAS. Correcting this back to IAS for the pressure altitude and OAT (using the Jepp CR-5 circular calculator) gives about 142kt IAS.
Furthermore, it is obvious that for low wind speeds (i.e. not significant relative to TAS) the above formula reduces to
TAS = (V1+V2+V3)/3
i.e. the average of the three speeds, and this was indeed the case yesterday, with winds aloft being somewhere around 10kt. Calculating that gives 146.6kt TAS which is v. close.
I am not doubting the formula; it is obviously right and I have two GPSs telling me the GS: a KLN94 and a G496.
What I do query is the conventional method of ASI calibration which uses the "box" with a static pressure generator inside it and which obviously assumes that all pitot tubes have the same properties.