Misplaced Pages

Talk:Global Positioning System: Difference between revisions

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.
Browse history interactively← Previous editNext edit →Content deleted Content addedVisualWikitext
Revision as of 03:31, 24 August 2013 editRHB100 (talk | contribs)Extended confirmed users2,197 edits Least squares method has replaced trilateration method and Multidimensional Newton Raphson method← Previous edit Revision as of 21:36, 24 August 2013 edit undoRHB100 (talk | contribs)Extended confirmed users2,197 edits Least squares method has replaced trilateration method and Multidimensional Newton Raphson methodNext edit →
Line 617: Line 617:


As for you, Martijn Meijering, you should find out the truth before making statements. When you say "is he still doing that", You are accusing me of having pushed personal research onto Misplaced Pages at some time in the past. Well you are an outright liar, I have never pushed personal research onto Misplaced Pages. Maybe we should nominate you as the outright liar of the week. You are an outright liar. I have never pushed personal research onto Misplaced Pages. ] (]) 03:31, 24 August 2013 (UTC) As for you, Martijn Meijering, you should find out the truth before making statements. When you say "is he still doing that", You are accusing me of having pushed personal research onto Misplaced Pages at some time in the past. Well you are an outright liar, I have never pushed personal research onto Misplaced Pages. Maybe we should nominate you as the outright liar of the week. You are an outright liar. I have never pushed personal research onto Misplaced Pages. ] (]) 03:31, 24 August 2013 (UTC)

==Application of numerical methods is not personal research==
In this era of high speed computers, the use of numerical methods is an indispensable tool of many engineers. Solution methods for many problems can be found in such books as "Numerical Recipes". Methods of solving the GPS navigation equations can be found in the chapter on root finding in this book. One such method is multidimensional Newton Raphson. In utilizing this method, the engineer may have to perform some work such as the evaluation of partial derivatives. When the engineer uses multidimensional Newton Raphson including the necessary evaluation of partial derivatives, the engineer is not performing personal research. The engineer is instead using a well known method to solve a given problem. The evaluation of partial derivatives is straightforward everyday work, there is no personal research involved.

Also the engineer may choose to use one dimensional Newton Raphson in conjunction with trilateration to solve the GPS navigation equations. This is a straightforward application of well known methods to a given problem. Again this is straightforward everyday work. There is no personal research involved.

We should therefore keep in mind that for the purposes of Misplaced Pages, the straightforward application of numerical methods to solve a given problem is certainly not personal research.

Revision as of 21:36, 24 August 2013

