יחידות הוראה

על הקורס - כללי

יחידות הוראה

  • Topics

    "Computers are useless. They can only give you answers."

                               - Pablo Picasso


    Lecture Zoom link

    Zoom link 2

    • Overview of general-purpose programming languages: Fortran, C, C++, Python
    • Programing basics: variables, control flow, data objects, algorithms
    • Overview of interpreted languages: Matlab, Mathematica
    • Numerics: accuracy, precision, stability, bottlenecks, computer structure
    • Numerical differentiation and integration; Runge Kutta methods
    • Interpolation and extrapolation: polynomial, spline, Laplace
    • Minimization and maximization: Brent, Newton, simulated annealing
    • Statistical description of data: modeling, comparing distributions
    • Monte Carlo simulations
    • (Time permitting) Ordinary differential equations: finite differences, shooting, relaxation
    • (Time permitting) Partial differential equations: reduction, relaxation, multi-grid



    Lecture Topic  Read  Blank notes
     Class notes Links & extra
    1
    Course Intro, programming languages, C basics, random walk
    tutorials draft1
    Lec1
    Snake in 5 minutes; Dinosaurs in 3 minutes
    2
    Variable representation, precision, accuracy, loss of precision, recursion and differential equations
    NR1
     draft2Lec2
    Snake
    Roundoff disasters
    One-liners 2010
    3 Stability, scope of variables, arrays, passing variables by value/reference
    NR1
    draft3
    Lec3
    (de) referencing
    scope
    4 Dynamical programming, continued fractions, interpolation and extrapolation: intro and Neville method, searching an ordered table, reading NR codes
    NR3
    draft4Lec4
    Golden ratio
    Interpolation in Python
    5 Interpolation: rational, spline, and multiple dimensions; Integration: Newton-Cotes formulae
    NR3
    draft5
    Lec5
    Integration in Python
    6 Newton-Cotes algorithms, Richardson extrapolation, Romberg open+closed methods, improper integrals 1
    NR4
    draft6
    Lec6
    P vs. NP
    7 Improper integrals 2, orthogonal polynomials, Gaussian quadrature, integration in multiple dimensions
    NR4
    draft7
    Lec7
    Monte Carlo examples
    8 Statistics recap, Monte Carlo, MC examples, variance reduction, fractals, sampling from a distribution
    NR
    7.6-7.8
    draft8
    Lec8
    Mandelbrot zoom
    Logistic map
    9 quasi-MC, importance+stratified sampling, diffusion with interactions, working with data, moments of a distribution 1
    7.6-7.8
    NR 14
    draft9
    Lec9
    Randomness
    10 Pitfalls in statistics, moments of a distribution 2, estimating the significance of sample statistics
    NR14
     

    11 Student t-test, MC in statistics, MC simulation as an integral, chi-squared test, KS-test
    NR14
     

    12 Maximal likelihood, Chi-squared minimization, root finding: bracketing, bisection, secant, false position, Brent, Newton-Raphson
    NR15
     

    13 Root finding in multiple dimensions: Newton-Raphson, Broyden; optimization: bracketing; ODEs: Euler, Runge-Kutta, explicit vs. implicit methods, stiff equations, adaptive step, Bulirsch-Stoer, shooting
    NR16
     


    • Textbooks

        • Numerical recipes, by William H. Press, Saul A. Teukolsky, William T. Vetterling, Brian P. Flannery; Publisher: Cambridge University Press; 3 edition (September 10, 2007).
        • Computational physics, by Morten Hjorth Jensen; Publisher: CreateSpace Independent Publishing Platform (January 12, 2015)
        • A survey of computational physics, by Rubin H. Landau, Jos? P?ez, Cristian C. Bordeianu; Publisher: Princeton University Press; Har/Cdr edition (July 21, 2008)


      • Lecture, Tutorial and office hours

        Office Hours

        Name Day Hours Building/Room Email*
        Uri Keshet
        Wed17:00
        Zoom ukeshet@bgu.ac.il
        David Uzan Thu12:00 54/319 daviduz@post.bgu.ac.il

        Lecture/Tutorial

        Group What? Name Day Hours Zoom/Hybrid
        1 Lecture Uri Keshet Tue
        14:10 - 17:00
        בניין כתות לימוד [35] חדר 213
        11 Tutorial David Uzan Sun 18:10- 20:00
        גולדברגר [28] חדר 202
        * Please use the course staff email only for private issues, material related issues should be addressed in the course forum.

        • Recommendations

          Tools:

          • Lectures teach some C and Mathematica. Tutorials and assignments are in Python.
          • Visual C, Python, Mathematica, and Matlab are installed on most BGU computers.
          • Mathematica and Matlab are available within BGU campus and dorms on any mobile device through https://apps.bgu.ac.il/.
          • VPN to access the above - https://in.bgu.ac.il/computing/Pages/vpn-service.aspx ).
          • We mainly run Python using Google Collab or Jupyter. A more professional IDE: PyCharm. Feel free to use any workspace convenient for you.
          • C codes in this course are generally short, and can be compiled online e.g. on onlineGDB, ideone.com, or codepad.org.
          • You may wish to compile C on your machine, which would be faster, much more powerful, and independent of web connection. You may need to install a compatible free compiler. For Windows, use command-line compilation (invoke "Command Prompt" from the start button). You may need to install Visual Studio first. A lighter alternative is MSYS2 installation.
          • Before the course begins, we recommend refreshing your Python using some basic interactive guide (1, 23, etc.), and becoming familiar with the Numpy, Scipy and Matplotlib libraries, which are used in the course. 
          • C tutorial is also available and highly recommended.
          • Euler Project is a nice project that has plenty of mathematical problems you could solve only by programming, and could help you learn coding in a more interesting way.
          • Guido van Robot is a nice visual programming language that helps junior programmers understand the logic of coding. Recommended for students with no background in coding.


          • Course Policy

            • A weekly lecture (3 hours) and a weekly tutorial (2 hours).
            • A weekly problem set. Submit all (except maybe one) sets on time to attend the exam.
            • Self-grade your problem set within a week after the solutions are posted; we will sample the grades. Final grade: 80% exam, 20% problem sets.