# Trying to determine fields from forces - A curiosity

In electromagnetics, the Lorentz force on a charged particle as a result of electric and magnetic influences is:

$\vec{F} = q \vec{E} + q \vec{v} \times \vec{B}$

For a particle of mass $m = 1$ and charge $q = 1$:

$\vec{a} = \vec{E} + \vec{v} \times \vec{B}$

Suppose we do the following experiment. Choose values for $\vec{E}$ and $\vec{B}$ (with the fields being uniform over space), and choose two velocities $\vec{v}_1$ and $\vec{v}_2$. In the first measurement, the particle has velocity $\vec{v}_1$ and experiences acceleration $\vec{a}_1$. In the second measurement, the particle has velocity $\vec{v}_2$ and experiences acceleration $\vec{a}_2$.

Now suppose you tell your friend the values of $\vec{v}_1$, $\vec{a}_1$, $\vec{v}_2$, and $\vec{a}_2$ and ask him to find the fields $\vec{E}$ and $\vec{B}$. The math looks like a $6 \times 6$ linear system:

$a_{x1} = E_x + v_{y1} B_z - v_{z1} By \\ a_{y1} = E_y + v_{z1} B_x - v_{x1} Bz \\ a_{z1} = E_z + v_{x1} B_y - v_{y1} Bx \\ a_{x2} = E_x + v_{y2} B_z - v_{z2} By \\ a_{y2} = E_y + v_{z2} B_x - v_{x2} Bz \\ a_{z2} = E_z + v_{x2} B_y - v_{y2} Bx$

When you try to solve for the fields, you get a singular (or very nearly singular) matrix, and a linear algebra routine returns fields that satisfy the equations, but which are very different from the fields we started with. I began this thought experiment with the assumption that the fields would be uniquely recoverable given the accelerations and velocities. But this appears not to be the case.

So the question is: Does observable physics correspond to a single unique pair of fields, or are there multiple/many equivalent pairs of fields? I've been reading lately about gauge symmetries in electromagnetism, and about how the electric and magnetic fields can be represented in terms of infinitely many equivalent pairs of scalar and vector potentials. I wanted to devise an experiment to demonstrate the uniqueness of the electric and magnetic fields.

I have attached the code I used to do this experiment.

  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 import math import numpy as np import random choose = 2 if choose == 1: Ex = -1.0 Ey = 3.0 Ez = 2.0 Bx = 2.0 By = 1.0 Bz = 4.0 vx1 = 1.0 vy1 = 2.0 vz1 = 3.0 vx2 = -2.0 vy2 = 5.0 vz2 = 4.0 if choose == 2: Ex = -5.0 + 10.0*random.random() Ey = -5.0 + 10.0*random.random() Ez = -5.0 + 10.0*random.random() Bx = -5.0 + 10.0*random.random() By = -5.0 + 10.0*random.random() Bz = -5.0 + 10.0*random.random() vx1 = -5.0 + 10.0*random.random() vy1 = -5.0 + 10.0*random.random() vz1 = -5.0 + 10.0*random.random() vx2 = -5.0 + 10.0*random.random() vy2 = -5.0 + 10.0*random.random() vz2 = -5.0 + 10.0*random.random() print Ex print Ey print Ez print "" print Bx print By print Bz print "" print "###################" print "" ################################### ax1 = Ex + vy1*Bz - vz1*By ay1 = Ey + vz1*Bx - vx1*Bz az1 = Ez + vx1*By - vy1*Bx ax2 = Ex + vy2*Bz - vz2*By ay2 = Ey + vz2*Bx - vx2*Bz az2 = Ez + vx2*By - vy2*Bx ################################### J11 = 1.0 J12 = 0.0 J13 = 0.0 J14 = 0.0 J15 = -vz1 J16 = vy1 J21 = 0.0 J22 = 1.0 J23 = 0.0 J24 = vz1 J25 = 0.0 J26 = -vx1 J31 = 0.0 J32 = 0.0 J33 = 1.0 J34 = -vy1 J35 = vx1 J36 = 0.0 J41 = 1.0 J42 = 0.0 J43 = 0.0 J44 = 0.0 J45 = -vz2 J46 = vy2 J51 = 0.0 J52 = 1.0 J53 = 0.0 J54 = vz2 J55 = 0.0 J56 = -vx2 J61 = 0.0 J62 = 0.0 J63 = 1.0 J64 = -vy2 J65 = vx2 J66 = 0.0 ################################### J = np.array([[J11,J12,J13,J14,J15,J16],[J21,J22,J23,J24,J25,J26],[J31,J32,J33,J34,J35,J36],[J41,J42,J43,J44,J45,J46],[J51,J52,J53,J54,J55,J56],[J61,J62,J63,J64,J65,J66]]) vec = np.array([ax1,ay1,az1,ax2,ay2,az2]) Sol = np.linalg.solve(J, vec) Exc = Sol[0] Eyc = Sol[1] Ezc = Sol[2] Bxc = Sol[3] Byc = Sol[4] Bzc = Sol[5] print "##########################" print np.linalg.det(J) print "##########################" print "" ################################### print Exc print Eyc print Ezc print "" print Bxc print Byc print Bzc print "" print "################" print "" resx1 = Exc + vy1*Bzc - vz1*Byc - ax1 resy1 = Eyc + vz1*Bxc - vx1*Bzc - ay1 resz1 = Ezc + vx1*Byc - vy1*Bxc - az1 resx2 = Exc + vy2*Bzc - vz2*Byc - ax2 resy2 = Eyc + vz2*Bxc - vx2*Bzc - ay2 resz2 = Ezc + vx2*Byc - vy2*Bxc - az2 print resx1 print resy1 print resz1 print resx2 print resy2 print resz2 

