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:

F=qE+qv×B\vec{F} = q \vec{E} + q \vec{v} \times \vec{B}

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

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

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

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

ax1=Ex+vy1Bzvz1Byay1=Ey+vz1Bxvx1Bzaz1=Ez+vx1Byvy1Bxax2=Ex+vy2Bzvz2Byay2=Ey+vz2Bxvx2Bzaz2=Ez+vx2Byvy2Bxa_{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
1 month, 1 week ago

No vote yet
1 vote

  Easy Math Editor

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.
  • Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold

- bulleted
- list

  • bulleted
  • list

1. numbered
2. 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 1

paragraph 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×3 2 \times 3
2^{34} 234 2^{34}
a_{i-1} ai1 a_{i-1}
\frac{2}{3} 23 \frac{2}{3}
\sqrt{2} 2 \sqrt{2}
\sum_{i=1}^3 i=13 \sum_{i=1}^3
\sin \theta sinθ \sin \theta
\boxed{123} 123 \boxed{123}

Comments

Sort by:

Top Newest

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

Karan Chatrath - 1 month, 1 week ago

Log in to reply

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

Steven Chase - 1 month, 1 week ago

Log in to reply

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.

Karan Chatrath - 1 month, 1 week ago

Log in to reply

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 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 E \vec{E} , and we are told the values of v \vec{v} and a \vec{a} from an experiment. What remains is to determine B\vec{B} . The math looks like:

ax=Ex+vyBzvzByay=Ey+vzBxvxBzaz=Ez+vxByvyBxa_{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×3 3 \times 3 matrix used to solve for B \vec{B} is singular, so it is still impossible to uniquely determine B \vec{B} from experimental data, even when E \vec{E} is known.

Steven Chase - 1 month, 1 week ago

Log in to reply

I'll try to address some of your concerns. If we subtract the equations for two particles, we get: a2a1=(v2v1)×B\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 Δa\Delta \vec{a} must be perpendicular to Δv\Delta \vec{v}; the other is that the length of a projection of B\vec{B} normal to Δv\Delta \vec{v} equals Δa/Δv\left \| \Delta \vec{a} \right \|/\left \| \Delta \vec{v} \right \|, while nothing could be inferred about the projection of B\vec{B} parallel to Δv\Delta \vec{v}. So, by measuring velocity and acceleration of only two particles, we cannot uniquely determine B\vec{B} and E\vec{E}.

Uros Stojkovic - 1 month ago

Log in to reply

×

Problem Loading...

Note Loading...

Set Loading...