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
TThe 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:
- Search space: Library of operators (+, -, *, /, sin, exp, etc.)
- Search algorithm: Genetic programming, reinforcement learning, etc.
- Fitness: Balance between accuracy and simplicity (Occam's razor)
- 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
inputsT[,]Input data [numSamples, numFeatures].
outputsT[]Output data [numSamples].
maxComplexityintMaximum allowed complexity of the equation.
numGenerationsintNumber 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
expressionSymbolicExpression<T>
Returns
ToLatex(SymbolicExpression<T>)
Converts expression to human-readable string.
public string ToLatex(SymbolicExpression<T> expression)
Parameters
expressionSymbolicExpression<T>