Note by Steven Chase
4 months, 1 week ago

This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.

When posting on Brilliant:

• Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
• Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
• Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold
- bulleted- list
• bulleted
• list
1. numbered2. list
1. numbered
2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in $$ ... $$ or $ ... $ to ensure proper formatting.
2 \times 3 $2 \times 3$
2^{34} $2^{34}$
a_{i-1} $a_{i-1}$
\frac{2}{3} $\frac{2}{3}$
\sqrt{2} $\sqrt{2}$
\sum_{i=1}^3 $\sum_{i=1}^3$
\sin \theta $\sin \theta$
\boxed{123} $\boxed{123}$

Sort by:

My initial comment has been heavily edited. Anyway, off to bed now. Thanks for sharing this.

- 4 months, 1 week ago

I have a suggestion. You may try this if you want:

• Choose a uniform E and B field and a set of initial conditions.

• Solve for the motion of the system.

• Obviously, you will compute a time series of velocities and accelerations on solving.

• Now, you may use the resulting time series and set up a linear regression problem (with field components as variables) and the field components that you estimate will most probably not be the same as your original ones. Moreover, if you try a different optimization subroutine to minimise estimation errors, the field components that you obtain will most likely not be the same as the original. This optimization route shows that the parameter space (the field components) is nonlinear and there exist many local optima, which seem like suitable solutions.

I did such an experiment with a coupled mechanical oscillator (to estimate stiffnesses and masses) once and observed the same. Using fields to solve for the motion gives a unique result but using the motion to solve for the fields never yields a unique solution for the field estimates. It probably has to do with solving a set of underdetermined equations, where the unknowns are outnumbered by the data points. An 'inverse problem' of this sort is always harder to solve.

There is an entire area of study dedicated to your observations known as 'system identification' or 'parameter estimation' in the field of control theory. My knowledge here is limited.

Another concept possibly to consider here is the notion of 'existence and uniqueness' in the broad topic of differential equations. I cannot say how this ties into this situation but this might be a factor.

- 4 months, 1 week ago

Indeed, my original intent was to post a problem in which I provided a text file containing sequential high-res data for $t, x, y, z$. The problem would have asked the reader to determine the electric and magnetic fields given the mock experimental data. But I figured that would be too involved, and that giving two sets of velocities and accelerations would accomplish basically the same thing, but with less complexity. But even that didn't work. I suppose a simple analogy is a parabola. The horizontal coordinate maps uniquely to the vertical, but the vertical does not map uniquely to the horizontal. Evidently this mapping problem applies to physics as well.

And the situation is actually even worse than I originally knew. Suppose we know the value of $\vec{E}$, and we are told the values of $\vec{v}$ and $\vec{a}$ from an experiment. What remains is to determine $\vec{B}$. The math looks like:

$a_{x} = E_x + v_{y} B_z - v_{z} By \\ a_{y} = E_y + v_{z} B_x - v_{x} Bz \\ a_{z} = E_z + v_{x} B_y - v_{y} Bx$

As it turns out, even this $3 \times 3$ matrix used to solve for $\vec{B}$ is singular, so it is still impossible to uniquely determine $\vec{B}$ from experimental data, even when $\vec{E}$ is known.

- 4 months, 1 week ago

I'll try to address some of your concerns. If we subtract the equations for two particles, we get: $\vec{a}_{2}-\vec{a}_{1} = (\vec{v}_{2}-\vec{v}_{1})\times \vec{B}$ From here it's obvious that our model has some implications: one is that $\Delta \vec{a}$ must be perpendicular to $\Delta \vec{v}$; the other is that the length of a projection of $\vec{B}$ normal to $\Delta \vec{v}$ equals $\left \| \Delta \vec{a} \right \|/\left \| \Delta \vec{v} \right \|$, while nothing could be inferred about the projection of $\vec{B}$ parallel to $\Delta \vec{v}$. So, by measuring velocity and acceleration of only two particles, we cannot uniquely determine $\vec{B}$ and $\vec{E}$.

- 3 months, 3 weeks ago

@Karan Chatrath I'd be interested to hear your thoughts on this

- 4 months, 1 week ago