@@ -98,47 +98,13 @@ n_samples = 500
9898
9999println (" Generating synthetic data..." )
100100
101- # Create realistic ranges for each variable
102- rho_range = (1e-6 , 1e-3 ) # Charge density range
103- q_range = (1e-19 , 1e-16 ) # Charge range (around elementary charge)
104- A_range = (1e-6 , 1e-3 ) # Magnetic vector potential range
105- m_range = (1e-30 , 1e-27 ) # Mass range (around electron mass)
106-
107- # Generate random data within physical ranges
108- rho = rho_range[1 ] .+ (rho_range[2 ] - rho_range[1 ]) .* rand (n_samples)
109- q = q_range[1 ] .+ (q_range[2 ] - q_range[1 ]) .* rand (n_samples)
110- A = A_range[1 ] .+ (A_range[2 ] - A_range[1 ]) .* rand (n_samples)
111- m = m_range[1 ] .+ (m_range[2 ] - m_range[1 ]) .* rand (n_samples)
112-
113- # Combine into feature matrix
114- x_data = hcat (rho, q, A, m)
115-
116- # Calculate target using the true relationship: J = -ρ * q * A / m
117- y_data = - rho .* q .* A ./ m
118-
119- # Add small amount of noise (1% relative noise)
120- noise_level = 0.01
121- y_data += noise_level * abs .(y_data) .* randn (n_samples)
122-
123- println (" Data ranges:" )
124- println (" ρ (charge density): $(minimum (rho)) to $(maximum (rho)) " )
125- println (" q (electric charge): $(minimum (q)) to $(maximum (q)) " )
126- println (" A (magnetic potential): $(minimum (A)) to $(maximum (A)) " )
127- println (" m (mass): $(minimum (m)) to $(maximum (m)) " )
128- println (" J (current density): $(minimum (y_data)) to $(maximum (y_data)) " )
129- println (" Noise level: $(noise_level * 100 ) %" )
130- println ()
131-
132- # Split data for training and testing
133- train_ratio = 0.8
134- n_train = round (Int, n_samples * train_ratio)
135- train_indices = 1 : n_train
136- test_indices = (n_train+ 1 ): n_samples
101+ # J = -ρ * q * A / m
102+ n_samples = 5000
137103
138- x_train = x_data[train_indices, :]
139- y_train = y_data[train_indices]
140- x_test = x_data[test_indices, :]
141- y_test = y_data[test_indices]
104+ # Load the data from the file => rho_c_0,q,A_vec,m,target
105+ data = Matrix (CSV . read ( " ./paper/srsd/feynman-III.21.20 \$ 0.txt " , DataFrame))
106+ num_cols = size (data, 2 )
107+ x_train, y_train, x_test, y_test = train_test_split (data[:, 1 : num_cols - 1 ], data[:, num_cols]; consider = 4 )
142108
143109println (" Training samples: $(length (y_train)) " )
144110println (" Test samples: $(length (y_test)) " )
@@ -147,7 +113,7 @@ println()
147113# Evolution parameters
148114epochs = 1000
149115population_size = 1000
150- num_features = size (x_data, 2 )
116+ num_features = num_cols - 1
151117
152118# Create regressor with dimensional constraints
153119regressor = GepRegressor (
0 commit comments