Programming, Numerics and Optimization
Dr. Łukasz Jankowski
This is a onesemester course (30 hours) that is devoted to the basic mathematical and programming
techniques which are indispensable for a researcher in engineering.
Objectives The course has two specific objectives:
 To introduce the principles of numerical computations (conditioning, stability, etc.), as well as
selected numerical techniques for linear systems, ordinary differential equations and (structural)
optimization.
 To provide a foundation for implementing some of these techniques in any programming language
(C/C++ is used within the course).
Abilities after completing the course
 The students will obtain a broad picture of commonly used numerical techniques for linear
systems, ordinary differential equations and (structural) optimization.
 The students will achieve a general understanding of the internals/pitfalls of frequently used
functions of mathematical/engineering software packages. As a result, they should be able to
use these functions more consciously and less in a blackbox manner.
 In their practice, the students will sooner or later encounter problems that are too large, too fine
or that run too slow to be fully coded using standard mathematical software packages (Matlab,
Mathematica, Scilab, etc.). The course will prepare the students for solving such problems in
generalpurpose programming languages.
Assessment will be based on homeworks
Lecture notes and the homeworks are available on Internet at http://www.ippt.gov.pl/~ljank/
Contents
Contents The course consists of three parts:
 Programming
 Basics: types and variables, operators, control flow statements, functions, pointers, arrays,
structures, lists, trees, command line arguments
 Objectoriented programming: objects and classes, creating and destroying objects, over
loaded operators, STL vector class
 Numerics
 Basics: number representations, arithmetic errors, problems and algorithms, problem con
ditioning, algorithm stability
 Numerical integration of ordinary differential equations (ODEs): basics, explicit onestep
methods, implicit onestep methods, multistep methods
 Linear systems: direct and iterative methods, leastsquares problems, conditioning, regu
larization, large systems; linear integral equations
 Optimization
 Optimization in structural engineering, sensitivity analysis: optimization problems, objec
tive function, variables, constraints, sensitivity analysis, structural optimization
 Unconstrained optimization: stop conditions, rate/order of convergence, line search and
trust region methods, search directions and step size, 1D optimization, zero order methods,
steepest descent, conjugate gradient methods, Newton methods, quasiNewton methods,
leastsquares problems
 Constrained optimization: imposing constraints, types of problems, linear programming
 Heuristic methods: coupled local minimizers, NelderMead method, simulated annealing,
evolutionary algorithms, swarm intelligence, artificial neural networks
back
