Several Ways to Calculate the Universal Gravitational Constant G Theoretically and Cubic Splines to Verify Its Measured Value ()
1. Introduction
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 [1] and that of Einstein’s general relativity [4]. It is one of the least well-known constants despite all current technological means.
In Newton’s equation of gravity [1], the attractive force F between two masses m1 and m2, separated by a distance r, depends on G that acts as a coupling coefficient.
(1)
In Einstein’s equation of general relativity [4], Rμ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.
(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 [5]. Our article will also show that G could evolve over time and not be a real constant.
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 me and classical radius re) [3]. To help the reader, we will summarize the theory that is behind this equation.
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.
2. Values of the Physics Parameters Used
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 [6].
Speed of light in a vacuum
Universal gravitational constant
Electron rest mass
Classical electron radius
Electron charge
Planck length
Planck time
Planck mass
Planck constant
Fine-structure constant
Boltzmann constant
Rydbergconstant
3. Summary of Our Theory
Our theory is based on a 2019 paper [3]. Our cosmological model is used to get all the equations. We will evocate some main milestones.
3.1. Our Cosmological Model
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 [7]. With the general relativity, Schwarzschild calculated the speed of light in the context of a weak gravitational field (
) around a spherical mass [8]. With his equation, we obtain Equation (3) that gives the speed of light vL as a function of c and a local refractive index n0. The value of n0 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.
(3)
For a distance r from the center of mass m, the speed of light c is reduced by the refractive index n0 caused by a gravitational field of potential Φ, which gives a modified speed of light vL(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 ru from the center of the apparent mass mu of the universe. The actual speed of light c is the result of Equation (4).
(4)
The apparent radius of the curvature of the luminous universe is Ru. It is “apparent” because the equation of Ru 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 [9], mass mu is given by Equation (5).
(5)
Hubble constant H0 represents the relative rate of expansion in km·s−1·MParsec−1 of the visible universe [10]. It is equivalent to locally measuring the derivative of the velocity of matter vm 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, H0 is evaluated at a distance r = ru (which represents a fraction β of Ru). The value of β will be calculated further at Equation (11).
(6)
The apparent radius of curvature Ru of the universe [3] [11] (also called Hubble radius [12]) can be determined as a function of c and H0. For now, we are at a distance ru from the center of mass mu of the universe.
(7)
For a distance ru, our local universe parcel travels at speed vm.
(8)
The measurement of H0 is made by observing the global displacement of galaxies at our location ru. Each galaxy has its own movement. Due to the expansion of the universe, the galaxies are moving away from each other. The value of H0 represents the derivative of the speed of the material universe vm with respect to the element of distance dr, evaluated at r = ru.
(9)
Solving Equations (4), (6), (7), and (9) leads to Equations (10) to (14). For the detailed calculation, see the Annex in reference [3].
(10)
(11)
(12)
(13)
(14)
The asymptotic value for the speed of light in a vacuum is represented by k when the apparent radius of curvature Ru 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 ru 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 Ru of the luminous universe. The value of mu 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 [13] [14].
The precisions of mu, ru, and Ru are directly dependent on the precision of H0. According to different sources, H0 is between 67.8(9) [15] and
km s−1MParsec−1 [16]. Uncertainties do not always overlap. We must find a method that will give a minimum of unequivocal precision.
As the average temperature T of the CMB (Cosmological Microwave Background) can be precisely measured, an exploitable link may be made between T and H0. It suffices to theoretically calculate T as a function of H0. Its accuracy will now depend on G. For more details, please, see reference [3].
We obtain Equation (15) which gives the average CMB temperature T.
(15)
We force Equation (15) to equal T ≈ 2.736(17) K (from Cobra Probe [17]) and we get an H0 similar to Salvatelli (
[18]).
(16)
3.2. Dirac’s Large Number Hypothesis
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 [13] [14]. All ratios that we found may, by adding certain factors, come from a single number N [3] that represents the maximum number of photons of lowest energy (of 2πRu wavelength) [3]. To get N, we calculate the mass mph associated with a 2πRu wavelength photon by making its corpuscular and wave energy equal.
(17)
The large number N is obtained by dividing mu (from equation (5)) by the mass mph associated with photons of 2πRu wavelength (Equation (17)).
(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 [6] and the CMB temperature from Cobra probe [17]. We note that N is dimensionless as α.
(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.
(20)
In the following equations, Planck temperature is about Tp ≈ 1.42 × 1032 K. This is the highest temperature that can be reached in the universe if we condensate the mass mu in a point-like sphere of radius equal to Planck length Lp. We also think this was the initial temperature of the universe at the Big Bang. The value of qp is the Planck charge which is about qp ≈ 1.88 × 10−18 C.
“Large” numbers are of type N exponent a fractional number, such as N1/2, N1/3, N1/4, …, N1/57 or N2/3, N3/4, etc. These are obtained in different ways by using different parameters of the universe [3]. Some come from Dirac’s assumption on large numbers [13] [14]. Some links (used later) are recalled here [3].
(21)
(22)
(23)
(24)
(25)
(26)
(27)
(28)
3.3. Precise Calculations of G, H0, and T
To precisely calculate G, we need an equation that is independent of H0 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 [3]), but let us consider an experiment where we evaluate the electrical energy Ee between two electrons separated by a distance equal to the classical electron radius re. The electrical energy Ee is independent of the distance since we get Ee = mec2. We make another experiment to evaluate the gravitational energy for the same conditions and we find
. If we make these experiments at the periphery of the luminous universe, we get an electrical energy
and a gravitational energy
. Making the ratio between
and
we get Equation (29).
(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).
(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.
(31)
This result agrees with the Taylor-Parker-Langenberg [19] value which is
. It does not perfectly fit with the CODATA 2014 value of
, but Qing [20] showed that the tolerances of many measurements of G do not overlap with each other.
We associate the energy of the electron mass me with the wave energy.
(32)
With Equations (20), (31), and (32), we obtain Equation (33).
(33)
The result is similar to Equation (16) obtained with the Cobra probe [17] and confirms Salvatelli’s value [18] of
.
With Equations (16), (33), and (32), we get the CMB temperature T.
(34)
It is in agreement with the value Cobra probe [17] with T ≈ 2.736(17) K.
With a cosmological model and 2 postulates, we found theoretical equations that give G, H0, T, and N. With standard equations of physics, other equations may be found, such as Equations (21) to (28).
4. Experimental Measurements of the Universal Gravitational Constant G
In 1798, G was measured by Cavendish using a torsion balance [2]. During the following centuries, several different methods were used with ever more refinements to try to circumscribe the value of G. Despite recent technological advances and the precision achieved, the different results do not always overlap. Our goal is to bring out a better value to estimate G.
The main purpose of this document is to show that the calculated theoretical value [3] of G (Equation (31)) can be validated by an adequate interpretation of the measured values thanks to a graph using cubic splines. The theoretical value of G is described as a function of the characteristics of the electron (the classical electron radius re and mass me), 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 Table 1, we have identified 32 relatively recent results (since 1930). Some of these values are statistical results of other measurements. We kept them to compare their value with the real measurements.
Table 1. List of measurements of the universal gravitational constant G.
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 m3kg−1s−2 (should be 10−11) of the abstract and 6.745 ± 0.0008×10−11 m3kg−1s−2 from the Sagitov’s text are erroneous [44] because the numbers after the dot and the tolerance are wrong. They may be corrected by averaging the table values from its original Russian article. After correction,
; **ppm = Parts per million.
To reduce the uncertainties, results from Table 1 inevitably comes from statistics (medians, averages, weighted averages, etc.) on several repeated experiments. Unfortunately, if the data is biased, an average of several measurements will only increase the repeatability of the measured means, always with the same bias. When the data are biased without knowing it and when several researchers display very small tolerances that do not overlap, they probably display their good repeatability, but not the actual tolerances.
We are well aware that in Table 1 some results are sometimes the results of measurements mixed with results from authors who preceded them. We confess that it was not always easy to keep only the real results of each author since they were sometimes “incorporated” in statistics that imply other measurements from other searchers. We did not want either to remove these values since they may harbor important information. We count on the fact that in some ways if these values are averages with other mixed data, they will not change the global average. Likewise, they should not have a noticeable effect on the position of the two peaks that we will look for. They may change the height of these peaks, but this information is not what we look for. Another effect of these statistics is the calculation of the tolerance value of G in Equation (37). However, it is easy to remove their effect by omitting them when we calculate the square root of the number of data at the denominator. If we remove all data which comes from statistics (10 in total), it remains 22 usable measurements for the calculation of the final tolerance.
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 Table 1, we calculate the following mean value Gm:
(35)
The median Gmd value is:
(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 Figure 1. For each value of the abscissa, we look at the number of tolerance ranges which can be intercepted by a line perpendicular to this last. We thus construct a graph (see the graph at the top of Figure 1). This graph gives a tool to tell how many measurements overlap with certain values of G. The higher is the number on the ordinate, the higher are the chances to get overlaps with other measurements of G. In an ideal world, we would like to overlap with all the 32 measurements. However, we already know that it’s not all measurements that are overlapping.
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 (Ga) seems to have fewer followers. The latest CODATA values (2014 and 2018) seem to be in the second group (Gb). 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 Gb.
We make the hypothesis that the second group Gb 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 Ga and Gb.
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 Figure 1 is made up of rough “jumps”. To smooth this graph, we pass a cubic spline function through the data set.
Figure 1. List of measurements of the universal gravitational constant G.
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 Figure 1, if there were an infinite number of data, the curve would be continuous with no discontinuities. This is the main reason why we use cubic splines to reconstruct an ideal smooth curve. We mention that other types of smoothing curves could have been used. A simple 5-degree polynomial would also allow us to show 2 bumps. However, it would tend to have uncontrolled behaviors at each end and would not fit well on the type of curve we have.
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 Table 1. The software then generates a table of 64 values (these values are numbered by the index i = 0 to 63) corresponding to the ends of the ranges of values of G. The data are sorted in order of increasing values. Next, we associate a number ni corresponding to the number of crossing points with the error ranges. To determine the values ni, an imaginary line perpendicular to the abscissa is drawn for all the 64 values of G kept. The values ni correspond to the numbers of crossings with error ranges in Figure 1. Of course, these numbers are integer values ≥ 0.
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 Se of the least-squares of the errors between the values ni 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 Ga and Gb since we assumed that the systematic error is the same in + or in -. This corresponds to averaging Ga and Gb. These values correspond to the values of G for the two cubic spline curve peaks and should give the following emax tolerance.
(37)
The values ei correspond to the tolerances associated with the data in Table 1. The number of data in Table 1 corresponds to imax = 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).
(38)
The sum of the least-squares found with these values is as follows.
(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 Ga and Gb of the cubic spline curve (see Figure 1).
(40)
(41)
Since we want to give as much weight to the first group (corresponding to the peak reached in Ga) as to the second (corresponding to the peak reached in Gb), 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):
(42)
The tolerance of ±0.000050 × 10−11 m3·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 Gb 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 Table 1). The process using the cubic spline curve seems to show that the measurements from recent years tend to be around the second peak value (Gb) 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 (Ga and Gb). 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 Table 1 were carried out using different methods. Some involve different materials, masses of different values, and involve different distances. At a very short distance, the Casimir effect, electrostatic, and magnetic forces may come into play and distort the results if they are not taken into account. Most of the experiments are now carried out under vacuum and at a controlled temperature to avoid disturbances due to the agitation of the air. When trying to get very high accuracy, even vehicles on the street, tides, the moon, and the sun may affect the results.
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.
5. A Reminder of Different Useful Identities
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 [3], thanks to a new cosmological model, we have shown that G can be obtained as a function of the speed of light in a vacuum c, the fine-structure constant α, and the parameters of the electron (mass me and classic radius re).
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 mp is determined, as a standard, as a function of Planck constant h, G, and the speed of light in a vacuum c.
(43)
Planck time tp 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 Lp.
(44)
Planck length Lp is determined, in a standard way, from the same parameters or from Planck time tp with the following equations.
(45)
Planck charge qp 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 qe of the electron.
(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 qp as a function of G and h.
(47)
The fine-structure constant α is linked to the Rydberg constant R∞ and to the mass of the electron me by the following equation:
(48)
The charge of the electron is determined based on the mass of the electron me, the classical electron radius re, and the permeability of the vacuum μ0.
(49)
Thanks to the wave-particle duality, it is possible to link the energy of the mass me of an electron (left part of Equation (50)) to the energy of the wave associated with it (right part from Equation (50)).
(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.
(51)
6. Different Equations for Calculating the Universal Gravitational Constant G
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 me and its classical radius re) 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∞.
(52)
Equations (31), and (50) make it possible to define G as a function of h.
(53)
Using Equations (31), and (48) in Equation (53), G is defined as a function of Planck constant h and Rydberg constant R∞.
(54)
Using Equations (2) and (16) in Equation (35), G is defined by another equation as a function of Rydberg constant 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 qe.
(56)
With the same parameters, we get G using Equations (31), (46), and (51).
(57)
Using Equations (31), (48), and (51) in Equation (39), G is defined as a function of μ0, qe, and the constant by Rydberg R∞.
(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).
(59)
Using Equations (20) and (22), we obtain an equation of G defined according to the charge of the electron qe to the numerator as well as according to the permittivity of the vacuum ε0 and the mass me of the electron. This equation can also be taken from Equation (28).
(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.
(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 qp.
(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.
(63)
Using Equations (46) and (48) in Equation (58), we obtain G as a function of the vacuum permeability μ0 and Planck charge qp.
(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 qp.
(65)
Using Equation (51) in Equation (65), we obtain an equation as a function of μ0, ε0, qp, and Rydberg constant R∞.
(66)
Using Equation (51) in Equation (66), we obtain the following equation as a function of μ0, ε0, qp, and R∞.
(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 kb which is slightly less precise than most of the other constants used.
(68)
Using Equation (50) in Equation (68), we obtain another equation giving G as a function of T, kb as well as Planck constant h.
(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 kb, and the electron charge qe.
(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 kb.
(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 mu universe and Hubble constant H0.
(72)
Using Equation (7) in Equation (72), we get G as a function of the apparent radius of curvature Ru of the universe as well as mu.
(73)
Using Equations (31), (33), and (73), G may be defined as a function of Ru.
(74)
Using Equations (7) and (74), we get G as a function of Hubble constant H0. It can also be obtained using Equations (5), (20), and (23).
(75)
Using Equations (5) and (26), it is possible to obtain G as a function of Rydberg constant R∞ and the apparent mass mu of the universe.
(76)
Using Equations (5), (7), and (27), we obtain G as a function of Planck length Lp, the apparent mass mu of the universe, and Rydberg constant R∞.
(77)
Using Equations (43), (44), and (45), G can be defined according to the 3 main Planck units, i.e. Planck length Lp, Planck mass mp and Planck time tp.
(78)
Using Equations (43), (45), (5), and (7), the value of G can be obtained according to Ru, mu, Planck length Lp and Planck time tp.
(79)
Using Equations (5), (18), and (21), we get an equation with the mass mph associated with the photon having the lowest energy level as well as H0.
(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 kb, of the mass associated with the least energetic photon mph, the apparent mass mu of the universe and Hubble constant H0.
(81)
Using Equations (5), (20), and (25) we obtain an equation of G which involves the Planck temperature Tp, the Boltzmann constant kb, the Planck constant h, the apparent mass mu of the universe and the Hubble constant H0.
(82)
Using Equations (20), (21), and (80), we obtain an equation of G which involves the mass mph and Planck time tp.
(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 [6] was that G “is independent from other constants”. We aimed to show that it may not the case. The proper links are not commonly part of the standard physics yet. With all the equations of G present in this article, we suggest that some of the most important parameters of the universe are intimately linked, as much in the infinitely large as in the infinitely small and the gravitational constant G is probably part of them.
7. Why Is G Not a Real Constant?
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 H0. Since 1/H0 gives the apparent age of the universe, H0 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 re and Compton radius rc of the electron. It can also be defined as a function of the electron charge qe and Planck charge qp.
(84)
Several other ratios involving parameters with different unities could define α. Take, for example, the ratio of re by rc. 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 δ.
(85)
But what happens when we consider c constant without it being? Let us examine another equation that defines α as a function of 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).
(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 [48] arrived. His team made 4 direct measurements of what should be α at universe’s creation, about 13 billion years ago. According to this team, Δα/α ≈−2.18 ± 7.27 × 10−5.
According to Einstein’s 1917 cosmology, the universe can be associated to a 4-D sphere [49]. Contrary to the preconceived idea of a static universe he had at the time, Hubble showed in 1929 that the universe is also in expansion [10]. The apparent radius of curvature Ru continues to grow and we move away from the center of mass of the universe [3]. By moving away from it, the density of the universe decreases over time, and the refractive index of the vacuum decreases, which allows a slight increase in the speed of light in a vacuum [3]. Currently, the latter is defined as c. But it increases very slowly over time. Its variation over a year is so small that it is currently not measurable by modern instruments, even over several decades.
In 1905, in his theory of relativity, Einstein postulated that the speed of light c in a vacuum was constant [50]. This assumption was based on intuition, but not on facts. At the time, c was known with 5 or 6 significant digits [51], and the measured value at that time was different from year to year.
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 [52]. A few years later, in 1958 the concept of the first laser was created [52]. The laser was, for the first time, used as a measuring instrument for the speed of light in 1972 by the Evenson team [53] which measured a speed c ≈ 299792456.2 ± 1.1 m·s−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 [54]. This crucial step defines the speed of light as an immutable standard. The researchers’ task then summed to try to use this standard to define the most possible constants. In 1983, the meter was redefined by the International Bureau of Weights and Measures as the distance traveled by light for 1/299792458 second, which implies that the value of c is now considered to be exact [54].
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”) [55]. Similarly, the imposition of the constancy of the speed of light in a vacuum could deprive humanity of a cosmological model that is easier to understand.
Many would argue that the speed of light c, the classic electron radius re, Rydberg constant R∞, and several other parameters are “constant”. However, knowing that the universe is expanding [10], no one will doubt that the temperature of the CMB decreases over time. In an expanding universe, the energy density is necessarily decreasing, which requires a reduction of the temperature T over time. At the time of its formation, due to the ionization of gases, the average temperature of the universe did not follow the curve of a black body [56]. However, because the universe, as a whole, is homogeneous and isotropic and that its global cooling has led its average temperature to around 2.736(17) K [17], the universe can now be seen as a black body [57] which radiates its energy and cools. Equations (68) to (71), and (81) to (82) clearly show a direct link between G and the CMB temperature, which necessarily implies that G is not a constant over time. Indirectly, this also shows that several other parameters of the universe are not constant since G was defined using these same parameters in the other equations. For G to vary over time, some of these other parameters must also evolve at the same time.
For now, the total energy Eu contained in the universe is a function of c2.
(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 Eu, the apparent mass mu of the universe slowly decreases. Because of Equation (18), we know that there is a maximum number of photons of wavelength 2πRu 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πRu wavelength, there would be N ≈ 6.3 × 10121 photons. With Equations (7), (18), and (21), we get Equation (89).
(89)
With Equation (89), we see that when light is accelerating the apparent radius Ru of curvature of the universe is increasing, Planck mass mp is decreasing and Planck length Lp is increasing, Hubble constant H0 is decreasing, and Planck time tp 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.
8. Conclusions
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/n1/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 H0 because there seem to be two groups of data [58] and the theoretical value published in Journal of Modern Physics [3] (see Equation (33)) lies somewhere between these two groups.
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 H0 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.
Annex A (Delphi 3.0 Software)
// 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[0] ="
G0: TLabel; //Label to write the result
LabelnbInt0: TLabel; //Label written "Number of Interceptions[0] ="
nbInt0: TLabel; //Label to write the result
LabelG1: TLabel; //Label written "G[1] ="
G1: TLabel; //Label to write the result
LabelnbInt1: TLabel; //Label written "Number of Interceptions[1] ="
nbInt1: TLabel; //Label to write the result
LabelG2: TLabel; //Label written "G[2] ="
G2: TLabel; //Label to write the result
LabelnbInt2: TLabel; //Label written "Number of Interceptions[2] ="
nbInt2: TLabel; //Label to write the result
LabelG3: TLabel; //Label written "G[3] ="
G3: TLabel; //Label to write the result
LabelnbInt3: TLabel; //Label written "Number of Interceptions[3] ="
nbInt3: TLabel; //Label to write the result
LabelG4: TLabel; //Label written "G[4] ="
G4: TLabel; //Label to write the result
LabelnbInt4: TLabel; //Label written "Number of Interceptions[4] ="
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[1]:=6.674484; T[1]:=0.000078; //Qing Li et al. (Q-AAF-2018)
G[2]:=6.674184; T[2]:=0.000078; //Qing Li et al. (Q-TS-2018)
G[3]:=6.6743; T[3]:=0.00015; //Tiesinga et al. (CODATA 2018)
G[4]:=6.67435; T[4]:=0.00013; //Newman et al. (N-TB-2014)
G[5]:=6.67191; T[5]:=0.00099; //Rosi et al (R-AI-2014)
G[6]:=6.67554; T[6]:=0.00016; //Quinn et al. (Q-FDEC-2014)
G[7]:=6.67408; T[7]:=0.00031; //Mohr PJ et al. (CODATA 2014)
G[8]:=6.67384; T[8]:=0.0008; //Mohr PJ et al. (CODATA 2010)
G[9]:=6.67234; T[9]:=0.00014; //Parks et Faller (PF-FPC-2010)
G[10]:=6.67349; T[10]:=0.00018; //Tu et al. (T-TS-2010)
G[11]:=6.67349; T[11]:=0.00018; //Luo et al. (L-TS-2009)
G[12]:=6.67428; T[12]:=0.00067; //Mohr PJ et al. (CODATA 2006)
G[13]:=6.67425; T[13]:=0.00012; //Schlamminger (S-BB-2006)
G[14]:=6.67222; T[14]:=0.00087; //Hu et al. (H-TS-2005)
G[15]:=6.67387; T[15]:=0.00027; //Armstrong et al. (A-EC-2003)
G[16]:=6.6742; T[16]:=0.001; //Mohr PJ et al. (CODATA 2002)
G[17]:=6.67422; T[17]:=0.00098; //Kleinevoß (K-FPC-2002)
G[18]:=6.67559; T[18]:=0.00027; //Quinn et al. (Q-FDEC-2001)
G[19]:=6.674215; T[19]:=0.000092; //Gundlach/Mer. (GM-AAF-2000)
G[20]:=6.6742; T[20]:=0.0007; //Fitzgerald/Arm.(FA-TB-1999a)
G[21]:=6.6746; T[21]:=0.001; //Fitzgerald/Arm.(FA-TB-1999b)
G[22]:=6.673; T[22]:=0.01; //Mohr PJ et al. (CODATA 1998)
G[23]:=6.67398; T[23]:=0.0007; //Bagley & Luther (BL-TS-1997)
G[24]:=6.6729; T[24]:=0.0005; //Karagioz/Iz. (KI-TS-1996)
G[25]:=6.67259; T[25]:=0.0003; //Standish (ST-STAT-1995)
G[26]:=6.67259; T[26]:=0.00085; //Cohen ER et al. (CODATA 1986)
G[27]:=6.6726; T[27]:=0.0005; //Luther/Towler (LT-TS-1982)
G[28]:=6.674485; T[28]:=0.0008; //Sagitov (S-TS-1979)
G[29]:=6.672; T[29]:=0.0041; //Cohen ER et al. (CODATA 1973)
G[30]:=6.6714; T[30]:=0.0006; //Pontiskis et al (P-TS-1972)
G[31]:=6.6732; T[31]:=0.0031; //Taylor BN et al.(CODATA 1969)
G[32]:=6.67; T[32]:=0.005; //Hayl PR (H-TB-1930)
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[1];
TopSplineCurve2:=Max_xx[2];
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[1]+StartIncrement_x*Increment*x1;
if Valeur<=ix[0]+StartIncrement_x then
x[1]:=ix[0]+StartIncrement_x
else
if Valeur>=ix[4]-3*StartIncrement_x then
x[1]:=ix[4]-3*StartIncrement_x
else
x[1]:=Valeur;
for x2:=-Range to Range do
begin
Valeur:=ix[2]+StartIncrement_x*Increment*x2;
if Valeur<=ix[1]+StartIncrement_x then
x[2]:=ix[1]+StartIncrement_x
else
if Valeur>=ix[4]-2*StartIncrement_x then
x[2]:=ix[4]-2*StartIncrement_x
else
x[2]:=Valeur;
for x3:=-Range to Range do
begin
Valeur:=ix[3]+StartIncrement_x*Increment*x3;
if Valeur<=ix[2]+StartIncrement_x then
x[3]:=ix[2]+StartIncrement_x
else
if Valeur>=ix[4]-StartIncrement_x then
x[3]:=ix[4]-StartIncrement_x
else
x[3]:=Valeur;
for y0:=-Range to Range do
begin
y[0]:=iy[0]+StartIncrement_y*Increment*y0;
for y1:=-Range to Range do
begin
y[1]:=iy[1]+StartIncrement_y*Increment*y1;
for y2:=-Range to Range do
begin
y[2]:=iy[2]+StartIncrement_y*Increment*y2;
for y3:=-Range to Range do
begin
y[3]:=iy[3]+StartIncrement_y*Increment*y3;
for y4:=-Range to Range do
begin
y[4]:=iy[4]+StartIncrement_y*Increment*y4;
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[0]:=6.6700; y[0]:=3.2; //Do not iterate on x[0], but on y[0] value
x[1]:=6.6729; y[1]:=8.5; //Iterate on x[1] and y[1] values
x[2]:=6.6730; y[2]:=8.4; //Iterate on x[2] and y[2] values
x[3]:=6.6733; y[3]:=10.6; //Iterate on x[3] and y[3] values
x[4]:=6.6763; y[4]:=-3.1; //Do not iterate on x[4], but on y[4] value
//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[0],ffFixed,15,15);
nbInt0.Caption:=FloatToStrF(y[0],ffFixed,15,15);
G1.Caption:=FloatToStrF(x[1],ffFixed,15,15);
nbInt1.Caption:=FloatToStrF(y[1],ffFixed,15,15);
G2.Caption:=FloatToStrF(x[2],ffFixed,15,15);
nbInt2.Caption:=FloatToStrF(y[2],ffFixed,15,15);
G3.Caption:=FloatToStrF(x[3],ffFixed,15,15);
nbInt3.Caption:=FloatToStrF(y[3],ffFixed,15,15);
G4.Caption:=FloatToStrF(x[4],ffFixed,15,15);
nbInt4.Caption:=FloatToStrF(y[4],ffFixed,15,15);
end; //End of TForm1.FormCreate
end.