_{1}

^{*}

In 1686, Newton discovered the laws of gravitation [1] and predicted the universal gravitational constant *H _{0}* (which evolve since its reverse gives the apparent age of the universe), we deduce that G is likely not truly constant. It’s value probably slowly varies in time and space. However, at our location in the universe and for a relatively short period, this parameter may seem constant.

The universal gravitational constant G (also called Newton’s gravitational constant) has a special character because it is considered to be one of the 3 most fundamental constants in physics since no model allows its value to be deduced from other known constants. Its value is used in Newton’s equation [

In Newton’s equation of gravity [_{1} and m_{2}, separated by a distance r, depends on G that acts as a coupling coefficient.

F = − G m 1 m 2 r 2 (1)

In Einstein’s equation of general relativity [_{μv} is the Ricci curvature tensor, R is the scalar curvature, g_{μv} is the metric tensor, L is the cosmological constant, G is Newton’s gravitational constant, c is the speed of light in a vacuum, and T_{μv} is the stress-energy tensor.

R μ v − 1 2 R g μ v + Λ g μ v = 8 π G c 4 T μ v (2)

Several attempts to measure G have been made over time. Even if the recent measurements show small margins of error, they do not always overlap. As early as 1995, physicists suggested that certain measures of G may be tainted with systematic errors [

With a new cosmological model, G is obtained (see Equation (31) further) as a function of the speed of light in a vacuum c, the fine-structure constant α, and the parameters of the electron (mass m_{e} and classical radius r_{e}) [

To validate the theoretical value of G found in the past, we wish, in a first step, to list the results of all the recent experiments aimed at measuring it. Using mathematical tools and software, the data will be processed to determine an estimate of G. It will be shown that there is a slight difference between the CODATA (Committee on Data for Science and Technology) value and the theoretical value of G, and we will explain why.

We will enumerate, in a second step, 33 different equations giving G. It is an exercise which is useful, among other things, to get certain equations which overcome the difficulties to do experimental measurements as well as to show that G is intimately linked to the other parameters of the universe.

In the third step, we will show that G is not constant and why it varies according to time as well as to the location in the universe where it is measured.

We use the compact form of notation to display tolerances (i.e. 2.736(17) K means 2.736 ± 0.017 K). To compare the results of our new equations with the articles published in 2019, we will use the CODATA 2014 [

Speed of light in a vacuum c ≈ 299792458 m ⋅ s − 1

Universal gravitational constant G ≈ 6.67408 ( 31 ) × 10 − 11 m 3 ⋅ kg − 1 ⋅ s − 2

Electron rest mass m e ≈ 9.10938 356 ( 11 ) × 10 − 31 kg

Classical electron radius r e ≈ 2.817940322 7 ( 19 ) × 10 − 15 m

Electron charge q e ≈ − 1.602176 62 0 8 ( 98 ) × 1 0 − 19 C

Planck length L p ≈ 1.616229 ( 38 ) × 10 − 35 m

Planck time t p ≈ 5.3911 6 ( 13 ) × 10 − 44 s

Planck mass m p ≈ 2.176470 ( 51 ) × 10 − 8 kg

Planck constant h ≈ 6.626070040 ( 81 ) × 10 − 34 J ⋅ s

Fine-structure constant α ≈ 7.2973525664 ( 17 ) × 10 − 3

Boltzmann constant k b ≈ 1.3806485 2 ( 79 ) × 10 − 23 J ⋅ K − 1

Rydbergconstant R ∞ ≈ 10973731.568 5 0 8 ( 65 ) m − 1

Our theory is based on a 2019 paper [

The universe is made of two 4-D expanding spheres, one imbricated in the other. The smallest one is the “material universe” and the largest is the “luminous universe”. At the big bang, there was only one sphere. After about 361,000 years, a lower density of the universe allowed the movements of the electrons. The universe became transparent and light appeared and began to travel through space, creating the sphere of the “luminous universe”. However, the matter cannot travel as fast as light and it created a smaller sphere, the “material universe” that is imbricated in the “luminous universe”.

Einstein found that the speed of light is slower near massive objects [_{L} as a function of c and a local refractive index n_{0}. The value of n_{0} is a function of the Newtonian gravitational potential Φ which is itself a function of G and the distance r from the center of a mass m.

v L ( r ) = c n 0 where n 0 = 1 − 2 Φ / c 2 1 + 2 Φ / c 2 and Φ = − G m r ≤ 0 (3)

For a distance r from the center of mass m, the speed of light c is reduced by the refractive index n_{0} caused by a gravitational field of potential Φ, which gives a modified speed of light v_{L}(r). Locally, in space and time, the speed of light seems constant and equal to c. However, Hubble found that the universe is expanding. Its density is decreasing, the refractive index of the vacuum is decreasing and all this causes light to be imperceptibly accelerated.

In Equation (3), c is the local speed limit for light in a vacuum. Admitting that light may slowly accelerate in a context of an expanding universe, it will eventually tend towards an asymptotical speed limit called k that is affected by a local refractive index n. With Equation (3) we build the analog Equation (4). We are currently at a distance r_{u} from the center of the apparent mass m_{u} of the universe. The actual speed of light c is the result of Equation (4).

c = k n where n = 1 − 2 Θ / k 2 1 + 2 Θ / k 2 and Θ = − G m u r u ≤ 0 (4)

The apparent radius of the curvature of the luminous universe is R_{u}. It is “apparent” because the equation of R_{u} assumes a constant speed of light c over time, for a time equal to the apparent age of the universe. However, in our model, the speed of light is not constant over time. It is c in the present moment, but since the universe is expanding, its value was lower in the past.

According to Carvalho [_{u} is given by Equation (5).

m u = c 3 G ⋅ H 0 (5)

Hubble constant H_{0} represents the relative rate of expansion in km·s^{−1}·MParsec^{−1} of the visible universe [_{m} with respect to distance r. Matter moves locally at a rate β times slower than the speed of light c by moving away radially from the center of mass of the universe. Locally, at our location in the universe, H_{0} is evaluated at a distance r = r_{u} (which represents a fraction β of R_{u}). The value of β will be calculated further at Equation (11).

H 0 = d v m d r | r = r u = β c r u = β c β R u ⇒ R u = c H 0 (6)

The apparent radius of curvature R_{u} of the universe [_{0}. For now, we are at a distance r_{u} from the center of mass m_{u} of the universe.

r u = β R u = β c H 0 (7)

For a distance r_{u}, our local universe parcel travels at speed v_{m}.

v m = β k n where n = 1 − 2 Θ / k 2 1 + 2 Θ / k 2 and Θ = − G m u r u (8)

The measurement of H_{0} is made by observing the global displacement of galaxies at our location r_{u}. Each galaxy has its own movement. Due to the expansion of the universe, the galaxies are moving away from each other. The value of H_{0} represents the derivative of the speed of the material universe v_{m} with respect to the element of distance dr, evaluated at r = r_{u}.

H 0 = d v m d r | r = r u = k β y r u ( 1 ( 1 + y ) 1 − y 2 ) where y = 2 G m u k 2 r u (9)

Solving Equations (4), (6), (7), and (9) leads to Equations (10) to (14). For the detailed calculation, see the Annex in reference [

k = c 2 + 5 ≈ 6.17 × 10 8 m ⋅ s − 1 (10)

β = 3 − 5 ≈ 0.764 (11)

R u ≈ 1.28 × 10 26 m (12)

r u ≈ 9.80 × 10 25 m (13)

m u ≈ 1.73 × 10 53 kg (14)

The asymptotic value for the speed of light in a vacuum is represented by k when the apparent radius of curvature R_{u} of the luminous universe tends towards infinity. The ratio between the speed of expansion of the material universe and the speed of expansion of the luminous universe (which is the speed of light) is the geometric value β. It can also represent the ratio of the apparent radius of curvature r_{u} of the material universe (evaluated at our location in the universe with respect to the center of mass of the universe) and the apparent radius of curvature R_{u} of the luminous universe. The value of m_{u} represents the apparent mass of the universe. The value of β is unique to our cosmological model, but it is essential for making multiple connections between physics’ constants. It allows making several links between the infinitely large and the infinitely small in Dirac’s large numbers hypothesis [

The precisions of m_{u}, r_{u}, and R_{u} are directly dependent on the precision of H_{0}. According to different sources, H_{0} is between 67.8(9) [^{−1}MParsec^{−1} [

As the average temperature T of the CMB (Cosmological Microwave Background) can be precisely measured, an exploitable link may be made between T and H_{0}. It suffices to theoretically calculate T as a function of H_{0}. Its accuracy will now depend on G. For more details, please, see reference [

We obtain Equation (15) which gives the average CMB temperature T.

T = β k b ( 15 α 2 h 3 c 5 H 0 2 8 π 6 G ) 1 / 4 (15)

We force Equation (15) to equal T ≈ 2.736(17) K (from Cobra Probe [_{0} similar to Salvatelli ( H 0 ≈ 72.1 − 2.3 + 3.2 km ⋅ s − 1 ⋅ MParsec − 1 [

H 0 ( T ) = π 3 T 2 k b 2 β 2 α 8 G 15 c 5 h 3 ≈ 72.06 ( 90 ) km ⋅ s − 1 ⋅ MParsec − 1 (16)

Dirac found that with ratios of quantities having the same dimensions, we get large numbers separated into a few distinct orders of magnitude. However, he could not calculate them precisely [_{u} wavelength) [_{ph} associated with a 2πR_{u} wavelength photon by making its corpuscular and wave energy equal.

m p h c 2 = h c 2 π R u ⇒ m p h = h 2 π R u c ≈ 2.74 × 10 − 69 kg (17)

The large number N is obtained by dividing m_{u} (from equation (5)) by the mass m_{ph} associated with photons of 2πR_{u} wavelength (Equation (17)).

N = m u m p h = 2 π c 5 h G H 0 2 ≈ 6.3 × 10 121 (18)

If we try to make a precise calculation of N by using the Equations (5), (7), (16), and (17), we get Equation (19) which is mainly dependent on T. We evaluate the result by using the CODATA 2014 [

N = 15 h 2 α 2 β 4 c 10 4 π 5 G 2 k b 4 T 4 ≈ 6.31 ( 15 ) × 10 121 (19)

Assuming that α can be used as a scale factor applied a certain number of times, we postulate Equation (20). For now, it is impossible to get this equation from other equations of the standard physics.

POSTULATE1: N = 1 / α 57 ≈ 6.303419702 ( 84 ) × 10 121 (20)

In the following equations, Planck temperature is about T_{p} ≈ 1.42 × 10^{32} K. This is the highest temperature that can be reached in the universe if we condensate the mass m_{u} in a point-like sphere of radius equal to Planck length L_{p}. We also think this was the initial temperature of the universe at the Big Bang. The value of q_{p} is the Planck charge which is about q_{p} ≈ 1.88 × 10^{−18} C.

“Large” numbers are of type N exponent a fractional number, such as N^{1/2}, N^{1/3}, N^{1/4}, …, N^{1/57} or N^{2/3}, N^{3/4}, etc. These are obtained in different ways by using different parameters of the universe [

N 1 / 2 = m p m p h = R u L p = 1 t p H 0 = 2 π T p k b h H 0 = − 1 q e 4 π m u R u α μ 0 ≈ 7.94 × 10 60 (21)

N 1 / 3 = m u r e α m e R u β = m e β m p h α = R u β r e = α q e 2 4 π ε 0 G β m e 2 ≈ 3.99 × 10 40 (22)

N 2 / 3 = m u α m e β 1 / 2 = R u 2 β r e 2 = m p 4 α 4 m e 4 β 2 = m e 2 β m p h 2 α 2 ≈ 1.58 × 10 81 (23)

N 1 / 4 = T p T ( 15 β 4 α 2 π 3 ) 1 / 4 = k b T m p h c 2 ( π 3 15 β 4 α 2 ) 1 / 4 ≈ 2.82 × 10 30 (24)

N 1 / 6 = r e L p β = m p α m e β = α 3 4 π R ∞ L p β = 2 π r e k b T p h c β ≈ 1.99 × 10 20 (25)

N 1 / 16 = ( 4 π c R ∞ β H 0 ) 57 / 256 = ( β T p T ) 1 / 4 ( 15 α 2 π 3 ) 1 / 16 ≈ 4.10 × 10 7 (26)

N 1 / 19 = 1 4 π R ∞ r e = ( β m e 2 m p h 2 ) 1 / 12 = 16 π 2 β L p R u R ∞ 2 α ≈ 2.57 × 10 6 (27)

N 1 / 57 = q p 2 q e 2 = ( m p 2 m e 2 β ) 1 / 21 = ( q e 2 4 π β ε 0 G m e 2 ) 1 / 20 = 1 α ≈ 137 (28)

To precisely calculate G, we need an equation that is independent of H_{0} and T since we do not know them with sufficient precision. Most of the time G intervene in the calculations of gravitational energy and gravitational force.

We will not show all details (refer to [_{e} between two electrons separated by a distance equal to the classical electron radius r_{e}. The electrical energy E_{e} is independent of the distance since we get E_{e} = m_{e}c^{2}. We make another experiment to evaluate the gravitational energy for the same conditions and we find E g = G m e 2 / r e . If we make these experiments at the periphery of the luminous universe, we get an electrical energy E ′ e = E e and a gravitational energy E ′ g = E g / β . Making the ratio between E ′ e and E ′ g we get Equation (29).

E ′ e E ′ g = m e c 2 ( G m e 2 β r e ) = c 2 r e G m e β ≈ 5.45 × 10 42 (29)

As in Equation (20), we found that the fine-structure constant α plays a role in determining orders of magnitude. By an adjustment of the exponent of the fine-structure constant α, we obtain a result identical to that of Equation (29).

1 α 20 ≈ 5.45 × 10 42 (30)

We conclude that Equations (29) and (30) are equal. By isolating G, we obtain an equation that we elevate to the rank of postulate #2. This equation cannot be deduced from any other known equation of current physics.

POSTULATE#2: G = c 2 r e α 20 m e β ≈ 6.673229809 ( 86 ) × 10 − 11 m 3 ⋅ kg − 1 ⋅ s − 2 where β = 3 − 5 (31)

This result agrees with the Taylor-Parker-Langenberg [

We associate the energy of the electron mass m_{e} with the wave energy.

m e c 2 = h c α 2 π r e (32)

With Equations (20), (31), and (32), we obtain Equation (33).

H 0 = c α 19 β r e ≈ 72.09548580 ( 32 ) km ⋅ s − 1 ⋅ MParsec − 1 (33)

The result is similar to Equation (16) obtained with the Cobra probe [

With Equations (16), (33), and (32), we get the CMB temperature T.

T = m e c 2 k b ( 15 β 6 α 17 π 3 ) 1 / 4 ≈ 2.7367958 ( 16 ) K (34)

It is in agreement with the value Cobra probe [

With a cosmological model and 2 postulates, we found theoretical equations that give G, H_{0}, T, and N. With standard equations of physics, other equations may be found, such as Equations (21) to (28).

In 1798, G was measured by Cavendish using a torsion balance [

The main purpose of this document is to show that the calculated theoretical value [_{e} and mass m_{e}), the fine-structure constant α, the speed of light c as well as a constant β from a cosmological model.

The value of G in Equation (31) becomes interesting for scientists if it can be verified by concrete measurements. A theoretical value obtained as a function of other more precise parameters makes it possible to overcome the difficulties inherent in the measurements of G. Despite all the efforts made, even the recent values of the measurements of G do not all agree with each other and have relatively high margins of error. So, we have to find a trick.

In

Source | Identification | Method | Value G/10^{−11} m^{3}s^{−2}kg^{−1} | ppm ** | Ref. |
---|---|---|---|---|---|

1-Qing Li et al. | Q-AAF-2018 | AAF | 6.674484(78) | 11.61 | [ |

2-Qing Li et al. | Q-TS-2018 | TS | 6.674184(78) | 11.64 | [ |

3-Tiesinga E et al. | CODATA 2018 | STAT | 6.67430(15) | 22 | [ |

4-Newman et al. | N-TB-2014 | TB | 6.67435(13) | 19 | [ |

5-Rosi et al | R-AI-2014 | AI | 6.67191(99) | 150 | [ |

6-Quinn et al. | Q-FDEC-2014 | FDEC | 6.67554(16) | 24 | [ |

7-Mohr PJ et al. | CODATA 2014 | STAT | 6.67408(31) | 46 | [ |

8-Mohr PJ et al. | CODATA 2010 | STAT | 6.67384(80) | 120 | [ |

9-Parks & Faller | PF-FPC-2010 | FPC | 6.67234(14) | 21 | [ |

10-Tu et al. | T-TS-2010 | TS | 6.67349(18) | 27 | [ |

11-Luo et al. | L-TS-2009 | TS | 6.67349(18) | 27 | [ |

12-Mohr PJ et al. | CODATA 2006 | STAT | 6.67428(67) | 100 | [ |

13-Schlamminger et al. | S-BB-2006 | BB | 6.67425(12) | 19 | [ |

14-Hu et al. | H-TS-2005 | TS | 6.67222(87) | 130 | [ |

15-Armstrong et al. | A-EC-2003 | EC | 6.67387(27) | 40 | [ |

16-Mohr PJ et al. | CODATA 2002 | STAT | 6.6742(10) | 150 | [ |

17-Kleinevoβ | K-FPC-2002 | FPC | 6.67422(98) | 150 | [ |

18-Quinn et al. | Q-FDEC-2001 | FDEC | 6.67559(27) | 40 | [ |

19-Gundlach & Merkowitz | GM-AAF-2000 | AAF | 6.674215(92) | 14 | [ |

20-Fitzgerald & Armstrong | FA-TB-1999a | TB | 6.6742(7) | 105 | [ |

21-Fitzgerald & Armstrong | FA-TB-1999b | TB | 6.6746(10) | 150 | [ |

22-Mohr PJ et al. | CODATA 1998 | STAT | 6.673(10) | 1499 | [ |

23-Bagley & Luther | BL-TS-1997 | TS | 6.67398(70) | 100 | [ |

24-Karagioz & Izmailov | KI-TS-1996 | TS | 6.6729(5) | 75 | [ |

25-Standish. | ST-STAT-1995 | STAT | 6.67259(30) | 45 | [ |

26-Cohen ER et al. | CODATA 1986 | STAT | 6.67259(85) | 127 | [ |

27-Luther & Towler | LT-TS-1982 | TS | 6.6726(5) | 75 | [ |

28-Sagitov | S-TS-1979 | TS | 6.674485(800) * | 120 | [ |

29-Cohen ER et al. | CODATA 1973 | STAT | 6.6720(41) | 615 | [ |

30-Pontiskis et al. | P-TS-1972 | TS | 6.6714(6) | 90 | [ |

31-Taylor BN et al. | CODATA 1969 | STAT | 6.6732(31) | 465 | [ |

32-Heyl PR | H-TB-1930 | TB | 6.670(5) | 750 | [ |

List of Methods Used: STAT = Statistical results from various sources; TS = Time-of-swing; AAF = Angular acceleration feedback; BB = Beam balance; FDEC = Free deflection and electrostatic compensation (Servo); FPC = Fabry–Perot cavity with pendulums; AI = Atom interferometry; EC = Electrostatic compensation; TB = Torsion balance; *The values of 6.745 ± 0.005 × 10^{−13} m^{3}kg^{−1}s^{−2} (should be 10^{−11}) of the abstract and 6.745 ± 0.0008×10^{−11} m^{3}kg^{−1}s^{−2} from the Sagitov’s text are erroneous [

To reduce the uncertainties, results from

We are well aware that in

If all the environmental variables had always been taken into account, the various experiments would probably all have led to the same result. Without doubting the incredible efforts that scientific teams have made to obtain the best possible results by reducing the different sources of error, it can be seen that several margins of error from different results do not overlap. This is an embarrassing situation which shows that some people may be wrong and some disturbing parameters are not always taken into account. Since the results come from completely different experiments, it is possible to believe that the parameters that were not taken into account are probably different from one experiment to another.

Of course, we may reduce the measurement error by averaging all the results, hoping that the systematic errors made in positive are equally compensated by systematic errors made in negative. By averaging the 32 data in _{m}:

G m ≈ 6.673512 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 (35)

The median G_{md} value is:

G m d ≈ 6.673925 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 (36)

On a very large number of samples, the median is assumed to equal the mean. Here, the difference is sufficiently marked between the mean and the median for us to suspect that the spreading of the data is not simply Gaussian. Consequently, we consider that despite the precisions displayed for certain values, it seems that these are tainted with errors. When thoroughness and precision are the order of the day, there are multiple sources of error, and some systematic causes can sneakily intrude on experiments and be overlooked. Some of these sources have been eliminated over time. For example, G measurements were once done in the air while they are now done in a vacuum to eliminate the effects of air agitation.

Mathematical tools do not always highlight the possibility that certain types of systematic errors can be committed, sometimes in positive, sometimes in negative. An attempt to highlight the systematic errors can be made by scanning the abscissa of

From a mathematic point of view, we have no control over where the node will be placed by the software. They are supposed to be placed in such a way it reduces the sum of squares of errors. Also, the shape of the spline is like a flexible ruler that we force to pass by 5 nodes chosen by the software. It is supposed to reconstruct a curve that minimizes the tension in the ruler.

This graph highlights that there are two predominant groups of data. There may be more, but visually, there seem to be two main ones.

The first group (G_{a}) seems to have fewer followers. The latest CODATA values (2014 and 2018) seem to be in the second group (G_{b}). However, 32 different experiments do not represent a very large sample. Having more data orbiting around the second group does not necessarily mean that the average value of the first group is not as valid, but it moves the mean value of G towards the second group G_{b}.

We make the hypothesis that the second group G_{b} is maybe biased by the fact that there are important publications of the G value every 4 years in the CODATA since its creation in 1966. Many measurement trials may have been abandoned or remade till experimenters get results that yield in the same ball game than the “official” values posted in the different versions of the CODATA. Since the same unknown systematic source of error may apply in + or in – on data, it seems reasonable to us to give as much importance to G_{a} and G_{b}.

A data set made of 32 experiments is not huge. We think that considering a larger unbiased sample, we could very well have as much data around the first group as around the second group. Of course, we can assume that rare experiences do to make any systematic error and their value would lie between the two predominant groups.

The graph at the top of

Cubic splines have interesting properties. They are made of a set of control points that are called “nodes”. There can be as many nodes as desired as long as there are at least three nodes to get two segments. Between two nodes, the curve is made of 3-degree polynomial segments that allow flexible and polyvalent twists. The most complex and continuous curves may be approximated with splines if they are decomposed in enough segments of small size. To ensure the smoothness of the curves at each node, adjacent segments have the same first and second-degree derivatives. In

We will force the cubic splines curve to reveal only two bumps, whatever their heights and wherever they are. To achieve this goal, we set only 5 nodes (2 for the ends, 2 for the peaks, and one for the hallow between peaks). The position of the nodes will be free to move to reduce the least-square error.

To eliminate any subjectivity on the position of the nodes, we rely on a curve generated automatically by the software. Such software in Delphi 3.0 (advance Pascal) is available at Annex A.

In this software, a list is made from the 32 values of G and their corresponding tolerances in _{i} corresponding to the number of crossing points with the error ranges. To determine the values n_{i}, an imaginary line perpendicular to the abscissa is drawn for all the 64 values of G kept. The values n_{i} correspond to the numbers of crossings with error ranges in

The nodes on the cubic spline curve can have any ± real values. Negative values may be required to construct the cubic splines curve at its ends. They have no converse in the physical world. However, when a value is negative, the probabilities of crossing an error range are almost zero.

By iterating to find the best positions for the 5 nodes, the software will reduce the sum S_{e} of the least-squares of the errors between the values n_{i} and the values from the cubic splines curve.

When it seems no longer possible to iterate, the value of G is obtained by finding the ideal value for the measurement of G which is right between G_{a} and G_{b} since we assumed that the systematic error is the same in + or in -. This corresponds to averaging G_{a} and G_{b}. These values correspond to the values of G for the two cubic spline curve peaks and should give the following e_{max} tolerance.

e max ≈ ± ∑ i = 1 i max e i i max n ≈ ± 0.000060 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 where i max = 32 dataand n = 22 real measurements (37)

The values e_{i} correspond to the tolerances associated with the data in _{max} = 32. From these data, we remove all statistical results to get a total of n = 22 real measurements. Because of the square root, removing all statistical results do not have a huge impact on the final tolerance (60 ppm instead of 50 ppm).

The precision of measurements may be partially mixed up with the repeatability. The 5 points resulting from the iterations on the cubic spline curve are shown in Equations (38).

Point1: G 1 ≈ 6.67000 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 with3 .240interceptions Point2: G 2 ≈ 6.67296 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 with8 .477interceptions Point3: G 3 ≈ 6.67299 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 with8 .440interceptions Point4: G 4 ≈ 6.67330 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 with10 .573interceptions Point5: G 5 ≈ 6.67630 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 with − 3 .060interceptions (38)

The sum of the least-squares found with these values is as follows.

Σ e ≈ 202 .827574 (39)

Once the 5 points are found and it is no longer possible to iterate to reduce the error, we find the 2 values of G which correspond to the two peak values G_{a} and G_{b} of the cubic spline curve (see

G a ≈ 6.672449 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 (40)

G b ≈ 6.674076 × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 (41)

Since we want to give as much weight to the first group (corresponding to the peak reached in G_{a}) as to the second (corresponding to the peak reached in G_{b}), we average the values of G between the two peaks. By averaging these 2 values, we get the following value of G (round up on the sixth decimal):

G ≈ 6.673262 ( 50 ) × 10 − 11 m 3 ⋅ s − 2 ⋅ kg − 1 (42)

The tolerance of ±0.000050 × 10^{−11} m^{3}·s^{−2}·kg^{−1} comes from Equation (37). However, the measured value of G in Equation (42) is now well centered on the theoretical value of G (Equation (31)) within ±5 ppm (parts per million).

We would like to draw attention to the fact that the second peak value G_{b} of the cubic spline curve is close to the value presented by CODATA 2018, but especially to the value presented by CODATA 2014 (referring to _{b}) of the cubic spline curve. A lot of experiences probably commit a systematic error. Even if it seems likely that there is a systematic error, it is not possible, for the moment, to know what this error is.

Since we want to give as much importance to the first group as to the second, we average the two peak values (G_{a} and G_{b}). This value that comes from measurements is roughly the same as the theoretical G in Equation (31).

Although our sample of 32 data stemming from different experiences is quite limited, it seems that this allows us to highlight the possible existence of a systematic error. Unless there are major advances, the source of this error may remain unknown since it differs from one experience to the next. However, we think that the value of the error is sometimes imputed to the data in positive and sometimes negative. The values then vary around an average value which should be the theoretical value of G of Equation (31).

The experiments mentioned in

It is really difficult to subtract laboratories from all perturbating sources. Not knowing all the details of the montages and environments used for each of the experiments and knowing that each montage has different sources of error, it is very difficult to point to a specific source of systematic error. It may never be possible to find it. However, the difference between the value of one of the two peak values of the cubic spline curve and the central value gives a good idea of the magnitude of the systematic error. This value could help a research team to find the source of this error.

For now, G appears to be constant. But is it? We will analyze this point in detail once we will have stated the different equations of G.

Currently, our metrology system considers G as one of the 3 fundamental constants of physics. Based on modern physics, no model makes it possible to obtain G as a function of the other constants. However, recently [_{e} and classic radius r_{e}).

To avoid repeating everything unnecessarily, we wish here to recall different identities which will be used later to determine several equations of G.

Let’s start by listing the different Planck units that will be useful to us.

Planck mass m_{p} is determined, as a standard, as a function of Planck constant h, G, and the speed of light in a vacuum c.

m p = h c 2 π G ≈ 2.18 × 10 − 8 kg (43)

Planck time t_{p} is determined, as a standard, as a function of Planck constant h, the universal gravitational constant G and the speed of light in a vacuum c. It can also be determined according to Planck length L_{p}.

t p = h G 2 π c 5 = L p c ≈ 5.91 × 10 − 44 s (44)

Planck length L_{p} is determined, in a standard way, from the same parameters or from Planck time t_{p} with the following equations.

L p = h G 2 π c 3 = c t p = 1.61 × 10 − 35 m (45)

Planck charge q_{p} is determined, in a standard way, as a function of the preceding parameters, the fine-structure constant α and the vacuum permeability μ_{0}. It can also be determined as a function of the vacuum permittivity ε_{0} or from the electrical charge q_{e} of the electron.

q p = 4 π m p L p μ 0 = 2 h c μ 0 = 2 c h ε 0 = − q e α ≈ 1.875546023 ( 11 ) × 10 − 18 C (46)

Note that unlike most Planck units, Planck charge is not defined, in a standard way, using G and h. However, using Equations (31), (46), (50), and (51), we can establish a relation of Planck charge q_{p} as a function of G and h.

q p = β G h 2 π μ 0 r e 2 c 4 α 19 (47)

The fine-structure constant α is linked to the Rydberg constant R_{∞} and to the mass of the electron m_{e} by the following equation:

R ∞ = c m e α 2 2 h (48)

The charge of the electron is determined based on the mass of the electron m_{e}, the classical electron radius r_{e}, and the permeability of the vacuum μ_{0}.

q e = 4 π m e r e μ 0 = − 1.60 × 10 − 19 C (49)

Thanks to the wave-particle duality, it is possible to link the energy of the mass m_{e} of an electron (left part of Equation (50)) to the energy of the wave associated with it (right part from Equation (50)).

m e c 2 = h c α 2 π r e (50)

The speed of light c in a vacuum is given as a function of the vacuum permeability μ_{0} as well as the vacuum permittivity ε_{0}.

c = 1 μ 0 ε 0 (51)

To show the interdependence of G with the other parameters of the universe, we will make an enumeration of equations using different “constants”. Some of these equations will offer the advantage of overcoming the difficulties inherent in measuring the value of G and will present a roundabout way of obtaining a precise value of it. The use of different parameters could highlight that the universal gravitational “constant” G may not be that constant.

Equation (31) defines G as a function of the speed of light c, the fine-structure constant α, the parameters of the electron (mass m_{e} and its classical radius r_{e}) as well as the constant β defined in Equation (31). This last constant comes from a cosmological model that shows the existence of a material and luminous universe. These two spherical universes evolve one in the other in a β relationship. Without this constant, the equations which make it possible to define G only based on parameters with good precision (8 to 11 digits after the point) would not be possible. Most of the equations that follow will use some of the constants used in Equation (31). We will, therefore, focus on the other constants that will appear in the different equations.

From Equations (31) as well as from Equation (48), G can be defined as a function of Planck constant h and the Rydberg constant R_{∞}.

G = r e c 3 α 22 2 β h R ∞ (52)

Equations (31), and (50) make it possible to define G as a function of h.

G = 2 π r e 2 c 3 α 19 β h (53)

Using Equations (31), and (48) in Equation (53), G is defined as a function of Planck constant h and Rydberg constant R_{∞}.

G = c 3 α 25 8 π β h R ∞ 2 (54)

Using Equations (2) and (16) in Equation (35), G is defined by another equation as a function of Rydberg constant R_{∞}.

G = c 2 α 23 4 π β m e R ∞ (55)

Using Equations (31), (46), and (51), G is obtained as a function of the vacuum permeability μ_{0} as well as the electron charge q_{e}.

G = 4 π c 2 r e 2 α 20 β μ 0 q e 2 (56)

With the same parameters, we get G using Equations (31), (46), and (51).

G = 4 π r e 2 α 20 β ε 0 q e 2 μ 0 2 (57)

Using Equations (31), (48), and (51) in Equation (39), G is defined as a function of μ_{0}, q_{e}, and the constant by Rydberg R_{∞}.

G = c 2 α 26 4 π β μ 0 q e 2 R ∞ 2 (58)

Using Equations (31) and (51) in Equation (58), G is defined as a function of the vacuum permittivity ε_{0} and the same parameters as Equation (58).

G = α 26 4 π β ε 0 q e 2 R ∞ 2 μ 0 2 (59)

Using Equations (20) and (22), we obtain an equation of G defined according to the charge of the electron q_{e} to the numerator as well as according to the permittivity of the vacuum ε_{0} and the mass m_{e} of the electron. This equation can also be taken from Equation (28).

G = q e 2 α 20 4 π β ε 0 m e 2 (60)

Using Equation (51) in Equation (60), we obtain a similar equation, but as a function of the speed c and the vacuum permeability μ_{0}.

G = μ 0 q e 2 c 2 α 20 4 π β m e 2 (61)

We emphasize that Equations (31), and (52) to (61) make it possible to obtain a precise value of the gravitational constant G by overcoming the difficulties inherent in the measurements of this parameter of physics.

Using Equations (46) and (60), we get G as a function of Planck charge q_{p}.

G = q p 2 α 21 4 π β ε 0 m e 2 (62)

Using Equation (51) in Equation (62), we obtain a similar equation, but as a function of the speed of light c and the permeability of vacuum μ_{0}.

G = μ 0 q p 2 c 2 α 21 4 π β m e 2 (63)

Using Equations (46) and (48) in Equation (58), we obtain G as a function of the vacuum permeability μ_{0} and Planck charge q_{p}.

G = 4 π c 2 r e 2 α 19 β μ 0 q p 2 (64)

Using Equation (51) in Equation (64), we obtain G as a function of the vacuum permeability μ_{0}, the vacuum permittivity ε_{0}, and Planck charge q_{p}.

G = 4 π r e 2 α 19 β ε 0 μ 0 2 q p 2 (65)

Using Equation (51) in Equation (65), we obtain an equation as a function of μ_{0}, ε_{0}, q_{p}, and Rydberg constant R_{∞}.

G = c 2 α 25 4 π β μ 0 q p 2 R ∞ 2 (66)

Using Equation (51) in Equation (66), we obtain the following equation as a function of μ_{0}, ε_{0}, q_{p}, and R_{∞}.

G = α 25 4 π β ε 0 μ 0 2 q p 2 R ∞ 2 (67)

Using Equations (31), (50), (34), and (33), it is possible to determine G as a function of the measurement of the average CMB temperature T. Because of the uncertainty currently hanging over this parameter, the result of this equation is much less precise. However, using the value of T presented in Equation (34), we obtain a result almost as precise as those from Equations (31) and (52) to (59). The difference in precision then comes from the Boltzmann constant k_{b} which is slightly less precise than most of the other constants used.

G = T k b r e m e 2 ( π 3 α 63 15 β 10 ) 1 / 4 (68)

Using Equation (50) in Equation (68), we obtain another equation giving G as a function of T, k_{b} as well as Planck constant h.

G = h T k b m e 3 c ( α 67 240 π β 10 ) 1 / 4 (69)

Using Equation (49) in Equation (68), we obtain an equation giving G as a function of the mean temperature of the cosmic microwave background of the universe T, Boltzmann constant k_{b}, and the electron charge q_{e}.

G = 16 T k b r e 3 μ 0 2 q e 4 ( π 11 α 63 15 β 10 ) 1 / 4 (70)

By raising Equation (34) to power 4, by isolating from this equation the parameters required to equal Equation (31), and by replacing these parameters by G, we obtain an equation of G as a function of the mean temperature T of the cosmic microwave background and Boltzmann constant k_{b}.

G = π 3 r e α 3 k b 4 T 4 15 m e 5 c 6 β 7 (71)

The following equations cannot be used as tools to calculate G with precision.

Using Equation (5), G can be defined as a function of the apparent mass of the m_{u} universe and Hubble constant H_{0}.

G = c 3 m u H 0 (72)

Using Equation (7) in Equation (72), we get G as a function of the apparent radius of curvature R_{u} of the universe as well as m_{u}.

G = R u c 2 m u (73)

Using Equations (31), (33), and (73), G may be defined as a function of R_{u}.

G = R u c 2 α 39 m e β (74)

Using Equations (7) and (74), we get G as a function of Hubble constant H_{0}. It can also be obtained using Equations (5), (20), and (23).

G = c 3 α 39 m e H 0 β (75)

Using Equations (5) and (26), it is possible to obtain G as a function of Rydberg constant R_{∞} and the apparent mass m_{u} of the universe.

G = c 2 4 π m u R ∞ α 16 β (76)

Using Equations (5), (7), and (27), we obtain G as a function of Planck length L_{p}, the apparent mass m_{u} of the universe, and Rydberg constant R_{∞}.

G = c 2 16 π 2 β L p m u R ∞ 2 α 7 / 2 (77)

Using Equations (43), (44), and (45), G can be defined according to the 3 main Planck units, i.e. Planck length L_{p}, Planck mass m_{p} and Planck time t_{p}.

G = L p 3 m p t p 2 (78)

Using Equations (43), (45), (5), and (7), the value of G can be obtained according to R_{u}, m_{u}, Planck length L_{p} and Planck time t_{p}.

G = R u L p 2 m u t p 2 (79)

Using Equations (5), (18), and (21), we get an equation with the mass m_{ph}_{ }associated with the photon having the lowest energy level as well as H_{0}.

G = c 3 α 57 H 0 m p h (80)

Using Equations (5) and (24), it is possible to obtain G as a function of the mean temperature T of the cosmological microwave background, of Boltzmann constant k_{b}, of the mass associated with the least energetic photon m_{ph}, the apparent mass m_{u} of the universe and Hubble constant H_{0}.

G = c k b T m p h m u H 0 ( π 3 α 57 15 β 4 α 2 ) 1 / 4 (81)

Using Equations (5), (20), and (25) we obtain an equation of G which involves the Planck temperature T_{p}, the Boltzmann constant k_{b}, the Planck constant h, the apparent mass m_{u} of the universe and the Hubble constant H_{0}.

G = 2 π r e k b T p c 2 α 57 / 6 h m u H 0 β (82)

Using Equations (20), (21), and (80), we obtain an equation of G which involves the mass m_{ph} and Planck time t_{p}.

G = t p c 3 α 57 / 2 m p h (83)

We have presented several different Equations (33 in total including equation (31)) that can define the gravitational constant G as a function of different parameters of the universe. Several other equations could probably be found by making other combinations of equations.

The idea conveyed in the CODATA 2014 [

We want to explain why G cannot be constant over time. At the same time, we will show why, apart from the fine-structure constant α, most of the parameters of the universe are probably not constant.

Equation (75) shows a direct link between G and H_{0}. Since 1/H_{0} gives the apparent age of the universe, H_{0} is not constant even if it may look to observers for a short period. This shows that G is probably also evolving over time.

The constant α is one of the rare parameters in physics to be truly constant. This is because it’s a ratio of two numbers having the same units. For example, α can be defined as the ratio between the classical electron radius r_{e} and Compton radius r_{c} of the electron. It can also be defined as a function of the electron charge q_{e} and Planck charge q_{p}.

α = r e r c = q e 2 q p 2 ≈ 7.2973525664 ( 17 ) × 10 − 3 (84)

Several other ratios involving parameters with different unities could define α. Take, for example, the ratio of r_{e} by r_{c}. If any phenomenon influences the numerator value by an infinitely small factor δ, the same phenomenon will also influence the denominator in the same proportions with a factor δ.

α = r e ( 1 + δ ) r c ( 1 + δ ) (85)

But what happens when we consider c constant without it being? Let us examine another equation that defines α as a function of c.

α = q e 2 2 ε 0 h c (86)

Now suppose that the speed of light increases over a year to be c(1 + δ). Equation (86) would then become the Equation (87).

α = q e 2 2 ε 0 h c ( 1 + δ ) (87)

If for metrological reasons, the value of c is kept constant with its current value, the value of α will then seem to be divided by the factor (1 + δ). However, assuming that the speed of light is indeed increasing over time, (1 + δ) > 1. Therefore, the value of α would seem to decrease over time. It is moreover at this conclusion that Wilczynska’s research team [^{−5}.

According to Einstein’s 1917 cosmology, the universe can be associated to a 4-D sphere [_{u} continues to grow and we move away from the center of mass of the universe [

In 1905, in his theory of relativity, Einstein postulated that the speed of light c in a vacuum was constant [

Nowadays, the main instrument for measuring the speed of light is the laser. The ancestor of the laser, the maser (a kind of laser working in the mid-microwave), was invented in December 1953 by Charles H. Townes and demonstrated its operation in 1954 [^{−1}. In 1973, the International Bureau of Weights and Measures recommended the use of c ≈ 299792458 ± 1 m·s^{−1} as value for the speed of light in a vacuum, then, in 1975, a resolution was adopted so that the value of the speed of light is considered exact with a value of c = 299792458 m·s^{−1} [

In metrology, the constancy of the speed of light c is now an essential tool for calibration, because this speed is used as a reference for several other parameters of the universe. By deliberately keeping c “constant”, even if it increases over time, this has the effect of giving the impression that most of the parameters in physics are constant. This is especially true for parameters that have units of measurement. One has to realize that this whole concept is a device put in place to facilitate metrology.

Metrology with a speed of light c which increases overtime is not practical and is rather undesirable. When the desire is to understand the evolution of the universe, physicists should not allow themselves to impose the constancy of the speed of light as it is done in metrology, otherwise, it risks creating inexplicable phenomena. In the days of Ptolemy’s anthropocentric beliefs, mankind believed that the Earth was the immobile center of the universe and that all stars revolve around it. It was an impossible mission to create universal mathematical equations to correctly describe the movement of all-stars in the universe. However, the understanding of our universe has been greatly simplified following Copernicus’ discoveries of heliocentrism from 1511 to 1513 when he wrote: “De Hypothesibus Motuum Coelestium a se Contitutis Commentariolus” (known as “Commentariolus”) [

Many would argue that the speed of light c, the classic electron radius r_{e}, Rydberg constant R_{∞}, and several other parameters are “constant”. However, knowing that the universe is expanding [

For now, the total energy E_{u} contained in the universe is a function of c^{2}.

E u = m u c 2 (88)

However, as stated at the beginning of this article, meanwhile the universe is expanding, the light slowly accelerates. As there must be conservation of the energy E_{u}, the apparent mass m_{u} of the universe slowly decreases. Because of Equation (18), we know that there is a maximum number of photons of wavelength 2πR_{u} in the universe. Of course, the universe is full of other photons with other wavelengths, but if they were all of the same with a 2πR_{u} wavelength, there would be N ≈ 6.3 × 10^{121} photons. With Equations (7), (18), and (21), we get Equation (89).

m u c 2 = N m p h c 2 = N h c 2 π R u = N h H 0 2 π = m p c 2 N = h c 2 π L p = h 2 π t p (89)

With Equation (89), we see that when light is accelerating the apparent radius R_{u} of curvature of the universe is increasing, Planck mass m_{p} is decreasing and Planck length L_{p} is increasing, Hubble constant H_{0} is decreasing, and Planck time t_{p} is increasing. Since mass, length and time are the basic dimensions of most constants, we conclude that probably most constants that have dimensions evolve over time. Since all these events happen at the same time, there are no noticeable impacts on our life. Again, if for metrology purpose, we force the speed of light to be constant and equal to c, we would continuously slyly redefine all dimensions and the fine-structure constant α would look like changing over time even if it is really constant.

This article had 3 goals. The first one was to show that the theoretical value of G from Equation (31) is the right one, even though in recent years, CODATA has shown a slightly higher result. The second goal was to get other equations that give G as a function of the different parameters of the universe and thus demonstrate that G is intimately linked to them. Third, using these equations, we wanted to show that G is not constant in time and space.

To begin with, a graph was constructed by analyzing the number of ranges of G measurements intercepted (using 32 measurements collected since 1930) for each potential value of this parameter. The use of cubic splines made it possible to highlight two groups of data. By trying to reduce the least-squares differences between the cubic spline curve and the measured values of the graph, it is possible to precisely establish the center of the two measurement groups. A very good estimate of the theoretical value of G is obtained by averaging the values of G corresponding to the two peaks, which corresponds approximately to the proposed theoretical value of Equation (31).

As CODATA regularly presents values of the second group, recent measurements of G may be biased. Some researchers may have thought it prudent to set aside different results that stray too far from the official value of G.

Analysis of the different measured values of G suggests that a systematic error is made on most measurements. By knowing the magnitude of this error, researchers will now be able to track down the source of this error.

Even if certain experiences of measuring G display accuracy higher than the value of CODATA, it must be noted that each method and assembly used to measure G are biased differently. Thus, the discrepancy in the G measurement suggests the presence of an unknown error. The CODATA value is the result of a statistical average of several methods which themselves are the results of multiple repeated tests. By using different methods, the accuracy improves according to the equation 1/n^{1/2} where n represents the number of experiments. This equation shows that even by carrying out a greater number of experiments, the square root very quickly limits the potentially achievable precision. Knowing that only 2 or 3 new experiments are carried out each decade, the hope of seeing a clear improvement in the precision of G is not great, because, if the value of CODATA is the average result of about thirty experiments using different methods, the error will be multiplied at most by a factor of about 0.95 in the next decade. Also, using a simple average to improve the accuracy of G by repeating the same experiments over and over again will not improve the accuracy much, as the same systematic errors are repeated every time. By using statistical means, only new experiments with new methods may reduce the uncertainty weighing on the value of G.

The idea of using cubic splines to bring out more precisely two groups of measures instead of using statistical means could be reused in the same way with Hubble constant H_{0} because there seem to be two groups of data [

To show the interdependence of G with the other parameters of the universe, we have listed several equations that make it possible to calculate G. Certain equations make it possible to calculate G in a purely theoretical way using parameters considered precise. These equations perhaps represent tools that will allow us to track down the different sources of errors in the measurements of G. The different parameters used in these equations also allow us to question the constancy of G since the average temperature T of the CMB, and H_{0} are not constant because of the expanding universe.

This article highlights the fact that there are two ways to use the speed of light c. In metrology, this parameter is deliberately imposed as being constant to be used as a reproducible standard. But this point of view does not seem useful when the goal is to understand the evolution of the universe. Imposing the constancy of c could lead some to conclude that there are inconsistencies in the evolution of certain parameters. On the scale of the universe, a few tens or hundreds of years of metrology represent no more than an instant photograph of the universe parameters taken during a scene that takes place over several billion years.

The author declares no conflicts of interest regarding the publication of this paper.

Mercier, C. (2020) Several Ways to Calculate the Universal Gravitational Constant G Theoretically and Cubic Splines to Verify Its Measured Value. Journal of Modern Physics, 11, 1428-1465. https://doi.org/10.4236/jmp.2020.119089

// This software tries to find a value of G from 32 measured values that

// minimizes least-square sum.

// It must be compiled on a Delphi 3.0 compiler (16-bit) which may be

// revived to work on a 64-bit computer thanks to LongBow Software

// available at https://www.longbowsoftware.com/Reviver.php

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

StdCtrls, OleCtrls, graphsv3;

type

TForm1 = class(TForm)

LabelBestValueOfG: TLabel; //Label written "Best Value of G ="

BestValueOfG: TLabel; //Label to write the result

LabelLeastSquareSum: TLabel; //Label written "Least-Square Sum"

LeastSquareSum: TLabel; //Label to write the result

LabelGa: TLabel; //Label written "Ga ="

Ga: TLabel; //Label to write the result

LabelGb: TLabel; //Label written "Gb ="

Gb: TLabel; //Label to write the result

LabelG0: TLabel; //Label written "G[

G0: TLabel; //Label to write the result

LabelnbInt0: TLabel; //Label written "Number of Interceptions[

nbInt0: TLabel; //Label to write the result

LabelG1: TLabel; //Label written "G[

G1: TLabel; //Label to write the result

LabelnbInt1: TLabel; //Label written "Number of Interceptions[

nbInt1: TLabel; //Label to write the result

LabelG2: TLabel; //Label written "G[

G2: TLabel; //Label to write the result

LabelnbInt2: TLabel; //Label written "Number of Interceptions[

nbInt2: TLabel; //Label to write the result

LabelG3: TLabel; //Label written "G[

G3: TLabel; //Label to write the result

LabelnbInt3: TLabel; //Label written "Number of Interceptions[

nbInt3: TLabel; //Label to write the result

LabelG4: TLabel; //Label written "G[

G4: TLabel; //Label to write the result

LabelnbInt4: TLabel; //Label written "Number of Interceptions[

nbInt4: TLabel; //Label to write the result

procedure FormCreate(Sender: TObject);

private { Private declarations }

public { Public declarations }

end;

const

n = 5; //Number of nodes

nbG =32; //Number of measurements of G

type

vector = array[0..n-1] of extended;

var

Form1: TForm1;

x, y: vector; //Vectors containing the coordinates of each node

a, b, c, d: vector; //Vectors containing coefficients a to d of each segment

G, T: array[0..2*nbG] of extended;

nbInt: array[0..2*nbG] of extended; //Vector of number of interceptions

Sgn: array[1..2*nbG] of integer; //Tableof signs

LS: extended = 0; //Least mean square value

m: array[0..n-1,0..n-1] of extended;

h, f, s: vector;

TopSplineCurve1,TopSplineCurve2: extended;

StartIncrement_x, StartIncrement_y, StopPPM: extended;

Range: integer; //Range of research in BestEstimateOfG procedure

implementation

{$R *.DFM}

{********************************************************************

Create a spline curve from all given nodes x[i],y[i] where i:=0 to n-1.

This procedure returns the coefficients a[i], b[i], c[i], d[i] for

all i=0 to n-2 third degree polynomial segments.

*********************************************************************}

procedure CreateSplineCurve;

var

i, j: integer;

k: extended;

begin

for i:=n-1 downto 1 do

begin

if (x[i]<>x[i-1]) then f[i]:=(y[i]-y[i-1])/(x[i]-x[i-1]) else f[i]:=1E99;

h[i-1]:=x[i]-x[i-1];

end;

//*********** Formation of h, s , f matrix **************//

for i:=1 to n-2 do

begin

m[i,i]:=2*(h[i-1]+h[i]);

if(i<>1)then

begin

m[i,i-1]:=h[i-1];

m[i-1,i]:=h[i-1];

end;

m[i,n-1]:=6*(f[i+1]-f[i]);

end;

//*********** Forward elimination **************//

for i:=1 to n-3 do

begin

if m[i,i]<>0 then k:=(m[i+1,i]/m[i,i]) else k:=1E99;

for j:=1 to n-1 do m[i+1,j]:=m[i+1,j]-k*m[i,j];

end;

//*********** Backward substitution *********//

for i:=0 to n-1 do s[i]:=0;

for i:=n-2 downto 1 do

begin

k:=0;

for j:=i to n-2 do k:=k+m[i,j]*s[j];

if m[i,i]<>0 then s[i]:=(m[i,n-1]-k)/m[i,i] else s[i]:=1E99;

end;

//******* Finds a,b,c,d coefficient for each segment ******//

for i:=0 to n-2 do

begin

if h[i]<>0 then a[i]:=(s[i+1]-s[i])/(6*h[i])else a[i]:=1E99;

b[i]:=s[i]/2;

if h[i]<>0 then

c[i]:=(y[i+1]-y[i])/h[i]-(2*h[i]*s[i]+s[i+1]*h[i])/6

else

c[i]:=1E99;

d[i]:=y[i];

end;

end; //End of CreateSplineCurve procedure

{********************************************************************

This procedure begins by creating a table of 2*nbG increasing values

of G[i] with the tolerances T[i] and the signs +/- sgn[i].

The ultimate result is that it builds with the previous vectors a table

of the number of intersections nbInt[i] of G value ranges.

In all cases i:=1 to 2*nbG.

*********************************************************************}

procedure CreateTableOfIntGRanges;

var

i, j, Dsgn: integer;

DG, DT: extended; //Dummy G and T used to put G in increasing order

begin

CreateSplineCurve;

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

G[

for i:=nbG+1 to 2*nbG do

begin

G[i]:=G[i-nbG];

T[i]:=T[i-nbG];

sgn[i-nbG]:=1;

sgn[i]:=-1;

end;

for j:=1 to 2*nbG-1 do

begin

for i:=j+1 to 2*nbG do

begin

if G[i]+sgn[i]*T[i]

begin

DG:=G[j];

DT:=T[j];

Dsgn:=sgn[j];

G[j]:=G[i];

T[j]:=T[i];

sgn[j]:=sgn[i];

G[i]:=DG;

T[i]:=DT;

sgn[i]:=Dsgn;

end;

end;

if j=1 then nbInt[j]:=1 else nbInt[j]:=nbInt[j-1]-sgn[j];

end;

end; //End of CreateTableOfIntGRanges

{********************************************************************

Use this function to evaluate the Spline curve at the xx coordinate.

The function will return the yy coordinate of the curve

*********************************************************************}

function Spline_yy(xx: extended): extended;

var

i: integer;

begin

Spline_yy:=0;

for i:=0 to n-2 do

begin

if (x[i]<=xx)and(xx<=x[i+1]) then

Spline_yy:=((a[i]*(xx-x[i])+b[i])*(xx-x[i])+c[i])*(xx-x[i])+d[i];

end;

end; //End of Spline_yy function

{********************************************************************

Use this function to find the two maximums of the spline curve.

*********************************************************************}

procedure FindSplineMax_xx;

var

i, j, sign, nb: integer;

SecondDerivative, In_xx: extended;

Max_xx: array[0..n] of extended;

begin

nb:=0;

for i:=1 to n-1 do Max_xx[i]:=0;

for i:=0 to n-2 do

begin

sign:=1;

for j:=1 to 2 do

begin

//****** A maximum or minimum is found with the first derivative

if a[i]<>0 then

begin

if (b[i]*b[i]-3*a[i]*c[i]>0) then

In_xx:=((3*a[i]*x[i]-b[i]+sign*sqrt(b[i]*b[i]-3*a[i]*c[i]))/(3*a[i]))

else

In_xx:=0;

end

else

In_xx:=1E30;

//****** If the second derivative is negative, we have a maximum

SecondDerivative:=6*a[i]*(In_xx-x[i])+b[i];

//****** We test if In_xx is in the range and if it is a maximum

if (x[i]<=In_xx)and(In_xx<=x[i+1])and(SecondDerivative<0) then

begin

nb:=nb+1;

Max_xx[nb]:=In_xx;

end;

sign:=-1;

end;

end;

TopSplineCurve1:=Max_xx[

TopSplineCurve2:=Max_xx[

end; //End of FindSplineMax_xx function

{********************************************************************

This function returns the summation of the squares of the difference

between the Spline value and the number of interceptions of the G

scales.

*********************************************************************}

function EvaluateLS: extended;

var

i: integer;

Error: extended;

begin

CreateSplineCurve;

Error:=0;

for i:=1 to 2*nbG do

Error:=Error+sqr(Spline_yy(G[i]+sgn[i]*T[i])-nbInt[i]);

EvaluateLS:=Error;

end; //End of EvaluateLS

{********************************************************************

This function seeks and returns the best estimate of G.

*********************************************************************}

function BestEstimateOfG:extended;

var

i, x1, x2, x3, y0, y1, y2, y3, y4: integer;

Max_xx: vector; //Vector containing the 2 maximum values

Modified: boolean;

NewG, InitialG, DLS, Valeur, Increment: extended;

Dx, ix, Dy, iy: array[0..n-1] of extended;

begin

Increment:=1;

FindSplineMax_xx;

NewG:=(TopSplineCurve1+TopSplineCurve2)/2;

LS:=EvaluateLS;

repeat

begin

Modified:=False;

FindSplineMax_xx;

InitialG:=(TopSplineCurve1+TopSplineCurve2)/2;

DLS:=LS;

for i:=0 to 4 do

begin

ix[i]:=x[i]; //Keeps initial value of x[i]

Dx[i]:=x[i];

iy[i]:=y[i]; //Keeps initial value of y[i]

Dy[i]:=y[i];

end;

for x1:=-Range to Range do

begin

Valeur:=ix[

if Valeur<=ix[

x[

else

if Valeur>=ix[

x[

else

x[

for x2:=-Range to Range do

begin

Valeur:=ix[

if Valeur<=ix[

x[

else

if Valeur>=ix[

x[

else

x[

for x3:=-Range to Range do

begin

Valeur:=ix[

if Valeur<=ix[

x[

else

if Valeur>=ix[

x[

else

x[

for y0:=-Range to Range do

begin

y[

for y1:=-Range to Range do

begin

y[

for y2:=-Range to Range do

begin

y[

for y3:=-Range to Range do

begin

y[

for y4:=-Range to Range do

begin

y[

LS:=EvaluateLS;

//Keeps the best values of G[i] and nbInt[i]

if LS

begin

Modified:=true;

DLS:=LS;

for i:=1 to 3 do Dx[i]:=x[i];

for i:=0 to 4 do Dy[i]:=y[i];

end;

end;

end;

end;

end;

end;

end;

end;

end;

For i:=1 to 3 do

begin

x[i]:=Dx[i]; //Sets x[i] to the best value

y[i]:=Dy[i]; //Sets y[i] to the best value

end;

LS:=EvaluateLS;

FindSplineMax_xx;

NewG:=(TopSplineCurve1+TopSplineCurve2)/2;

if Not Modified then Increment:=Increment/Range;

end;

until ((NewG-InitialG)/NewG

BestEstimateOfG:=NewG;

end; //End of BestEstimateOfG

{********************************************************************

Main procedure

*********************************************************************}

procedure TForm1.FormCreate(Sender: TObject);

begin

//We need 5 starting coordinates for the nodes

//Twicking these values may end up with different results

x[

x[

x[

x[

x[

//Iteration parameters.

//Twicking these values may end up with different results

Range:=8;

StartIncrement_x:=0.00001;

StartIncrement_y:=0.001;

StopPPM:=0.01;

//Builds a table of interceptions of the different ranges of G for

//each end of range values.

CreateTableOfIntGRanges;

//Shows calculation results in Form1

BestValueOfG.Caption:=FloatToStrF(BestEstimateOfG,ffFixed,15,15);

LeastSquareSum.Caption:=FloatToStrF(LS,ffFixed,15,15);

Ga.Caption:=FloatToStrF(TopSplineCurve1,ffFixed,15,15);

Gb.Caption:=FloatToStrF(TopSplineCurve2,ffFixed,15,15);

G0.Caption:=FloatToStrF(x[

nbInt0.Caption:=FloatToStrF(y[

G1.Caption:=FloatToStrF(x[

nbInt1.Caption:=FloatToStrF(y[

G2.Caption:=FloatToStrF(x[

nbInt2.Caption:=FloatToStrF(y[

G3.Caption:=FloatToStrF(x[

nbInt3.Caption:=FloatToStrF(y[

G4.Caption:=FloatToStrF(x[

nbInt4.Caption:=FloatToStrF(y[

end; //End of TForm1.FormCreate

end.