Introduction to Scientific Computing

Total Page:16

File Type:pdf, Size:1020Kb

Introduction to Scientific Computing 1. Tools: Libraries and Software • In addition to standart tools like editors, compilers, or debug- gers, there is a lot of (commercial or public domain) support available: – Modelling: Computer algebra programs like Mathematica, Tools: Libraries and . Maple, Axiom, or Reduce support derivations and proofs of Libraries and Collections theorems via symbolic means. Libraries and Collections – Numerics: Mathematica, Maple, or MATLAB support the Libraries and Collections development, testing, and analysis of (numerical) algorithms BLAS and allow an efficient prototyping. LAPACK – Implementation: A zoo of (numerical) libraries provide up- Libraries and Collections to-date modules for standard tasks (numerical linear alge- Libraries and Collections bra etc.), tailored to specific target architectures. Tools for Algorithm . – Visualization: Packages like IDL, IRIS Explorer, or AVS/Express Maple offer (nearly) all you want. MATLAB Page 1 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 2. Libraries and Collections • GAMS: Guide to Available Mathematical Software – service offered bu the National Institute of Standards & Tech- nology – see http://gams.nist.gov/ Tools: Libraries and . – catalogue and database of more than 100 packages and Libraries and Collections libraries with together several tens of thousands of routines Libraries and Collections – Topics range from number theory to statistics! Libraries and Collections BLAS – majority: FORTRAN programs for numerical tasks (sys- LAPACK tems of linear equations, eigenvalues, roots, differential equa- Libraries and Collections tions, . ) Libraries and Collections – includes both public domain material (at NIST or at NETLIB, Tools for Algorithm . see below) and commercial (licenced) products. Maple – good user guidance MATLAB Page 2 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 3. Libraries and Collections • Matrix market – see http://math.nist.gov/MatrixMarket/ – repository of test data for use in comparative studies of al- gorithms for numerical linear algebra Tools: Libraries and . – features nearly 500 (sparse) matrices from various fields of Libraries and Collections applications (chemical engineering, fluid flow, power sys- Libraries and Collections tem networks, quantum physics, or structural engineering, Libraries and Collections e.g.) BLAS – provides also matrix generation tools LAPACK Libraries and Collections – classification according to matrix properties: Libraries and Collections number filed: real or complex * Tools for Algorithm . nonzero structure: dense, banded sparse, tridiagonal, * Maple ... MATLAB * symmetry: none, symmetric, skewsymmetric, SPD, SSPD,. * shape: square, more rows than columns,. Page 3 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 4. Libraries and Collections • NETLIB: repository of free software for numerical purposes – see http://www.netlib.org/ – offered by University of Tennessee and Oak Ridge Nat’l Lab – several mirrored copies all over the world Tools: Libraries and . Libraries and Collections – about 135 million requests since 1985, > 40 million in 2000 Libraries and Collections – > 90% http, rest ftp and email Libraries and Collections – about 160 different libraries, among which BLAS LAPACK * BLAS (Basic Linear Algebra Subprograms) Libraries and Collections * LAPACK (Linear Algebra PACKage) Libraries and Collections * ODEPACK (ordinary differential equations) Tools for Algorithm . * MPI (message passing interface, for parallelization) PLTMG (elliptic boundary value problems) Maple * MATLAB Page 4 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 5. BLAS • collection of robust, efficient, and portable modules for elemen- tary vector and matrix operations • basis for LAPACK routines, for example • allows plug-and-play for numerical subroutines Tools: Libraries and . Libraries and Collections • FORTRAN, to be used from FORTRAN/C/C++ Libraries and Collections • Java BLAS available, too Libraries and Collections BLAS • levels: LAPACK Level 1: vector and vector-vector operations (norm, scalar product, Libraries and Collections vector addition, SAXPY, . ) Libraries and Collections Level 2: matrix-vector operations (rank-1-modifications, matrix-vector Tools for Algorithm . product, tridiagonal systems); vector processors Maple MATLAB Level 3: matrix-matrix operations; parallel computers! Page 5 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 6. LAPACK • popular collection of FORTRAN subroutines for standard prob- lems from numerical linear algebra like linear systems, regres- sion, eigenvalues, SVD, . • dense and band matrices (not general sparse ones) Tools: Libraries and . • successor of EISPACK and LINPACK, tuning for modern mi- Libraries and Collections croprocessors and supercomputer architectures (reduction of Libraries and Collections memory accesses, block operations, . ) Libraries and Collections BLAS • LAPACK routines use BLAS modules LAPACK • variants: Libraries and Collections Libraries and Collections – LAPACK90, CLAPACK, LAPACK++ Tools for Algorithm . – ScaLAPACK (MIMD systems, scalability!) Maple MATLAB Page 6 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 7. Libraries and Collections • Visual Numerics: – see http://www.vni.com – mathematical libraries – predecessor: IMSL (The Int’l Math. & Statist. Library) Tools: Libraries and . Libraries and Collections • Diffpack: Libraries and Collections – offered by Numerical Objects, see http://www.nobjects.com Libraries and Collections BLAS – environment for the development of code for numerical sim- ulation problems plus libraries of efficient routines LAPACK Libraries and Collections – object-oriented concept, available for most UNIX platforms Libraries and Collections • NAG (Numerical Algorithms Group): Tools for Algorithm . Maple – see http://www.nag.co.uk/ MATLAB – non-profit software house, spin-off of Oxford University – FORTRAN/FORTRAN90/C/Parallel libraries; – AXIOM; IRIS Explorer (Visual.); Fastflo (CFD and more) Page 7 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 8. Libraries and Collections • Numerical Recipes: – see http://www.nr.com – book series The Art of Scientific Computing (CU Press) – sophisticated algorithms and their implementations Tools: Libraries and . Libraries and Collections – available for FORTRAN 77, FORTRAN 90, C, Pascal, . Libraries and Collections – corresponding software is licenced and commercial Libraries and Collections – about 350 routines for topics like BLAS LAPACK * solution of linear systems Libraries and Collections * interpolation and extrapolation Libraries and Collections * numerical quadrature Tools for Algorithm . * differentiation and approximation roots and extrema Maple * MATLAB * eigenvalues, differential equations, and more Page 8 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 9. Tools for Algorithm Development • Libraries offer tested and efficient (w.r.t. both storage and run- time) standard modules for competitive simulation codes (do something classical cheap!) • Another problem is algorithm development (develop something Tools: Libraries and . new and cheaper!): Libraries and Collections – design of algorithms Libraries and Collections – testing and rapid prototyping Libraries and Collections BLAS – analysis (convergence behaviour etc.) LAPACK – not yet: production runs, memory or runtime optimization Libraries and Collections • widespread solutions: Libraries and Collections Tools for Algorithm . – computer algebra programs like Maple or Mathematica Maple – MATLAB MATLAB Page 9 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 10. Maple • by Waterloo Maple Inc., a spin-off of the University of Waterloo in Ontario (see http://www.maplesoft.com) • originally a mere computer algebra program, today “interactive environment for mathematical problem solving and program- Tools: Libraries and . ming” Libraries and Collections • focus: Libraries and Collections Libraries and Collections – symbolic computations, formula manipulation BLAS – numerical computations with arbitrary accuracy LAPACK – 2D and 3D graphical output Libraries and Collections – straightforward programming for algorithm development Libraries and Collections Tools for Algorithm . • structure: Maple kernel + main library + mixed library + packages MATLAB Page 10 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz 11. MATLAB • by The MathWorks (see http://www.mathworks.com/) • originally: primarily for use in (maths) education • today: “high-performance numerical computation and visualiza- tion software”, standard tool for scientific computing research Tools: Libraries and . groups: Libraries and Collections Libraries and Collections – development, prototyping, programming Libraries and Collections – computations BLAS – visualization LAPACK Libraries and Collections • singular success story: >500 employees, >100 countries, >2000 Libraries and Collections universities and research institutes Tools for Algorithm . • structure: basic program plus a collection of specialized tool Maple boxes MATLAB Page 11 of 11 Introduction to Scientific Computing 3. Tools/Libs Hans-Joachim Bungartz.
Recommended publications
  • (LINUX) Computer in Three Parts
    Science on a (LINUX) computer in three parts Introductory short couse, Part II Thorsten Becker University of Southern California, Los Angeles September 2007 The first part dealt with ● UNIX: what and why ● File system, Window managers ● Shell environment ● Editing files ● Command line tools ● Scripts and GUIs ● Virtualization Contents part II ● Typesetting ● Programming – common languages – philosophy – compiling, debugging, make, version control – C and F77 interfacing – libraries and packages ● Number crunching ● Visualization tools Programming: Traditional languages in the natural sciences ● Fortran: higher level, good for math – F77: legacy, don't use (but know how to read) – F90/F95: nice vector features, finally implements C capabilities (structures, memory allocation) ● C: low level (e.g. pointers), better structured – very close to UNIX philosophy – structures offer nice way of modular programming, see Wikipedia on C ● I recommend F95, and use C happily myself Programming: Some Languages that haven't completely made it to scientific computing ● C++: object oriented programming model – reusable objects with methods and such – can be partly realized by modular programming in C ● Java: what's good for commercial projects (or smart, or elegant) doesn't have to be good for scientific computing ● Concern about portability as well as general access Programming: Compromises ● Python – Object oriented – Interpreted – Interfaces easily with F90/C – Numerous scientific packages Programming: Other interpreted, high- abstraction languages
    [Show full text]
  • 4.4 Improper Integrals 135
    4.4 Improper Integrals 135 converges (with parameters as shown above) on the very first extrapolation, after just 5 calls to trapzd, while qsimp requires 8 calls (8 times as many evaluations of the integrand) and qtrap requires 13 calls (making 256 times as many evaluations of the integrand). CITED REFERENCES AND FURTHER READING: http://www.nr.com or call 1-800-872-7423 (North America only), or send email to [email protected] (outside North Amer readable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, v Permission is granted for internet users to make one paper copy their own personal use. Further reproduction, or any copyin Copyright (C) 1986-1992 by Cambridge University Press. Programs Copyright (C) 1986-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Stoer, J., and Bulirsch, R. 1980, Introduction to Numerical Analysis (New York: Springer-Verlag), §§3.4–3.5. Dahlquist, G., and Bjorck, A. 1974, Numerical Methods (Englewood Cliffs, NJ: Prentice-Hall), §§7.4.1–7.4.2. Ralston, A., and Rabinowitz, P. 1978, A First Course in Numerical Analysis, 2nd ed. (New York: McGraw-Hill), §4.10–2. 4.4 Improper Integrals For our present purposes, an integral will be “improper” if it has any of the following problems: • its integrand goes to a finite limiting value at finite upper and lower limits, but cannot be evaluated right on one of those limits (e.g., sin x/x at x =0) • its upper limit is ∞ , or its lower limit is −∞ • it has an integrable singularity at either limit (e.g., x−1/2 at x =0) • it has an integrable singularity at a known place between its upper and lower limits • it has an integrable singularity at an unknown place between its upper and lower limits ∞ −1 If an integral is infinite (e.g., 1 x dx), or does not exist in a limiting sense ∞ (e.g., −∞ cos xdx), we do not call it improper; we call it impossible.
    [Show full text]
  • 3.2 Rational Function Interpolation and Extrapolation
    104 Chapter 3. Interpolation and Extrapolation do 11 i=1,n Here we find the index ns of the closest table entry, dift=abs(x-xa(i)) if (dift.lt.dif) then ns=i dif=dift endif c(i)=ya(i) and initialize the tableau of c’s and d’s. d(i)=ya(i) http://www.nr.com or call 1-800-872-7423 (North America only), or send email to [email protected] (outside North Amer readable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, v Permission is granted for internet users to make one paper copy their own personal use. Further reproduction, or any copyin Copyright (C) 1986-1992 by Cambridge University Press. Programs Copyright (C) 1986-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) enddo 11 y=ya(ns) This is the initial approximation to y. ns=ns-1 do 13 m=1,n-1 For each column of the tableau, do 12 i=1,n-m we loop over the current c’s and d’s and update them. ho=xa(i)-x hp=xa(i+m)-x w=c(i+1)-d(i) den=ho-hp if(den.eq.0.)pause ’failure in polint’ This error can occur only if two input xa’s are (to within roundoff)identical. den=w/den d(i)=hp*den Here the c’s and d’s are updated. c(i)=ho*den enddo 12 if (2*ns.lt.n-m)then After each column in the tableau is completed, we decide dy=c(ns+1) which correction, c or d, we want to add to our accu- else mulating value of y, i.e., which path to take through dy=d(ns) the tableau—forking up or down.
    [Show full text]
  • GNU Scientific Library – 設計と実装の指針
    GNU Scienti¯c Library { 設計と実装の指針 マーク・ガラッシ (Mark Galassi) Los Alamos National Laboratory ジェイムズ・ティラー (James Theiler) Astrophysics and Radiation Measurements Group, Los Alamos National Laboratory ブライアン・ガウ (Brian Gough) Network Theory Limited とみながだいすけ訳 (translation: Daisuke Tominaga) 産業技術総合研究所 生命情報工学研究センター Copyright °c 1996,1997,1998,1999,2000,2001,2004 The GSL Project. Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modi¯ed versions of this manual under the con- ditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Permission is granted to copy and distribute translations of this manual into another lan- guage, under the above conditions for modi¯ed versions, except that this permission notice may be stated in a translation approved by the Foundation. このライセンスの文面をつけさえすれば、この文書をそのままの形でコピー、再配布して構 いません。また、この文書を改編したものについても、同じライセンスにしたがうのであれ ば、コピー、再配布して構いません。この文書を翻訳したものについても、米フリーソフト ウェア財団 (the Free Software Foundation) が認可した翻訳済みのライセンス文面を添付す れば、コピー、再配布して構いません。 そういうわけで、この日本語に翻訳した文書は、GFDL 1.3 にしたがった複製、再配布を認 めるものとします。ライセンスの詳細はこの文書に添付されています。 平成 21 年 6 月 4 日 とみながだいすけ i Table of Contents GSL について :::::::::::::::::::::::::::::::::::::::: 1 1 目標 :::::::::::::::::::::::::::::::::::::::::::::: 2 2 開発への参加:::::::::::::::::::::::::::::::::::::: 4 2.1 パッケージ :::::::::::::::::::::::::::::::::::::::::::::::::::::
    [Show full text]
  • Numerical Methods in Engineering with MATLAB R
    P1: PHB cuus734 CUUS734/Kiusalaas 0 521 19133 3 August 29, 2009 12:17 This page intentionally left blank ii P1: PHB cuus734 CUUS734/Kiusalaas 0 521 19133 3 August 29, 2009 12:17 Numerical Methods in Engineering with MATLAB R Second Edition Numerical Methods in Engineering with MATLAB R is a text for engi- neering students and a reference for practicing engineers. The choice of numerical methods was based on their relevance to engineering prob- lems. Every method is discussed thoroughly and illustrated with prob- lems involving both hand computation and programming. MATLAB M-files accompany each method and are available on the book Web site. This code is made simple and easy to understand by avoiding com- plex bookkeeping schemes while maintaining the essential features of the method. MATLAB was chosen as the example language because of its ubiquitous use in engineering studies and practice. This new edi- tion includes the new MATLAB anonymous functions, which allow the programmer to embed functions into the program rather than storing them as separate files. Other changes include the addition of rational function interpolation in Chapter 3, the addition of Ridder’s method in place of Brent’s method in Chapter 4, and the addition of the downhill simplex method in place of the Fletcher–Reeves method of optimization in Chapter 10. Jaan Kiusalaas is a Professor Emeritus in the Department of Engineer- ing Science and Mechanics at the Pennsylvania State University. He has taught numerical methods, including finite element and boundary ele- ment methods, for more than 30 years. He is also the co-author of four other books – Engineering Mechanics: Statics, Engineering Mechanics: Dynamics, Mechanics of Materials,andNumerical Methods in Engineer- ing with Python, Second Edition.
    [Show full text]
  • NUMERICAL RECIPES in FORTRAN 77: the ART of SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) Copyright (C) 1986-1992 by Cambridge University Press
    Numerical Recipes http://www.nr.com or call 1-800-872-7423 (North America only), or send email to [email protected] (outside North Amer readable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, v Permission is granted for internet users to make one paper copy their own personal use. Further reproduction, or any copyin Copyright (C) 1986-1992 by Cambridge University Press. Programs Copyright (C) 1986-1992 by Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) in Fortran 77 The Art of Scientific Computing Second Edition Volume 1 of Fortran Numerical Recipes William H. Press Harvard-Smithsonian Center for Astrophysics Saul A. Teukolsky Department of Physics, Cornell University William T. Vetterling Polaroid Corporation Brian P. Flannery g of machine- EXXON Research and Engineering Company isit website ica). Published by the Press Syndicate of the University of Cambridge The Pitt Building, Trumpington Street, Cambridge CB2 1RP 40 West 20th Street, New York, NY 10011-4211, USA 10 Stamford Road, Oakleigh, Melbourne 3166, Australia Copyright c Cambridge University Press 1986, 1992 except for §13.10, which is placed into the public domain, and except for all other computer programs and procedures, which are http://www.nr.com or call 1-800-872-7423 (North America only), or send email to [email protected] (outside North Amer readable files (including this one) to any server computer, is strictly prohibited. To order Numerical Recipes books or CDROMs, v Permission is granted for internet users to make one paper copy their own personal use.
    [Show full text]
  • Chapter 1. Preliminaries
    Chapter 1. Preliminaries 1.0 Introduction This book, like its sibling versions in other computer languages, is supposed to teach you methods of numerical computing that are practical, efficient, and (insofar as possible) elegant. We presume throughout this book that you, the reader, have particular tasks that you want to get done. We view our job as educating you on how to proceed. Occasionally we may try to reroute you briefly onto a particularly beautiful side road; but by and large, we will guide you along main highways that lead to practical destinations. Throughout this book, you will find us fearlessly editorializing, telling you what you should and shouldn’t do. This prescriptive tone results from a conscious decision on our part, and we hope that you will not find it irritating. We do not claim that our advice is infallible! Rather, we are reacting against a tendency, in the textbook literature of computation, to discuss every possible method that has ever been invented, without ever offering a practical judgment on relative merit. We do, therefore, offer you our practical judgments whenever we can. As you gain experience, you will form your own opinion of how reliable our advice is. We presume that you are able to read computer programs in C++, that being the language of this version of Numerical Recipes. The books Numerical Recipes in Fortran 77, Numerical Recipes in Fortran 90, and Numerical Recipes in C are separately available, if you prefer to program in one of those languages. Earlier editions of Numerical Recipes in Pascal and Numerical Recipes Routines and Ex- amples in BASIC are also available; while not containing the additional material of the Second Edition versions, these versions are perfectly serviceable if Pascal or BASIC is your language of choice.
    [Show full text]
  • 9.4 Newton-Raphson Method Using Derivative 355
    9.4 Newton-Raphson Method Using Derivative 355 endif if(p.gt.0.) q=-q Check whether in bounds. p=abs(p) if(2.*p .lt. min(3.*xm*q-abs(tol1*q),abs(e*q))) then e=d Accept interpolation. d=p/q else d=xm Interpolation failed, use bisection. visit website http://www.nr.com or call 1-800-872-7423 (North America only),or send email to [email protected] (outside North America). readable files (including this one) to any servercomputer, is strictly prohibited. To order Numerical Recipes books,diskettes, or CDROMs Permission is granted for internet users to make one paper copy their own personal use. Further reproduction, or any copying of machine- Copyright (C) 1986-1992 by Cambridge University Press.Programs Numerical Recipes Software. Sample page from NUMERICAL RECIPES IN FORTRAN 77: THE ART OF SCIENTIFIC COMPUTING (ISBN 0-521-43064-X) e=d endif else Bounds decreasing too slowly, use bisection. d=xm e=d endif a=b Move last best guess to a. fa=fb if(abs(d) .gt. tol1) then Evaluate new trial root. b=b+d else b=b+sign(tol1,xm) endif fb=func(b) enddo 11 pause ’zbrent exceeding maximum iterations’ zbrent=b return END CITED REFERENCES AND FURTHER READING: Brent, R.P. 1973, Algorithms for Minimization without Derivatives (Englewood Cliffs, NJ: Prentice- Hall), Chapters 3, 4. [1] Forsythe, G.E., Malcolm, M.A., and Moler, C.B. 1977, Computer Methods for Mathematical Computations (Englewood Cliffs, NJ: Prentice-Hall), 7.2. § 9.4 Newton-Raphson Method Using Derivative Perhaps the most celebrated of all one-dimensional root-®ndingroutines is New- ton'smethod, also called the Newton-Raphson method.
    [Show full text]
  • Numerical Recipes in C++ the Art of Scientific Computing Second Edition
    Numerical Recipes in C++ The Art of Scientific Computing Second Edition William H. Press Los Alamos National Laboratory Saul A. Teukolsky Department of Physics, Cornell University William T. Vetterling Polaroid Corporation Brian P. Flannery EXXON Research and Engineering Company PUBLISHED BY THE PRESS SYNDICATE OF THE UNIVERSITY OF CAMBRIDGE The Pitt Building, Trumpington Street, Cambridge, United Kingdom CAMBRIDGE UNIVERSITY PRESS The Edinburgh Building, Cambridge CB2 2RU, UK 40 West 20th Street, New York, NY 10011-4211, USA 477 Williamstown Road, Port Melbourne, VIC, 3207, Australia Ruiz de Alarcon´ 13, 28014 Madrid, Spain Dock House, The Waterfront, Cape Town 8001, South Africa http://www.cambridge.org c Cambridge University Press 1988, 1992, 2002 except for §13.10 and Appendix B, which are placed into the public domain, and except for all other computer programs and procedures, which are c Numerical Recipes Software 1987, 1988, 1992, 1997, 2002 All Rights Reserved. This book is copyright. Subject to statutory exception and to the provisions of relevant collective licensing agreements, no reproduction of any part may take place without the written permission of Cambridge University Press. Some sections of this book were originally published, in different form, in Computers in Physics magazine, c American Institute of Physics, 1988–1992. First Edition originally published 1988; Second Edition originally published 1992; C++ edition originally published 2002. This printing is corrected to software version 2.10 Printed in the United States of America Typeface Times 10/12 pt. System TEX[AU] Affiliations shown on title page are for purposes of identification only. No implication that the works contained herein were created in the course of employment is intended, nor is any knowledge of or endorsement of these works by the listed institutions to be inferred.
    [Show full text]
  • MATLAB/Octave
    14 Svein Linge · Hans Petter Langtangen Programming for Computations – MATLAB/Octave Editorial Board T. J.Barth M.Griebel D.E.Keyes R.M.Nieminen D.Roose T.Schlick Texts in Computational 14 Science and Engineering Editors Timothy J. Barth Michael Griebel David E. Keyes Risto M. Nieminen Dirk Roose Tamar Schlick More information about this series at http://www.springer.com/series/5151 Svein Linge Hans Petter Langtangen Programming for Computations –MATLAB/Octave A Gentle Introduction to Numerical Simulations with MATLAB/Octave Svein Linge Hans Petter Langtangen Department of Process, Energy and Simula Research Laboratory Environmental Technology Lysaker, Norway University College of Southeast Norway Porsgrunn, Norway On leave from: Department of Informatics University of Oslo Oslo, Norway ISSN 1611-0994 Texts in Computational Science and Engineering ISBN 978-3-319-32451-7 ISBN 978-3-319-32452-4 (eBook) DOI 10.1007/978-3-319-32452-4 Springer Heidelberg Dordrecht London New York Library of Congress Control Number: 2016947215 Mathematic Subject Classification (2010): 34, 35, 65, 68 © The Editor(s) (if applicable) and the Author(s) 2016 This book is published open access. Open Access This book is distributed under the terms of the Creative Commons Attribution-Non- Commercial 4.0 International License (http://creativecommons.org/licenses/by-nc/4.0/), which permits any noncommercial use, duplication, adaptation, distribution and reproduction in any medium or format, as long as you give appropriate credit to the original author(s) and the source, a link is provided to the Creative Commons license and any changes made are indicated. The images or other third party material in this book are included in the work’s Creative Commons license, unless indicated otherwise in the credit line; if such material is not included in the work’s Creative Commons license and the respective action is not permitted by statutory regulation, users will need to obtain permission from the license holder to duplicate, adapt or reproduce the material.
    [Show full text]
  • GNU Scientific Library (GSL)
    GNU Scientific Library (GSL) Http://www.gnu.org/software/gsl/ GSL Team M.Galassi, J. Theiler, G. Jungman (LANL) Brian Gough (GNU) What is GSL ? Numerical library for the GNU system Development started in 1996 Written in ANSI C Free software under the GNU GPL Relase 1.0 was in 2001 About 1000 functions (rngs, special fns, ...) Currently at release 1.3 What's GNU? Project to create free Unix operating system Started in 1984 In use today: GNU/Linux Demonstration of the viability of free software model What is Free Software? Four freedoms ¡ 0) to run the program ¡ 1) to study the program ¡ 2) to modify the program ¡ 3) to share the program Why Free Software? Copyright system invented several centuries ago Designed for books Software is different ¡ Difference between source and object files ¡ Development through incremental improvements Different system appropriate Software Model Software should be considered as a field of applied mathematics/computer science ¡ Everyone works together to solve problems ¡ Everyone benefits from the results GSL Motivation Needed a numerical library that could be used in free software (GPL'd) applications Existing Libraries ¡ Proprietary: NAG, IMSL ¡ Numerical Recipes (not free) ¡ .... Proprietary licenses incompatible with large-scale scientific collaboration Functionality (Ported Packages) Ports of well known public domain Fortran packages ¡ FFTPACK ¡ MINPACK ¡ QUADPACK ¡ MISCFUN ¡ VEGAS / MISER ¡ BLAS (CBLAS) Functionality Complex Numbers Roots of Polynomials Special Functions Vectors and Matrices Permutations
    [Show full text]
  • Financial Numerical Recipes in C++
    Financial Numerical Recipes in C++. Bernt Arne Ødegaard June 2014 5.1 The interchangeability of discount factors, spot interest rates and forward interest rates . 52 5.2 The term structure as an object . 55 5.2.1 Base class . 55 5.2.2 Flat term structure. 57 5.3 Using the currently observed term structure. 58 5.3.1 Linear Interpolation. 59 5.3.2 Interpolated term structure class. 61 Contents 5.4 Bond calculations with a general term structure and continous compounding . 64 6 The Mean Variance Frontier 67 6.1 Setup . 67 6.2 The minimum variance frontier . 69 1 On C++ and programming. 5 6.3 Calculation of frontier portfolios . 69 1.1 Compiling and linking . 5 6.4 The global minimum variance portfolio . 72 1.2 The structure of a C++ program . 6 6.5 Efficient portfolios . 72 1.2.1 Types . 6 6.6 The zero beta portfolio . 73 1.2.2 Operations . 6 6.7 Allowing for a riskless asset. 73 1.2.3 Functions and libraries . 7 6.8 Efficient sets with risk free assets. 74 1.2.4 Templates and libraries . 7 6.9 Short-sale constraints . 75 1.2.5 Flow control . 8 6.10 The Sharpe Ratio . 75 1.2.6 Input Output . 8 6.11 Equilibrium: CAPM . 76 1.2.7 Splitting up a program . 8 6.11.1 Treynor . 76 1.2.8 Namespaces . 9 6.11.2 Jensen . 76 1.3 Extending the language, the class concept. 9 6.12 Working with Mean Variance and CAPM . 76 1.3.1 date, an example class .
    [Show full text]