Table of Contents

Class SymbolicPhysicsLearner<T>

Namespace
AiDotNet.PhysicsInformed.ScientificML
Assembly
AiDotNet.dll

Implements Symbolic Physics Learning for discovering interpretable equations from data.

public class SymbolicPhysicsLearner<T>

Type Parameters

T

The numeric type used for calculations.

Inheritance
SymbolicPhysicsLearner<T>
Inherited Members

Remarks

For Beginners: Symbolic Physics Learner discovers equations in symbolic form (like f = ma, E = mc^2).

Traditional ML:

  • Neural networks are "black boxes"
  • Learn complex functions but hard to interpret
  • Can't extract simple equations

Symbolic Regression:

  • Discovers actual mathematical equations
  • Interpretable results (can publish in papers!)
  • Can rediscover known physics laws
  • Can discover NEW laws

Example: Input: Data of planetary positions vs. time Output: F = Gm1m2/r^2 (Newton's law of gravitation)

How It Works:

  1. Search space: Library of operators (+, -, *, /, sin, exp, etc.)
  2. Search algorithm: Genetic programming, reinforcement learning, etc.
  3. Fitness: Balance between accuracy and simplicity (Occam's razor)
  4. Output: Symbolic expression

Applications:

  • Discovering physical laws from experiments
  • Automating scientific discovery
  • Interpretable AI for science
  • Finding conservation laws

Famous Success:

  • Rediscovered Kepler's laws from planetary data
  • Found new equations in materials science
  • Discovered patterns in quantum mechanics

Constructors

SymbolicPhysicsLearner()

public SymbolicPhysicsLearner()

Methods

DiscoverEquation(T[,], T[], int, int)

Discovers a symbolic equation from data using genetic programming.

public SymbolicExpression<T> DiscoverEquation(T[,] inputs, T[] outputs, int maxComplexity = 10, int numGenerations = 100)

Parameters

inputs T[,]

Input data [numSamples, numFeatures].

outputs T[]

Output data [numSamples].

maxComplexity int

Maximum allowed complexity of the equation.

numGenerations int

Number of evolutionary generations.

Returns

SymbolicExpression<T>

Best discovered equation as a symbolic expression tree.

Simplify(SymbolicExpression<T>)

Simplifies an expression using symbolic algebra rules.

public SymbolicExpression<T> Simplify(SymbolicExpression<T> expression)

Parameters

expression SymbolicExpression<T>

Returns

SymbolicExpression<T>

ToLatex(SymbolicExpression<T>)

Converts expression to human-readable string.

public string ToLatex(SymbolicExpression<T> expression)

Parameters

expression SymbolicExpression<T>

Returns

string