IDENTIFYING DATA 2008_09
Subject Code 205141224
Study programme
Enginyeria Ambiental (2006)
Cycle 2nd
Descriptors Credits Type Year Period
3 Optional Only annual
Language
Anglès
Department Enginyeria Mecànica
Enginyeria Química
Coordinator
FOLCH MANZANARES, ROGER
E-mail
Lecturers
Web
General description and relevant information PLEASE CLICK ON THE ENGLISH VERSION TO SEE ALL INFO! OTHER VERSIONS INCOMPLETE OR OUTDATED!!!!!! Note that the OFFICIAL LANGUAGE of all the master is ENGLISH, so if you cannot understand the English version, you're not ready to follow the classes. Given some typical mathematical problems without analytical solution, we will search algorithms to find approximate solutions by a series of mainly sums and multiplications. We will then use a programming language to instruct a computer to do this pontentially large number of basic operations for us. Finally, we will always seek to validate, check the accuracy of, and, last but not least, understand physically the results. Same process as in any real application of Numerical Methods, but with the simplest possible sample problems.

Competences
Type A Code Competences Specific
  Common
  Professional
  Research
Type B Code Competences Transversal
  Common
Type C Code Competences Nuclear
  Common

Learning aims
Objectives Competences
Given a mathematical problem, 0. Have an idea of whether it is well posed and how to redefine it if not, of whether it should have solutions and how many, and have a feeling of how these solutions should behave. Know how to find information about the problem or a similar one if it seems basic enough, in order not to reinvent the wheel. This is more of a prerequisite for the course, and it will not really be possible to teach this at class due to time constraints, at least not explicitly. However, certainly some experience should be gained in this respect by performing the course work.
1. Identify the family of numerical algorithms to apply, and the pros and cons of each particular method therein. Understand the nature of the solution(s) they can provide, in particular their accuracy, depending on the method.
2. Be able to implement a particular numerical method in the form of a COMPUTER PROGRAM (CORE OBJECTIVE). Correctness, accuracy, efficiency, usability and generality of the program are more detailed objectives, in order of importance. Note that the ability to program a numerical algorithm is an objective of the course, whereas the ABILITY TO PROGRAM at all is a PREREQUISITE. Again, due to time constraints, it won't be possible to teach students to program or programm in a particular language formally. However, there will be a lot of "learning by doing" in this area, as programming a numerical algorithm is programming after all. Some time at class will be devoted to discuss how to programm each algorithm, and the possibility of individual help at office hours is real.
3. Be able to use the developed program to obtain solutions which make sense, i.e, validation, accuracy test, monitoring and control, and interpretation of the obtained solutions are crucial here. This objective needs to act as feed back for the previous objectives/steps: If the solution does not make sense, either the mathematical problem needs to be redefined, or the algorithm rethought, or there is a programming mistake.

Contents
Topic Sub-topic
0. Discrete representation of real numbers and numerical error. The corresponding exercises will also serve as an introduction to programing numerical methods,
so do not miss these first classes!
significant digits, relative accuracy, error propagation, interval arithmetics. Not-so-equivalent formulas and tricks
in sample cases.
1. Solution of algebraic equations f(x)=0. General methods suitable for non-linear equations: successive substitution, bisection, Newton-Raphson (1 and 2 unknowns). Warnings on multiple roots and multiplicity of each root. Methods for linear systems might or might not be discussed.
2. Evaluation of integrals (very brief mention) rectangles, trapeze and Simpson rules.
3. Solution of Ordinary Differential Equations (mostly initial value problems). Euler (forward and backward) and Runge-Kutta methods.
Stability of explicit methods. Higher-order equations and systems of equations (up to 2). Stiffness. Backwards differentiation formulas. Two-point problem: shooting mehtod.
4. Solution of Partial Differential Equations (mostly initial value problems) Flux conservation and wave equation: Forward Time Centered Space algorithm. Von Neumann stability analysis. Leap-frog algorithm. Courant condition. Diffusion equation: FTCS algorithm and associated Courant condition (in arbitrary dimensions). Crank-Nicolson algorithm. Bilaplacian operator. Etc. (depending on time left for the course).
Relaxation and equilibrium methods for boundary value problems.

Planning
Methodologies  ::  Tests
  Competences (*) Class hours Hours outside the classroom (**) Total hours
Introductory activities
1 0 1
 
Lecture
9 9 18
Problem solving, classroom exercises
10 42 52
 
Personal tuition
4 0 4
 
 
(*) On e-learning, hours of virtual attendance of the teacher.
(**) The information in the planning table is for guidance only and does not take into account the heterogeneity of the students.

Methodologies
Methodologies
  Description
Introductory activities Coneixements previs.
Lecture The most significant/general numerical methods will be reviewed at class, as long as they are not too complex to implement, i.e., anything we cannot put to practice will be discarded.
Problem solving, classroom exercises The professor will try to get a computer room where we can begin to program each numerical method immediately. However, bear in mind that the amount of ECTS credits implies that each student will need to finish the exercises at home, and 1 full day per week of work (including attendance to class) during the 10 weeks of the course should be foreseen.
Difficulties experienced by the students can be discussed at the beginning of the following class. After correction by the professor, common errors will also be discussed at class, not so common errors will be communicated to the student individually. In any case, the student is expected to correct any error and submit an improved version.

