DRE 4017 Numerical Methods in Finance and Economics
This is a course in the basic tools of numerical analysis that can be used to address analytically intractable problems in finance and economics. A large class of problems cannot be analyzed with analytical tools, and numerical methods are increasingly expanding the questions we can address.
Numerical methods are vital to all types of applied financial and economic research. The generality with which the techniques will be presented in this course will make them applicable to a wide range of fields, including finance, econometrics, corporate finance, asset pricing, resource economics, labor economics, economic theory, international trade, macroeconomics, game theory, public finance, contract theory and others.
In order to learn how to use computational tools in an informed and intelligent way, this course endeavors to explain not only when and how to use various numerical algorithms but also how and why they work; in other words, the course opens up the “black boxes” and provide the students with a versatile toolbox for their own research.
- To learn elementary computer programming in on one of the following languages Python, Julia, R, Matlab, Fortran or C++
- To learn different elementary methods for solving basic problems: differentiation, root finding, optimization, approximation, integration
- To understand to evaluate the trade off between accuracy, speed of convergence and ease of programming
- To learn to combine elementary methods to solve functional problems in finance and economics
- To master basic computational tools to do quantitative research in finance and economics
- To be able to analyze the structure of a quantitative problem and choose the right numerical tools to solve it
- To acquire basic coding and software engineering skills
Programming, mathematics and statistics are powerful tools for analyzing the functioning of financial markets and model economies. This course has as its objective to provide the students with basic programming skills.
The course has four main parts:
- Elementary numerical methods on R^n (differentiation, root finding, optimization, interpolation, integration)
- Functional equation problems
- Solving individual choice models, heterogeneity and aggregation.
- Advanced topics (aggregate shocks, continuous time methods, default models,etc).
The course will be taught as a combination of lectures and home assignments. Practice is necessary in order to learn to code and understand the strengths and weaknesses of different algorithms. Students will receive feedback on their finished homework assignments although the home assignments are not included in calculating the final grade of the course.
Most of the examples in the course will be written in Matlab, Python, and/or Julia. We recommend students with no or limited programming background to choose to work in one of these languages. The instructors may also be able to help and support students choosing to work in other languages, such as R, C or Fortran.
Enrollment in a PhD programme is a general requirement for participation in PhD courses at BI Norwegian Business School.
External candidates are kindly asked to attach confirmation of enrollment in a PhD programme when signing up for a course. Other candidates may be allowed to sit in on courses by approval of the course leader. Sitting in on a course does not permit registration for the course, handing in exams or gaining credits for the course. Course certificates or confirmation letters will not be issued for sitting in on courses.
The course requires basic understanding of mathematics, statistics, finance and economics at the level that is required to be admitted to the PhD program at BI Norwegian Business School.
Form of assessment:
Examination when next scheduled course
|Form of assessment:
|Examination when next scheduled course
Student's own work with learning resources
Group work / Assignments
A course of 1 ECTS credit corresponds to a workload of 26-30 hours. Therefore a course of 6 ECTS credits corresponds to a workload of at least 160 hours.