Quasi-Newton method for truss optimization problem.

This code is designed for solving the truss optimization problem with continuous design variables via quasi-Newton gradient methods.
13 download
Aggiornato 17 dic 2025

Visualizza la licenza

This code is designed for solving the truss optimization problem with continuous design variables via quasi-Newton gradient methods. The problem firstly make gradient check to adapt the quasi-Newton gradient method to truss optimization problem. Then solve it using MATLAB fmincon tool.
Changelog:
  • Refactor (Objective Function): Stripped the penalty term from truss_objective.m. The function now returns the pure "Raw Weight," allowing fmincon to handle constraints natively via truss_constraints.m (nonlcon).
  • Feature (History Logging): Implemented a "Best-So-Far" (monotonic) filter in the fmincon_capture_penalized_history function. This prevents the logging of high-penalty (infeasible) spikes during the line-search process, resulting in a cleaner convergence graph.
  • Fix (3D FEM Analysis): Corrected the Degree of Freedom (DOF) mapping and the B-matrix size in truss_analysis_and_sensitivity.m to correctly support 3D truss structures (3 DOFs per node).
  • Improvement (Reporting): The script now manually calculates the "Penalized Weight" (W(1+P)^2 for the final output, ensuring that QN results are directly comparable to GA results in the FeasibilityPerformance.txt report.

Cita come

ibrahim aydogdu (2026). Quasi-Newton method for truss optimization problem. (https://it.mathworks.com/matlabcentral/fileexchange/182261-quasi-newton-method-for-truss-optimization-problem), MATLAB Central File Exchange. Recuperato .

Compatibilità della release di MATLAB
Creato con R2025b
Compatibile con qualsiasi release
Compatibilità della piattaforma
Windows macOS Linux
Tag Aggiungi tag
Versione Pubblicato Note della release
2.0.0

This update refines the interaction between fmincon and the objective function, fixes 3D FEM formulation details, and improves the convergence history logging to prevent infeasible spikes.

1.0.0