This is the talk page for discussing improvements to the Global Positioning System article.
This is not a forum for general discussion of the article's subject.
Article policies
Find sources: Google (books · news · scholar · free images · WP refs· FENS · JSTOR · TWL
Archives: 1, 2, 3, 4, 5, 6, 7, 8, 9Auto-archiving period: 30 days 
Former featured article candidateGlobal Positioning System is a former featured article candidate. Please view the links under Article milestones below to see why the nomination was archived. For older candidates, please check the archive.
Article milestones
DateProcessResult
January 10, 2007Featured article candidateNot promoted
August 9, 2009Peer reviewReviewed
Current status: Former featured article candidate
This article has not yet been rated on Misplaced Pages's content assessment scale.
It is of interest to the following WikiProjects:
Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
WikiProject iconSpaceflight High‑importance
WikiProject iconThis article is within the scope of WikiProject Spaceflight, a collaborative effort to improve the coverage of spaceflight on Misplaced Pages. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.SpaceflightWikipedia:WikiProject SpaceflightTemplate:WikiProject Spaceflightspaceflight
HighThis article has been rated as High-importance on the project's importance scale.
WikiProject iconMilitary history: Technology / North America / United States
WikiProject iconThis article is within the scope of the Military history WikiProject. If you would like to participate, please visit the project page, where you can join the project and see a list of open tasks. To use this banner, please see the full instructions.Military historyWikipedia:WikiProject Military historyTemplate:WikiProject Military historymilitary history
B checklist
This article has been checked against the following criteria for B-class status:
  1. Referencing and citation: criterion met
  2. Coverage and accuracy: criterion met
  3. Structure: criterion met
  4. Grammar and style: criterion met
  5. Supporting materials: criterion met
Associated task forces:
Taskforce icon
Military science, technology, and theory task force
Taskforce icon
North American military history task force
Taskforce icon
United States military history task force
WikiProject iconGeographical coordinates
WikiProject iconGlobal Positioning System is of interest to WikiProject Geographical coordinates, which encourages the use of geographical coordinates in Misplaced Pages. If you would like to participate, please visit the project page, where you can join the project and see a list of open tasks.Geographical coordinatesWikipedia:WikiProject Geographical coordinatesTemplate:WikiProject Geographical coordinatesGeographical coordinates
Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
WikiProject iconAviation
WikiProject iconThis article is within the scope of the Aviation WikiProject. If you would like to participate, please visit the project page, where you can join the project and see lists of open tasks and task forces. To use this banner, please see the full instructions.AviationWikipedia:WikiProject AviationTemplate:WikiProject Aviationaviation
B checklist
This article has been checked against the following criteria for B-class status:
  1. Referencing and citation: criterion met
  2. Coverage and accuracy: criterion met
  3. Structure: criterion met
  4. Grammar and style: criterion met
  5. Supporting materials: criterion met
Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
WikiProject iconSystems Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Systems, which collaborates on articles related to systems and systems science.SystemsWikipedia:WikiProject SystemsTemplate:WikiProject SystemsSystems
MidThis article has been rated as Mid-importance on the project's importance scale.
Taskforce icon
This article is not associated with a particular field. Fields are listed on the template page.
WikiProject iconOrienteering (inactive)
WikiProject iconThis article is within the scope of WikiProject Orienteering, a project which is currently considered to be inactive.OrienteeringWikipedia:WikiProject OrienteeringTemplate:WikiProject OrienteeringOrienteering

Template:WikiProject Maritime Trades

Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
WikiProject iconTelecommunications Mid‑importance
WikiProject iconThis article is within the scope of WikiProject Telecommunications, a collaborative effort to improve the coverage of Telecommunications on Misplaced Pages. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.TelecommunicationsWikipedia:WikiProject TelecommunicationsTemplate:WikiProject TelecommunicationsTelecommunications
MidThis article has been rated as Mid-importance on the project's importance scale.
Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
WikiProject iconGeocaching High‑importance
WikiProject iconThis article is within the scope of WikiProject Geocaching, a collaborative effort to improve the coverage of Geocaching on Misplaced Pages. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.GeocachingWikipedia:WikiProject GeocachingTemplate:WikiProject GeocachingGeocaching
HighThis article has been rated as High-importance on the project's importance scale.
Please add the quality rating to the {{WikiProject banner shell}} template instead of this project banner. See WP:PIQA for details.
WikiProject iconMaps
WikiProject iconThis article is within the scope of WikiProject Maps, a collaborative effort to improve the coverage of Maps and Cartography on Misplaced Pages. If you would like to participate, please visit the project page, where you can join the discussion and see a list of open tasks.MapsWikipedia:WikiProject MapsTemplate:WikiProject MapsMaps
???This article has not yet received a rating on the project's importance scale.
Template:WP1.0
A fact from this article was featured on Misplaced Pages's Main Page in the On this day section on February 14, 2005, February 14, 2006, February 14, 2007, and February 14, 2008.
Archiving icon
Archives


This page has archives. Sections older than 30 days may be automatically archived by Lowercase sigmabot III when more than 4 sections are present.

Economic impact

Hey everyone, I was wondering if readers might benefit from a section on the economic impact of the GPS system since the U.S. government made it freely accessible? Jodayagi (talk) 19:31, 9 May 2013 (UTC)

Excellent suggestion! I look forward to reading it and seeing if I can find anything to add. —EncMstr (talk) 21:13, 9 May 2013 (UTC)

Talk about spheres

I believe just about everything in this section is wrong: http://en.wikipedia.org/Global_Positioning_System#Basic_concept_of_GPS

GPS receivers don't have atomic clocks (although the satellites do), so they can't use the time a signal was emitted from a satellite to determine a fixed sphere they are on. Rather, you know that the *difference* in times between two satellites puts you on a hyperboloid.

My understanding it that this is the real reason you need 4 satellites. The 4th satellite doesn't distinguish between 2 points (which are at the intersection of 3 sphere, it's the extra variable to make up for the fact that you don't know the absolute time (only time differences). Ambiguity between just two (or three or four) discrete points in space is probably resolved by assuming you're on the surface of the Earth. Jess (talk) 21:21, 19 August 2013 (UTC)

That section does not say that GPS receivers use atomic clocks, and does say it precisely timing the signals sent by satellites. Can you point to any specific incorrect fact?
Also, there is no need to resolve sphere overlap ambiguity when there are four or more satellite signals. —EncMstr (talk) 22:33, 19 August 2013 (UTC)

Articles relating GPS and Trilateration

Woodstone has said "remove doubtful method with shaky refs". This is tottally and completely false. This section shows that the method involving trilateration and one dimensional iteration has good references. The next section shows that this method most certainly works.

There are many articles relating GPS and Trilateration as can be seen at GPS and Trilateration articles. Unfortunately most of these articles seemed to be dumbed down, they talk about circles instead of spheres as if the concept of a sphere were too difficult to comprehend.

One of the better articles in my opinion is "Position Determination with GPS".

It is not difficult to understand that there are so many such articles since one of the fundamental principles in GPS is the determination of location in part by determining the intersections of three spheres. Once the clock error has been approximately driven to zero so that four spheres intersect approximately, an estimate of position will have been obtained.

This is the reason why trilateration as a part of numerical root finding (i.e. finding the value of b which drives da to zero through an iterative process) is one of the two methods discussed in Position calculation, advanced.

Another method discussed is multidimensional root finding. This method does not involve the use of trilateration.

It should be kept in mind that these methods are discussed on the conceptual level. They are not descriptions of algorithms.

The Bancroft method is in my opinion the best method. RHB100 (talk) 19:48, 20 August 2013 (UTC)

The problem of course being that nobody actually uses the Bancroft method in computing position solutions. Batch linearized least squares is more than enough to get the job done, even from cold start-- if you provide an a priori receiver solution of {0, 0, 0} (in ECEF) it will still converge in 2-3 iterations. It seems inappropriate both to have Bancroft be the first method mentioned, and really even to include it in the article at all. siafu (talk) 20:03, 20 August 2013 (UTC)

The Bancroft is a method that involves least squares. The term "batch linearized least squares" is inadequate to describe what you're talking about. You say 2-3 iterations but the Bancroft method requires no iterations. RHB100 (talk) 00:15, 21 August 2013 (UTC)

Whether or not the Bancroft method requires iteration is irrelevant; the fact is that it's little more than a mathematical curiosity not actually applied in GPS technology except in a few rare cases. And yes, "batch linearized least squares" is more than enough to describe what I'm talking about. Linearize the system, in this case the range equations, and solve the overdetermined set of pseudoranges using a batch filter (i.e., ingesting all measurements at once as opposed to something like a Kalman filter). If you're unfamiliar with this, the math is laid out quite clearly in Linear least squares (mathematics) and the application to GPS is done in basically every GPS textbook. Rather than continuing the harp on about how wonderful the Bancroft method is, you could provide some sources to show that it's actually notable in the GPS community. siafu (talk) 17:32, 21 August 2013 (UTC)

First you talk about a method which requires 2-3 iterations. But then you refer to Linear least squares (mathematics). But linear least squares provides a closed form solution which implies zero iterations. So what you say is self contradictory. Now I am a licensed professional engineer with many years of experience and I find thw words "batch linearized least squares" to be vague and ambiguous and I have certainly studied and used linearized least squares. Now if these words do not clearly describe to me the computational steps you are talking about, then they are certainly likely to confuse the typical reader. RHB100 (talk) 20:01, 21 August 2013 (UTC)

Yes, I've heard you relate your list of qualifications before. I am myself a published research engineer specializing in GPS. As for least squares, you clearly neither read the article nor are apparently familiar with the topic. The least squares method for overdetermined systems is an iterative one, arriving at progressively more accurate estimates, assuming that the initial point was within the linear region of the system in question. See page 15, here: http://www.nbmg.unr.edu/staff/pdfs/Blewitt%20Basics%20of%20gps.pdf . Again, do you have any sources at all that indicate that the Bancroft method is anything more than just an elegant but completely non-notable solution? siafu (talk) 20:34, 21 August 2013 (UTC)

References 92 and 93 are given for the Bancroft method, one of which is in an IEEE publication and the other is free. These should certainly be adequate. What references do you have critical of the Bancroft method? How does the method you are talking about differ from what is called "Multidimensional Newton-Raphson calculations" in the Misplaced Pages GPS article and what is also discussed in the paper called, "The Mathematics of GPS" by Richard B. Langley of the University of New Brunswick? Once I understand the method you are talking about, then we can discuss the advantages and disadvantages as compared to the Bancroft method. RHB100 (talk) 21:02, 21 August 2013 (UTC)

Discussing the advantages and disadvantages of the Bancroft method is exactly what we should not be doing, see WP:OR. I don't need a reference that's critical of the Bancroft method; I'm not saying it's a bad method or that the article should say it's a bad method. I'm saying nobody every uses it. It's not used in precise positioning applications, it's not used in orbit determination, it's not used in navigation. Why do we have a section on it? The article needs to reflect the expert consensus, and experts are not particularly interested in Bancroft's method. siafu (talk) 22:04, 21 August 2013 (UTC)

Well we don't know whether what you say is true or not. If something is wrong with the Bancroft method then we need a reference and a discussion so that everybody will know. RHB100 (talk) 23:38, 21 August 2013 (UTC)

Can you or can you not provide any support at all for the assertion that the Bancroft method is notable in the GPS community as a method used for obtaining position solutions? It is not at all my responsibility to demonstrate that it isn't. Furthermore, I mentioned that you could read about how it's actually done in any GPS textbook, and went so far as to give you one link already. I also recommend Global Positioning System: Signals, Measurements, and Performance by P. Misra and P. Enge, as it's the one used when I took intro to GNSS years ago. You could also try Understanding GPS: Principles and Applications, Second Edition by E. Kaplan and C. Hegarty, which I actually prefer. There is nothing "wrong" with the Bancroft method, but it's just not widely used, and one has to wonder why the section on navigation equations does not provide a realistic discussion of the topic, or at least one that is recognizable to an expert in the field. siafu (talk) 05:55, 22 August 2013 (UTC)

I don't know how many times I have to keep repeating this to you but the fact the Bancroft method was published in an IEEE publication is more than adequate to show its notability. The fact that it was also published in an online paper also shows its notability. RHB100 (talk) 18:57, 22 August 2013 (UTC)

The fact that it's published in IEEE means only that it exists and it's a real thing. Why should it be in the article? Do we have similar sections on ARAIM, for example? It's certainly published in IEEE . Bancroft's method deserves maybe two sentences given the current weight given to methods actually in use in GPS. The fact that there's a section that says "Additional methods for more than four satellites" is itself absurd. Except in rare cases (indoors, urban canyons) receivers will invariably see more than four satellites, and the idea that they would ever implement a scheme that fails to take advantage of more than 4 satellites is patently ridiculous. Unless you are able to provide a source indicating that Bancroft's method is not just an extant method but of actual note in the actual GPS community, then the section needs a major rewrite, which I plan to do this weekend. siafu (talk) 01:56, 23 August 2013 (UTC)

Code and results from using trilateration and one dimensional root finding

Woodstone has said "remove doubtful method with shaky refs". This is tottally and completely false. This section shows that the method involving trilateration and one dimensional iteration most certainly works. The previous section has shown that this method has good references.

There have been some who have expressed some doubt as to whether the method involving trilateration and one dimensional root finding as discussed in the GPS article would work. It is hoped that this section will clarify that misunderstanding by showing that this method certainly does work. The results of running a Fortran program which uses this method can be seen by clicking show on the bar labelled "Results from using trilateration and one dimensional root finding". Three of the routines that comprise the Fortran program can be seen by clicking show on the indicated bars below. Two of the subroutines, subroutines zbrac and rtbis, cannot be shown because they are protected by copyright. These subroutines can be found in the book on Numerical Recipes. The subroutine zbrac performs the task of finding a bracket for the solution given an initial guess. The subroutine rtbis performs the task of making a binary search to find a small enough bracket of the solution to meet the specified accuracy.

The results below show for each case the positions and psuedoranges of the three satellites which are used for trilateration and the one satellite which is not used for trilateration. The solution, the receiver position is then shown along with RBIAS which is the bias in dimensions of distance rather than time. RHB100 (talk) 21:14, 24 April 2010 (UTC)

Results from using trilateration and one dimensional root finding
 Trilateration Satellites
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 1    15524471.180   -16649826.220    13512272.390    22262088.180
 2    -2304058.534   -23287906.470    11917038.110    19908187.050
 3   -14799931.400   -21425358.240     6069947.224    21479180.580
 Non-trilateration Satellite
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 4    16680243.360    -3069625.561    20378551.050    24554242.170
                  X 	       Y 	   Z      RBIAS
 Solution =    -733186.0  -5443792.0   3231193.0 -300.0

STOP Normal completion in routine main of gps.


$ ./gps.exe

 Trilateration Satellites
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 1    15524471.180   -16649826.220    13512272.390    22262088.180
 2    -2304058.534   -23287906.470    11917038.110    19908187.050
 4    16680243.360    -3069625.561    20378551.050    24554242.170
 Non-trilateration Satellite
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 3   -14799931.400   -21425358.240     6069947.224    21479180.580
                  X 	       Y 	   Z      RBIAS
 Solution =    -733186.0  -5443792.0   3231193.0 -300.0

STOP Normal completion in routine main of gps.


$ ./gps.exe

 Trilateration Satellites
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 1    15524471.180   -16649826.220    13512272.390    22262088.180
 3   -14799931.400   -21425358.240     6069947.224    21479180.580
 4    16680243.360    -3069625.561    20378551.050    24554242.170
 Non-trilateration Satellite
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 2    -2304058.534   -23287906.470    11917038.110    19908187.050
                  X 	       Y 	   Z      RBIAS
 Solution =    -733186.0  -5443792.0   3231193.0 -300.0

STOP Normal completion in routine main of gps.


$ ./gps.exe

 Trilateration Satellites
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 2    -2304058.534   -23287906.470    11917038.110    19908187.050
 3   -14799931.400   -21425358.240     6069947.224    21479180.580
 4    16680243.360    -3069625.561    20378551.050    24554242.170
 Non-trilateration Satellite
Sat #     X 	            Y 	           Z 	 	PSUEDORANGE               
 1    15524471.180   -16649826.220    13512272.390    22262088.180
                  X 	       Y 	   Z      RBIAS
 Solution =    -733186.0  -5443792.0   3231193.0 -300.0

STOP Normal completion in routine main of gps. $


The main routine reads in and writes out the data. A call to trilat and a function evaluation of dacomp help to provide initial estimates of a bounding bracket between BIAS1 and BIAS2. A call to zbrac modifies BIAS1 and BIAS2 if necessary to assure that the solution is bracketed. The subroutine rtbis returns with the solution, RGBIAS, which is the value of the argument of function dacomp required to cause the function to evaluate close enough to zero to satisfy the specified accuracy requirement.

MAIN FORTRAN ROUTINE
      IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C        1         2         3         4         5         6         7
C 3456789012345678901234567890123456789012345678901234567890123456789012
C
	EXTERNAL DACOMP
	DOUBLE PRECISION XSAT(5), YSAT(5), ZSAT(5), PRANGE(3), ERRMAT(3)
	DOUBLE PRECISION ERRTOT(2), SATTIM(3), RSAT(5,3), R4(2), DAA(2)
	CHARACTER HEAD1*70, HEAD2*70
	LOGICAL SUCCES
	COMMON /COMMDA/ RSAT, PRANGE, SATTIM, PRANTI
	INW = 25
	IOUT = 45
	CLIGHT = 299792458. ! meters per second
      OPEN(UNIT = INW, FILE = 'sat_position_prange.txt'
     2 , FORM='FORMATTED', ACTION='READ', STATUS='OLD')
      OPEN(UNIT = IOUT, FILE = 'out1.txt'
     2 , FORM='FORMATTED', ACTION='WRITE', STATUS='UNKNOWN')
	READ(INW,*) I_TIME, HEAD2 
! Satellite I_TIME is not for trilateration but for clock correction
C	WRITE(6,*) ' Satellite ', I_TIME, HEAD2
       READ(INW, *) HEAD1
       WRITE(6,*) ' Trilateration Satellites'
	WRITE( 6, *) HEAD1
	K = 1
	DO 10, I=1,4 ! Read header lines and data
	  IF(I .NE. I_TIME) THEN
            READ(INW, *)  ISAT, (RSAT(K,J), J=1,3), PRANGE(K)
            WRITE( 6,'(1X,I2,4F16.3)') I, (RSAT(K,J), J=1,3), PRANGE(K)
	    K = K + 1
	  ELSE
            READ(INW, *)  ISAT, (SATTIM(J), J=1,3), PRANTI
	  END IF
10	CONTINUE
	WRITE(6,*) '  '
       WRITE(6,*) ' Non-trilateration Satellite'
 	WRITE( 6, *) HEAD1
       WRITE( 6,'(1X,I2,4F16.3)')I_TIME, (SATTIM(J), J=1,3), PRANTI
	READ (INW,*) IPRINT, HEAD2
C	WRITE(6,*) ' IPRINT = ', IPRINT
	CLOSE(INW)
C	CALL TRILAT( XSAT, YSAT, ZSAT, PRANGE, NSOLNS)
	CALL TRILAT( RSAT(1,1), RSAT(1,2), RSAT(1,3), PRANGE, NSOLNS)
C	WRITE(6,*) ' RSAT= ' , RSAT
	DO 50 I=4,5 ! Distance to 4th sphere for solutions in 4 & 5
	  SQUARE = 0.0
	    DO 47 J=1,3 ! X, Y, Z components
		SQUARE = SQUARE + (  RSAT(I,J) - SATTIM(J)  )**2
47	    CONTINUE
	    R4(I-3)  = SQRT( SQUARE )
	    DAA(I-3) = R4(I-3) - PRANTI
50	CONTINUE
	IF( ABS(DAA(1)) .LE. ABS(DAA(2)) ) THEN !Closest solution
	  DA = DAA(1)
	  ISOLN = 1
	ELSE
	  DA = DAA(2)
	  ISOLN = 2
	END IF
	BIAS1 = DA
	BIAS2 = DACOMP ( BIAS1 )
      CALL ZBRAC(DACOMP, BIAS1, BIAS2, SUCCES)
      XACC = 0.01
      RGBIAS = RTBIS(DACOMP,BIAS1,BIAS2,XACC)
      WRITE(6,*) ' '
      WRITE(6,*)  '                  X 	       Y 	   Z      RBIAS'
      WRITE(6,150) ' Solution = ', (RSAT(ISOLN+3,J), J=1,3), RGBIAS
      CLOSE(IOUT)
      STOP ' Normal completion in routine main of gps.'
150   FORMAT(1X,A12,3F12.1, F7.1)
200   FORMAT(I3)
      END


The subroutine trilat computes any intersections of three surfaces given the sphere centers and radii as described in trilateration.

SUBROUTINE TRILAT
 	SUBROUTINE TRILAT( X0, Y0, Z0, RADIUS, NSOLNS )
C
C        1         2         3         4         5         6         7
C 3456789012345678901234567890123456789012345678901234567890123456789012
C
C TRILATERATION FINDS INTERSECTIONS OF SURFACES OF SPHERES
C  SPHERES CENTERED AT X0(I), Y0(I), AND Z0(I) WITH RADII, R(I)
        IMPLICIT DOUBLE PRECISION (A-H,O-Z)
	DOUBLE PRECISION X0(5), Y0(5), Z0(5), RADIUS(3)
	DOUBLE PRECISION X1(5), Y1(5), Z1(5), X2(5), Y2(5), Z2(5)
	DOUBLE PRECISION X3(5), Y3(5), Z3(5), X4(5), Y4(5), Z4(5)
	DOUBLE PRECISION ERRMAT(3)
C          WRITE( 6, * ) 'NOW IN SUBROUTINE TRILAT'
C	DO 10, I=1,3 ! Write data
C          WRITE( 6, * ) I, X0(I), Y0(I), Z0(I), RADIUS(I)
C10	CONTINUE
C Translate coordinate system so as to put center of sphere 1, p1, at	
C  origin.  That is compute expression of vectors, VP2 and VP3 in
C  coordinate system 1.
	DO 20, I=2,3
	  X1(I) = X0(I) - X0(1) 
	  Y1(I) = Y0(I) - Y0(1) 
	  Z1(I) = Z0(I) - Z0(1) 
20	CONTINUE
C First sphere center, P1, remains at origin, since all axes intersect
C  at origin.
	  X1(1) = 0.0
	  Y1(1) = 0.0 
	  Z1(1) = 0.0 
	  X2(1) = 0.0
	  Y2(1) = 0.0 
	  Z2(1) = 0.0 
	  X3(1) = 0.0
	  Y3(1) = 0.0 
	  Z3(1) = 0.0 
	  X4(1) = 0.0
	  Y4(1) = 0.0 
	  Z4(1) = 0.0 
C	DO 22, I=1,3 ! Write data
C          WRITE( 6, * ) I, 'CS1 = ', X1(I), Y1(I), Z1(I)
C22	CONTINUE
C Compute 1st coordinate system rotation angle, ALAMBD, required
C  to set the y component of P2 to zero, that is make Y2(2) zero.
C This rotation is about the positive Z1 axis.
	IF ( (Y1(2) .NE. 0.0) .OR. (X1(2) .NE. 0.0) ) THEN
	  ALAMBD = ATAN2( Y1(2), X1(2) )
	  CLAM = COS(ALAMBD)
	  SLAM = SIN(ALAMBD)
	ELSE
	  ALAMBD = 0.0
	  CLAM = 1.
	  SLAM = 0.
	END IF
	DO 30 I=2,3
	  X2(I) =  X1(I)*CLAM + Y1(I)*SLAM
	  Y2(I) = -X1(I)*SLAM + Y1(I)*CLAM
	  Z2(I) =  Z1(I)
30	CONTINUE
C	DO 32, I=1,3 ! Write data
C          WRITE( 6, * ) I, 'CS2 = ', X2(I), Y2(I), Z2(I)
C32	CONTINUE
CC	VP2MAG = SQRT( X2(2)**2 + Y2(2)**2 + Z2(2)**2 )
CC	VP2MAG = SQRT( X2(2)**2 + Z2(2)**2 )
C Compute 2nd coordinate system rotation angle, PHI, required
C  to put P2 on X axis.  That is make Z3(2) zero.
C This rotation is about the negative Y2 axis.
	IF ( Z2(2) .NE. 0.0 ) THEN
	  VP2MAG = SQRT( X2(2)**2 + Z2(2)**2 )
	  PHI = ASIN(Z2(2) / VP2MAG)
	  CPHI = COS(PHI)
	  SPHI = SIN(PHI)
	ELSE
	  PHI =  0.
	  CPHI = 1.
	  SPHI = 0.
	END IF
	DO 40 I=2,3
	  X3(I) =  X2(I)*CPHI + Z2(I)*SPHI
	  Y3(I) =  Y2(I)
	  Z3(I) = -X2(I)*SPHI + Z2(I)*CPHI
40	CONTINUE
C	DO 42, I=1,3 ! Write data
C          WRITE( 6, * ) I, 'CS3 = ', X3(I), Y3(I), Z3(I)
C42	CONTINUE
C Compute 3rd coordinate system rotation angle, THETA, required
C  to make Z compenent of P3 zero.
C This rotation is aboutthe -X3 axis.
	IF ( (Z3(3) .NE. 0.0) .OR. ( Y3(3) .NE. 0.0) ) THEN
CCC	VP3MAG = SQRT( X3(3)**2 + Y3(3)**2 )
	  THETA = ATAN2( Z3(3), Y3(3) )
	  CTHETA = COS(THETA)
	  STHETA = SIN(THETA)
	ELSE
	  THETA =  0.
	  CTHETA = 1.
	  STHETA = 0.
	END IF
	DO 50 I=2,3
	  X4(I) =  X3(I)
	  Y4(I) =  Y3(I)*CTHETA + Z3(I)*STHETA
	  Z4(I) = -Y3(I)*STHETA + Z3(I)*CTHETA
50	CONTINUE
C          WRITE( 6, * ) 'STILL IN SUBROUTINE TRILAT'      C
C	DO 52, I=1,3 ! Write data
C          WRITE( 6, * ) I, 'CS4 = ', X4(I), Y4(I), Z4(I)
C52	CONTINUE
C Now find intersections of 3 sphere surfaces expressed in 
C  coordinatesystem 3.
	D = X4(2)
	D_SQR = D**2
	R1_SQR = RADIUS(1)**2
	R2_SQR = RADIUS(2)**2
	R3_SQR = RADIUS(3)**2
	AI = X4(3)
	AJ = Y4(3)
	X = ( R1_SQR - R2_SQR + D_SQR ) / (2.*D)
	X_SQR = X**2
	Y = (R1_SQR - R3_SQR - X_SQR + (X - AI)**2 + AJ**2) /(2.*AJ)
	Y_SQR = Y**2
	Z_SQR = R1_SQR - X_SQR - Y_SQR
	IF(Z_SQR .GT. 0.0) THEN
	  NSOLNS = 2
	  ZP = SQRT(Z_SQR)
	  ZM = -ZP
	ELSE IF (Z_SQR .EQ. 0.0) THEN
	  NSOLNS = 1
	  ZP = 0.0
	  ZM = 0.0
	ELSE
	  NSOLNS = 0
	END IF
C	WRITE(6,*) NSOLNS, ' solutions with X, Y, ZP, ZM = '
C     2               , X, Y, ZP, ZM
C Verify solutions
C	ERRMAT(1) = RADIUS(1) - SQRT( (X-X4(1))**2 +  (Y-Y4(1))**2 
C     2       +  (ZP-Z4(1))**2 )
C	ERRMAT(2) = RADIUS(2) - SQRT( (X-X4(2))**2 +  (Y-Y4(2))**2 
C     2       +  (ZP-Z4(2))**2 )
C	ERRMAT(3) = RADIUS(3) - SQRT( (X-X4(3))**2 +  (Y-Y4(3))**2 
C     2       +  (ZP-Z4(3))**2 )
C	WRITE(6,*) ' Errors = ', (ERRMAT(I), I=1,3)
	X4(4) = X
	Y4(4) = Y
	Z4(4) = ZP
	X4(5) = X
	Y4(5) = Y
	Z4(5) = ZM
	DO 60 I=4,5
	  X3(I) =  X4(I)
	  Y3(I) =  Y4(I)*CTHETA - Z4(I)*STHETA
	  Z3(I) =  Y4(I)*STHETA + Z4(I)*CTHETA
60	CONTINUE
C	ERRMAT(1) = RADIUS(1) - SQRT( (X3(4)-X3(1))**2 
C     2       + (Y3(4)-Y3(1))**2 + (Z3(4)-Z3(1))**2 )
C	ERRMAT(2) = RADIUS(2) - SQRT( (X3(4)-X3(2))**2  
C     2       + (Y3(4)-Y3(2))**2 + (Z3(4)-Z3(2))**2 )
C	ERRMAT(3) = RADIUS(3) - SQRT( (X3(4)-X3(3))**2  
C     2       + (Y3(4)-Y3(3))**2 + (Z3(4)-Z3(3))**2 )
C	WRITE(6,*) ' Errors X3 = ', (ERRMAT(I), I=1,3)
	DO 70 I=4,5
	  X2(I) =  X3(I)*CPHI - Z3(I)*SPHI
	  Y2(I) =  Y3(I)
	  Z2(I) =  X3(I)*SPHI + Z3(I)*CPHI
70	CONTINUE
C	ERRMAT(1) = RADIUS(1) - SQRT( (X2(4)-X2(1))**2 
C     2       + (Y2(4)-Y2(1))**2 + (Z2(4)-Z2(1))**2 )
C	ERRMAT(2) = RADIUS(2) - SQRT( (X2(4)-X2(2))**2  
C     2       + (Y2(4)-Y2(2))**2 + (Z2(4)-Z2(2))**2 )
C	ERRMAT(3) = RADIUS(3) - SQRT( (X2(4)-X2(3))**2  
C     2       + (Y2(4)-Y2(3))**2 + (Z2(4)-Z2(3))**2 )
C	WRITE(6,*) ' Errors X2 = ', (ERRMAT(I), I=1,3)
	DO 80 I=4,5
	  X1(I) =  X2(I)*CLAM - Y2(I)*SLAM
	  Y1(I) =  X2(I)*SLAM + Y2(I)*CLAM
	  Z1(I) =  Z2(I)
80	CONTINUE
C	ERRMAT(1) = RADIUS(1) - SQRT( (X1(4)-X1(1))**2 
C     2       + (Y1(4)-Y1(1))**2 + (Z1(4)-Z1(1))**2 )
C	ERRMAT(2) = RADIUS(2) - SQRT( (X1(4)-X1(2))**2  
C     2       + (Y1(4)-Y1(2))**2 + (Z1(4)-Z1(2))**2 )
C	ERRMAT(3) = RADIUS(3) - SQRT( (X1(4)-X1(3))**2  
C     2       + (Y1(4)-Y1(3))**2 + (Z1(4)-Z1(3))**2 )
C	WRITE(6,*) ' Errors X1 = ', (ERRMAT(I), I=1,3)
	DO 90, I=4,5
	  II3 = I-3
	  X0(I) = X1(I) + X0(1) 
 	  Y0(I) = Y1(I) + Y0(1) 
	  Z0(I) = Z1(I) + Z0(1)
90	CONTINUE
C	WRITE(6,*) ' X0 = ', (X0(I), I=1,5)
C	WRITE(6,*) ' Y0 = ', (Y0(I), I=1,5)
C	WRITE(6,*) ' Z0 = ', (Z0(I), I=1,5)
C	WRITE(6,*) ' Now leaving subroutine TRILAT. '
	RETURN
	END


The function dacomp computes the closest distance from three surface intersections to the fourth sphere surface as a function of its argument, a range bias.

FUNCTION DACOMP
 	FUNCTION DACOMP ( BIAS )
	IMPLICIT DOUBLE PRECISION (A-H,O-Z)
C        1         2         3         4         5         6         7
C 3456789012345678901234567890123456789012345678901234567890123456789012
C
	DOUBLE PRECISION PRANGE(3), ERRMAT(3), PRTEMP(3)
	DOUBLE PRECISION ERRTOT(2), SATTIM(3), RSAT(5,3), R4(2), DAA(2)
	COMMON /COMMDA/ RSAT, PRANGE, SATTIM, PRANTI 
	DO 10 I=1,3
	  PRTEMP(I) = PRANGE(I) + BIAS
10	CONTINUE
	PTMTMP = PRANTI + BIAS
	CALL TRILAT( RSAT(1,1), RSAT(1,2), RSAT(1,3), PRTEMP, NSOLNS)
	DO 40 I=4,5 ! Compute errore for each of 2 solutions
	    DO 35 J=1,3   ! Compute distances to J=1,2,3 satellites
	      SQUARE = 0.0
	        DO 33 K=1,3 ! X, Y, Z components of error
	          SQUARE = SQUARE + (  RSAT(I,K) - RSAT(J,K)  )**2
33	        CONTINUE
	      ERRMAT(J) = PRTEMP(J) - SQRT( SQUARE )
35	    CONTINUE
	    ERRTOT(I-3) = SQRT( ERRMAT(1)**2 +  ERRMAT(2)**2 +
     2       ERRMAT(3)**2 )
40	CONTINUE
	IF( (ERRTOT(1) .GE. 1.E-6) .OR. (ERRTOT(2) .GE. 1.E-6)  ) THEN
	  WRITE(6,*) ' Excessive trilateration error '	    
	  WRITE(6,*) ' ERRTOT = ', (ERRTOT(I), I=1,2)
	  IPRINT = 1
	END IF
	DO 50 I=4,5 ! Distance to 4th sphere for solutions in 4 & 5
	  SQUARE = 0.0
	    DO 47 J=1,3 ! X, Y, Z components
		SQUARE = SQUARE + (  RSAT(I,J) - SATTIM(J)  )**2
47	    CONTINUE
	    R4(I-3)  = SQRT( SQUARE )
	    DAA(I-3) = R4(I-3) - PTMTMP
50	CONTINUE
	IF( ABS(DAA(1)) .LE. ABS(DAA(2)) ) THEN
	  DA = DAA(1)
	  ISOLN = 1
	ELSE
	  DA = DAA(2)
	  ISOLN = 2
	END IF
C	WRITE(6,*) ' R4 = ', (R4(I), I=1,2)
C	WRITE(6,*) ' DAA = ', (DAA(I), I=1,2)
C	WRITE(6,*) ' Solution ', ISOLN, ' is closest.', ' DA = ', DA
	DACOMP = DA
	RETURN
	END


RHB100 (talk) 19:48, 20 August 2013 (UTC)

How do you feel about putting all the code on Wikisource? —EncMstr (talk) 20:17, 20 August 2013 (UTC)

Right off the top of my head,I say that I would be glad to do it if they want it. But I don't know too much about Wikisource. RHB100 (talk) 00:21, 21 August 2013 (UTC)

It is of no importance if the method works or not (I actually do not doubt it does for the special case of 4 satellites). What counts is whether it's really used in GPS devices on the market. The latter I sincerely doubt, because of its inherent asymmetry and limitation to 4 satellites. Practical algorithms in devices would use all available satellites in a symmetric way. The references given now are popular naive approaches and generic root finding. So could you point out a reference stating its professional implementation in devices? −Woodstone (talk) 07:13, 22 August 2013 (UTC)

It is important to show that the method works because by so doing it shows that your use of the words "doubtful method" in reference to this method are false and untrue. It is necessary to show that it works in order to make clear that your statement is totally false and untrue. More than adequate references have already been given. RHB100 (talk) 18:40, 22 August 2013 (UTC)

Please read up on wikipedia policies, particularly the injuction against original research, which is exactly what this is. siafu (talk) 01:59, 23 August 2013 (UTC)

Least squares method has replaced trilateration method and Multidimensional Newton Raphson method

The least squares and the multidimensional Newton Raphson methods are very similar. In fact the method of updating the estimated solution from one iteration to the next appears to be identical for the case of four satellites. Thus we have algorithms, one developed from the discipline of numerical analysis and the other developed from the discipline of statistics which are very similar. One difference is that the multidimensional Newton Raphson method in its current form does not include the case of more than four satellites. Thus it appears that we can concentrate on the least squares method.

One thing I would like to point out is that the accusation that I engaged in personal research in writing the sections on the Multidimensional Newton Raphson method and the Trilateration method are false. I have formulated the problem to be solved and then selected the appropriate method from "Numerical Recipes" to obtain the solution. The Misplaced Pages guidelines allow the use of known facts to establish other facts and this is exactly what I have done. — Preceding unsigned comment added by RHB100 (talkcontribs) 18:13, 23 August 2013 (UTC)

Misplaced Pages does not rely on the expertise of editors, but rather the reliability of sources. To prove your point on the trilateration issue, the proper approach would be to look through the literature and find a source that confirms that it works, NOT to try and implement it yourself and show that it works, which is original research. Look at it this way; supposing you presented some gobbledegook FORTRAN code and fudged results that looked right. It would require other experts to look through all the code attempt to do it themselves to invalidate the claim, and such experts cannot be relied upon to exist here on wikipedia. siafu (talk) 18:53, 23 August 2013 (UTC)
I can't count the number of times that this one particular user RHB100 has tried to push his personal research into Misplaced Pages onto this article. The talk page archives talk for themselves. "Personal research" is not just an accusation — it is documented fact on the archives and history of Talk:Global Positioning System and User talk:RHB100. - DVdm (talk) 19:38, 23 August 2013 (UTC)

These accusations by DVdm are false. When he says that I have tried to push personal research into Misplaced Pages, he is a liar an outright liar and nothing but a liar. I stongly resent these false accusations by DVdm. He is an outright liar. DVdm through his ignorance doesn't understand that Misplaced Pages policy allows the use of mathematical facts to establish other mathematical facts. RHB100 (talk) 03:31, 24 August 2013 (UTC)

Goodness, is he still doing that after all these years? Maybe we should nominate him for a topic ban. Martijn Meijering (talk) 22:01, 23 August 2013 (UTC)

As for you, Martijn Meijering, you should find out the truth before making statements. When you say "is he still doing that", You are accusing me of having pushed personal research onto Misplaced Pages at some time in the past. Well you are an outright liar, I have never pushed personal research onto Misplaced Pages. Maybe we should nominate you as the outright liar of the week. You are an outright liar. I have never pushed personal research onto Misplaced Pages. RHB100 (talk) 03:31, 24 August 2013 (UTC)

Application of numerical methods is not personal research

In this era of high speed computers, the use of numerical methods is an indispensable tool of many engineers. Solution methods for many problems can be found in such books as "Numerical Recipes". Methods of solving the GPS navigation equations can be found in the chapter on root finding in this book. One such method is multidimensional Newton Raphson. In utilizing this method, the engineer may have to perform some work such as the evaluation of partial derivatives. When the engineer uses multidimensional Newton Raphson including the necessary evaluation of partial derivatives, the engineer is not performing personal research. The engineer is instead using a well known method to solve a given problem. The evaluation of partial derivatives is straightforward everyday work, there is no personal research involved.

Also the engineer may choose to use one dimensional Newton Raphson in conjunction with trilateration to solve the GPS navigation equations. This is a straightforward application of well known methods to a given problem. Again this is straightforward everyday work. There is no personal research involved.

We should therefore keep in mind that for the purposes of Misplaced Pages, the straightforward application of numerical methods to solve a given problem is certainly not personal research.

Categories:
Talk:Global Positioning System: Difference between revisions Add topic