Personalized attention
 
Personal tuition
Description
Individual help can be obtained by coming to the professor's office (213) IN PERSON and at OFFICE HOURS. These will be 2 hours per week during the course by law. This year they were Tuesdays 16-18h, for instance, bur for the coming course they will be announced in due time. The professor will correct the exercises individually to the extent possible and give feedback to each student.

Assessment
  Description Weight
Problem solving, classroom exercises COMPULSORY: individual weekly exercises in which the student solves a sample problem by programing a numerical method, running it on a computer, and analysing the results.
WARNING: COPYING PROGRAM PARTS from fellow students or any other source results in a final mark of 0 and thus FAILing the subject.
The professor will try to get a computer room where we can begin to program each numerical method after its explanation at class. However, the amount of ECTS credits shows that the student will need to invest roughly 1 day per week (including attendance to class) during the 10 weeks of course to complete the exercises at home.
100%
Others

Pràctica. Individual.

10%
 
Other comments and second exam session

Sources of information

Basic William H. Press, Saul A. Teukolsky, William T. Vetterling and Brian P. Flannery, Numerical Recipes in Fortran 77 (vol. 1) and Fortran 90 (vol. 2), Cambridge University Press, 2nd edition, 1992
R. E. Scraton, Métodos Numéricos Básicos, Mc Graw Hill, 1987, México
E. Elizalde, Métodos Matemáticos Analíticos, Dept. ECM, Universitat de Barcelona, 1990
T.M.R. Ellis, Ivor R. Philips, Thomas M. Lahey, Fortran 90 programming, Addison-Wesley, 1994
Clive Page, Professional Programmer's Guide to Fortran 77, http://www.star.le.ac.uk/~cgp/prof77.html,

This basic bibliography has been used to prepare the course, and and it is all useful in one or other way.

Numerical Recipes is the main reference book for Numerical Methods, and enjoyable to read. A 3rd edition (2007) is now also available in our library, though in C++. Métodos Numéricos Básicos is an elementary but concise and clear book in Spanish (the original version is in English: Basic Numerical Methods) also available in our library, unfortunately not covering Partial Differential Equations.

Two Fortran manuals are listed. Fortran 90 programming is more a course on Fortran than a manual. Very pedagogical but too lengthy to be used to learn Fortran while already in need to program. The Professional Programmer's Guide is an excellent manual, more useful when one is programming, unfortunately not yet availbable for Fortran 90. It is out of print, but made available by the author on its website.

The book by Emilio Elizalde is probably not publicly available, contact the author or the professor if interested. It covers analytical methods, but also a few numerical methods. Interesting ideas on convergence for methods to solve algebraic equations.

Complementary J. Douglas Faires, R. Burden, Métodos Numéricos, Ed Thomson,
GRAU, M. (et al.), Càlcul numèric, Edicions UPC,
CHAPRA, S. C. (et. al.), Métodos numéricos para ingenieros, Ed. McGraw-Hill,
KINCAID, D. (et al.), Análisis numérico, Ed. Addison-Wesley,
AUBANELL, A. (et al.), Eines bàsiques de càlcul numèric, Manuals de la UAB,

The complementary bibiliography is given for completeness, but no particular advice is made on these books.

Recommendations

Subjects that continue the syllabus
MOLECULAR SIMULATION/205142228


Subjects that it is recommended to have taken before
ANGLÈS/205142214
 
Other comments
PLEASE READ CAREFULLY all of the comments below!! ------------------------------------------------------------ * Calculus and algebra are prerequisites. You need to have passed these subjects previously to have a chance to pass Numerical Methods. --- * This subject is at a master level, i.e., higher than its undergraduate counterparts, although it is not necessary to have learned any numerical method before. One main difference with some undergraduate versions of this course is that we will program the methods reviewed at class, i.e., it's not a purely theoretical subject, and we will try to approach real world situations where you may need numerical methods, while keeping the assignments as simple as possible. --- * The ABILITY to PROGRAM in some language is a prerequisite. Students who have never written computer programs will need to invest of the order of twice the official ECTS time in completing the subject successfully. --- * The professor can provide support in any version of Fortran. Fortran 90 or later is recommended over Fortran 77 for its greater flexibility. Students with experience in other programming languages are encouraged to take the chance to learn Fortran, at the expense of some possible extra effort, as a standard in high efficiency scientific computing. If the student experiences difficulties with Fortran or simply does not wish to invest the extra effort, the possibility of programming in another language remains, and still the professor will probably be able to provide some general support. Some students this year were more used to Matlab, for instance. However, watch out that we will program mostly at the level of sums and multiplications, i.e., the use of black-box routines is banned unless otherwise stated.