Introduction to GSL - Virginia Tech

Introduction to GSL - Virginia Tech

Introduction to GSL CS 3414 From GNU Scientific Library Reference Manual at What is GSL? The GNU Scientific Library GNU is a recursive acronym for "GNU's Not Unix!, a project started in 1983 by Richard Stallman

GNU is an operating system (HURD kernel) and an extensive collection of computer software GSL is a numerical library for C and C++ programmers GSL is free software distributed under the terms of the GNU General Public License The combination of GNU software and the Linux kernel is commonly known as Linux Functionality

GSL provides a well-defined C language Applications Programming Interface (API) for common numerical functions, such as: Random Numbers Least-Squares Fitting Fast Fourier Transforms Root-Finding Minimization Etc. GSL is thread-safe (the library can be used in

multi-threaded programs) Compiling and Linking The library header files are installed in their own gsl directory. You should write include statements with a gsl/ directory prefix like: #include Compile: gcc -c example.c Link: gcc example.o -lgsl -lgslcblas -lm

One dimensional Root-Finding The header file `gsl_roots.h' contains prototypes for the root finding functions and related declarations. The library provides low level components for a variety of iterative solvers and convergence tests. These can be combined by the user to achieve the desired solution, with full access to the

intermediate steps of the iteration. Root Finding Algorithms Two classes of algorithms root bracketing algorithms begin with a bounded region known to contain a root uses only function evaluations (not derivatives) guaranteed to converge root polishing algorithms

improve an initial guess to the root require both the function and its derivative to be supplied by the user converge only if started close enough to a root Framework The user provides a high-level driver for the algorithms. The library provides the individual functions necessary for each of the steps.

There are three main phases of the iteration. The steps are, initialize solver state, s, for algorithm T update s using the iteration T test s for convergence, and repeat iteration if necessary The state for solver is held in a gsl_root_fsolver struct (a declaration for a grouped list of variables in C) or in gsl_root_fdfsolver struct.

Initializing the Solver gsl_root_fsolver * gsl_root_fsolver_alloc (const gsl_root_fsolver_type * T ) This function returns a pointer to a newly allocated instance of a solver of type T void gsl_root_fsolver_free (gsl_root_fsolver * s) This function frees all the memory associated with the solver s.

Providing the function to solve Data Type: gsl_function This data type defines a general function with parameters. double (* function) (double x, void * params) this function should return the value f(x,params) for argument x and parameters params void * params

a pointer to the parameters of the function Iteration int gsl_root_fsolver_iterate (gsl_root_fsolver * s) perform a single iteration of the solver to update its state s double gsl_root_fsolver_root (const gsl_root_fsolver * s)

The solver maintains a current best estimate of the root at all times. Search Stopping Parameters A root finding procedure should stop when one of the following conditions is true: A root has been found to within the userspecified precision. A user-specified maximum number of iterations has been reached. An error has occurred.

Precision Test int gsl_root_test_interval (double x_lower, double x_upper, double epsabs, double epsrel) |a - b| < epsabs + epsrel min(|a|,|b|) Root Bracketing Algorithms bisection algorithm gsl_root_fsolver_bisection

false position algorithm gsl_root_fsolver_falsepos Brent-Dekker method gsl_root_fsolver_brent Root Finding Algorithms using Derivatives Newton's Method gsl_root_fdfsolver_newton secant method (a simplified version of Newton's method which does not require the computation of the derivative on every step) - gsl_root_fdfsolver_secant

Steffenson Method gsl_root_fdfsolver_steffenson Resource Read GNU Scientific Library Reference Manual at

Recently Viewed Presentations

  • Moving Beyond HB5 Mandates: Building Pathways to College

    Moving Beyond HB5 Mandates: Building Pathways to College

    To achieve our low cost we are making using of an online software: WebWork. WebWork is an online homework originally developed with a 1994 grant from the National Science Foundation at the University of Rochester (Pis Arnold Pizer and Michael...
  • Responding Effectively to Persons Affected by Mental Illness:

    Responding Effectively to Persons Affected by Mental Illness:

    Four Strategies of the ONE MIND CAMPAIGN . Establish a clearly defined and sustainable partnership with one or more community mental health organization(s). Develop and implement a . model policy. addressing police response to persons affected by mental illness
  • Thank You for attending our AIMM Retailer Panel - Home |

    Thank You for attending our AIMM Retailer Panel - Home |

    Personalized "Thank You" cards for orders Lessons Learned #3 Hiring Staff continues to be an important part in the battle to out-service the competition and strengthen the company position.
  • Guide to Network Defense and Countermeasures

    Guide to Network Defense and Countermeasures

    Guide to Network Defense and Countermeasures, 3rd Edition. ... Other devices refer to a database of well-known attack signatures. Traffic that matches stored signatures triggers an alarm ... Simple error-checking procedure.
  • Comments on Identity Management (IdM) at CSU

    Comments on Identity Management (IdM) at CSU

    This reserve is a threshold above which no further proposals would be entertained, and has never been tapped. Discussion is welcome… April 4, 2011. UTFAB Presentation to the SFRB. I've included this slide due to the discussions that SFRB members...
  • Wiebe Bijker: Of Bicycles, Bakelites, and Bulbs Toward

    Wiebe Bijker: Of Bicycles, Bakelites, and Bulbs Toward

    Wiebe Bijker: Of Bicycles, Bakelites, and Bulbs Toward a Theory of Sociotechnical Change Introduction Understanding the place of technology in our lives and in our society.
  • PACU/ICU Handoffs

    PACU/ICU Handoffs

    PACU/ICU Handoffs Enhancing Communication and Continuity of Care Transport to PACU/ICU Circulator obtains room PACU slot/ ICU room assignment If PACU, circulator provides "rolling call" Upon arrival SBAR utilized for report template If ICU, report called 30" prior to transport...
  • Foundations -

    Foundations -

    James H. Brookes, Presbyterian Minister ... Justin writes, 'As, therefore, Christ is the Israel and the Jacob, even so we, who have been quarried out from the bowels of Christ, are the true Israelitic race.' Here is Justin, a gentile...