Newton Line Search Algorithm
The Newton Line Search algorithm enhances the Newton-Raphson method by introducing a line search to determine the optimal step size. This can improve convergence when the standard Newton method struggles.
Description
The Newton Line Search algorithm: - Uses the Newton-Raphson method to determine the search direction - Performs a line search to find the optimal step size - Updates the geometry and internal forces based on the displacement increment - Repeats until convergence is achieved - Offers multiple line search strategies to adapt to different problem characteristics
Parameters
Parameter |
Type |
Description |
---|---|---|
|
str |
Line search algorithm type: “Bisection”, “Secant”, “RegulaFalsi”, or “InitialInterpolated” (default: “InitialInterpolated”) |
|
float |
Tolerance for search (default: 0.8) |
|
int |
Maximum number of iterations to try (default: 10) |
|
float |
Minimum η value (default: 0.1) |
|
float |
Maximum η value (default: 10.0) |
Usage Example
# Create a Femora instance
# Create a Newton Line Search algorithm with default settings
fm.analysis.algorithm.create_algorithm("NewtonLineSearch")
# Create a Newton Line Search algorithm with custom settings
fm.analysis.algorithm.create_algorithm(
"NewtonLineSearch",
type_search="Bisection",
tol=0.5,
max_iter=20,
min_eta=0.05,
max_eta=5.0
)
Notes
The Newton Line Search algorithm can be more robust than standard Newton for difficult problems
It may require more computational effort per iteration, but often requires fewer iterations
Different search types may be more effective for different problem types
The “InitialInterpolated” search type is generally a good starting choice
The tolerance parameter controls the line search accuracy (smaller values are more accurate but may require more iterations)