Following on from the above, can someone check to ensure that I have correct figures and that I am doing this right because the figures are coming up incorrect when I run them through a java multilateration program that I got of the paper below (pdf attached). (I converted to java to work with my software)

The figures I get are

x=0

ti=19.0

tk=24.0

tj=24.0

tl=28.0

x=0
y=-49
z=0

package DataCalculations;import java.lang.Math;public class Multilateration { public double calcCord(int rNum, char cord) { OrgData og = new OrgData(); double ti = og.getValue(rNum), tk = og.getValue(rNum + 1), tj = og .getValue(rNum + 2), tl = og.getValue(rNum + 3); // invoke toa figures from database System.out.println("\nti="+ti); System.out.println("\ntk="+tk); System.out.println("\ntj="+tj); System.out.println("\ntl="+tl); double xi = 1, xk = 0, xj = 10, xl =0; double yi = 1, yk = 1, yj = 0, yl = 0; double zi = 0, zk = 0, zj = 0, zl = 0; double xji = xj - xi; double xki = xk - xi; double xjk = xj - xk; double xlk = xl - xk; double xik = xi = xk; double yji = yj - yi; double yki = yk - yi; double yjk = yj - yk; double ylk = yl - yk; double yik = yi - yk; double zji = zj - zi; double zki = zk - zi; double zik = zi - zk; double zjk = zj - zk; double zlk = zl - zk; double rij = Math.abs((10*(ti - tj))/33); double rik = Math.abs((10*(ti - tk))/33); double rkj = Math.abs((10*(tk - tj))/33); double rkl = Math.abs((10*(tk - tl))/33); double s9 = rik * xji - rij * xki; double s10 = rij * yki - rik * yji; double s11 = rik * zji - rij * zki; double s12 = (rik * (rij * rij + xi * xi - xj * xj + yi * yi - yj * yj + zi * zi - zj * zj) - rij * (rik * rik + xi * xi - xk * xk + yi * yi - yk * yk + zi * zi - zk * zk)) / 2; double s13 = rkl * xjk - rkj * xlk; double s14 = rkj * ylk - rkl * yjk; double s15 = rkl * zjk - rkj * zlk; double s16 = (rkl * (rkj * rkj + xk * xk - xj * xj + yk * yk + zk * zk - zj * zj) - rkj * (rkl * rkl + xk * xk - xl * xl + yk * yk - yl * yl + zk * zk - zl * zl)) / 2; double a = s9 / s10; double b = s11 / s10; double c = s12 / s10; double d = s13 / s14; double e = s15 / s14; double f = s16 / s14; double g = (e - b) / (a - d); double h = (f - c) / (a - d); double i = (a * g) + b; double j = (a * h) + c; double k = rik * rik + xi * xi - xk * xk + yi * yi - yk * yk + zi - zk * zk + 2 * j * yki; double l = 2 * (g * xki + i * yki + zki); double m = 4 * rik * rik * (g * g + i * i + l) - l * l; double n = 8 * rik * rik * (g * (xi - h) + i * (yi - j) + zi) + 2 * l * k; double o = 4 * rik * rik * ((xi - h) * (xi - h) + (yi - j) * (yi - j) + zi * zi) - k * k; double s28 = n / (2 * m); double s29 = (o / m); double s30 = (s28 * s28) - s29; double root = Math.sqrt(s30); if (cord == 'x'){ int x; x = this.getX(g, zl, h); System.out.println("\nx="+x); return x; } if (cord == 'y'){ int y; y = this.getY(a, this.getX(g, zl, h), b, this.getZ(s28,root), c); System.out.println("\ny="+y); return y; } if (cord == 'z'){ int z; z = this.getZ(s28,root); System.out.println("\nz="+z); return z; } return -1; } int getZ(double s28, double root) { int z1 = (int) (s28 + root); return z1; } // int z2=(int)(s28-root); // int getX(double g, double z1, double h) { int x1 = (int) (g * z1 + h); return x1; } // int x2=(int)(g*z2+h); // int getY(double a, double x1, double b, double z1, double c) { int y1 = (int) (a * x1 + b * z1 + c); return y1; } // int y2=(int)(a*x2+b*z2+c); }

There is no particular reason to use integer arithmetic in Java.
There might me if you were using FPGA/CPLD to run the calculations.

I don't understand Java that well or what you are trying to do in the program.

You do have to work with differential times. So you need to subtract 19 from all
of your values before passing on the position solver.

0

Are you ready to take your data science career to the next step, or break into data science? With Springboardâ€™s Data Science Career Track, youâ€™ll master data science topics, have personalized career guidance, weekly calls with a data science expert, and a job guarantee.

Your drawing has X1, X2, X3, X4And your program has i, j, k, l l (el) in indistinguishable from 1 (one) in this font.And your values don't seem to match. double xi = 1, xk = 0, xj = 10, xl =0; double yi = 1, yk = 1, yj = 0, yl = 0; double zi = 0, zk = 0, zj = 0, zl = 0;Shouldn't all the values be 0 or 10. You have three 1's in there.

What is the program supposed to do??

Take in a set a DTOA data and generate a position estimate?