Algorithms

The object-oriented framework Rts contains a “plug and play” collection of models and methods, meaning you can introduce new models and methods without changing the existing framework. This page discusses the algorithms, and you find the corresponding C++ code under Rts. It is perhaps fun to observe how algorithms play an increasingly large role in our moden society. Elon Musk suggests that artificial intelligence algorithms could become a danger to the public. Yuval Noah Hari discusses the role of algorithms, including the ones in your brain, in the book Homo Deus. The joke that the word “algorithm” stems from Al Gore is not true, although he promoted the public use of ARPANET, which is now the Internet. Rather, the word algorithm stems from the Persian mathematician Muhammad bin Musa al-Khwarizmi who was born in 780 and worked at the House of Wisdom in Baghdad. Euclid’s Algorithm, probably the earliest known algorithm, is from before that time and attributed to Euclid, born in 335 BC. He devised an algorithm, i.e., systematic approach, for determining the greatest common divisor of two integers. Nowadays algorithms are implemented on the computer. In our research group we use the C++ language together with the cross-platform tool called Qt. In addition to the material posted below and the C++ classes posted under Rts, here is some rudimentary information on getting started with C++ and Qt and a brief note on C++ programming.

OPTIMIZATION ALGORITHMS
Note: Downhill Simplex Algorithm
Note: Directional Line Search Algorithm
Code: RDownhillSimplexOptimizationAlgorithm.cpp
Code: RDirectionalLineSearchOptimizationAlgorithm.cpp
Code: RSteepestDescentSearchDirection.cpp
Code: RConjugateGradientSearchDirection.cpp
Code: RQuasiNewtonSearchDirection.cpp
Code: RHLRFSearchDirection.cpp
LINE SEARCH ALGORITHMS
Note: Bisection Algorithm
Note: 1D Newton-Raphson Algorithm
Note: Secant Algorithm
Note: Golden Section Algorithm
Code: RBisectionLineSearchAlgorithm.cpp
Code: RNewtonLineSearchAlgorithm.cpp
Code: RSecantLineSearchAlgorithm.cpp
Code: RGoldenSectionLineSearchAlgorithm.cpp
DECOMPOSITIONS
Note: Cholesky Decomposition
Note: LU Decomposition
Code: RBasicCholeskyDecomposition.cpp
LINEAR SOLVERS
Note: Determinant and Matrix Inversion
Note: Decomposition and Substitution
Base class: RLinearSolver.h / RLinearSolver.cpp
Code: RMatrixInverseLinearSolver.h / RMatrixInverseLinearSolver.cpp
Code: RCholeskyLinearSolver.h / RCholeskyLinearSolver.cpp
Code: RGaussJordanLinearSolver.h / RGaussJordanLinearSolver.cpp
Code: RLULinearSolver.h / RLULinearSolver.cpp
Code: RQRLinearSolver.h / RQRLinearSolver.cpp
AUXILIARY ALGORITHMS
Matrix operations
Probability distributions
Spherical geometry

a place of mind, The University of British Columbia

Department of Civil Engineering
6250 Applied Science Lane,
Vancouver, BC, V6T 1Z4, Canada
Dr. Terje Haukaas
Tel: 604-827-5557
Email:

Emergency Procedures | Accessibility | Contact UBC  | © Copyright The University of British Columbia