This book is an easy, concise but fairly complete introduction to ISO/ANSI C++ with special emphasis on object-oriented numeric computation. A user-defined numeric linear algebra library accompanies the book and can be downloaded from the web.
In this much-expanded second edition, author Yair Shapira presents new applications and a substantial extension of the original object-oriented framework to make this popular and comprehensive book even easier to understand and use. It not only introduces the C and C++ programming languages, but also shows how to use them in the numerical solution of partial differential equations (PDEs). The book leads readers through the entire solution process, from the original PDE, through the discretization stage, to the numerical solution of the resulting algebraic system. The high level of abstraction available in C++ is particularly useful in the implementation of complex mathematical objects, such as unstructured mesh, sparse matrix, and multigrid hierarchy, often used in numerical modeling. The well-debugged and tested code segments implement the numerical methods efficiently and transparently in a unified object-oriented approach.
This easy-to-read textbook/reference presents an essential guide to object-oriented C++ programming for scientific computing. With a practical focus on learning by example, the theory is supported by numerous exercises. Features: provides a specific focus on the application of C++ to scientific computing, including parallel computing using MPI; stresses the importance of a clear programming style to minimize the introduction of errors into code; presents a practical introduction to procedural programming in C++, covering variables, flow of control, input and output, pointers, functions, and reference variables; exhibits the efficacy of classes, highlighting the main features of object-orientation; examines more advanced C++ features, such as templates and exceptions; supplies useful tips and examples throughout the text, together with chapter-ending exercises, and code available to download from Springer.
Highlights: builds on knowledge of both FORTRAN and C, the languages most familiar to scientists and engineers; systematically treats object-oriented programming, templates, and the C++ type system; relates the C++ programming process to expressing commonality in the design and implementation of programs; describes how to use existing FORTRAN and C subroutine libraries to implement C++ classes; introduces advanced techniques coordinating templates, inheritance, virtual function interfaces, and exceptions in substantive examples; provides examples, including an extensive family of array classes, smart pointers, class wrappers for LAPACK, classes for abstract algebra and dimensional analysis, function objects, exploiting existing C and FORTRAN libraries, automatic differentiation, and data analysis via nonlinear least squares using the singular value decomposition; and references key sources of new programming ideas and C++ programming techniques.
A visual, interdisciplinary approach to solving problems in numerical methods Computing for Numerical Methods Using Visual C++ fills the need for a complete, authoritative book on the visual solutions to problems in numerical methods using C++. In an age of boundless research, there is a need for a programming language that can successfully bridge the communication gap between a problem and its computing elements through the use of visual-ization for engineers and members of varying disciplines, such as biologists, medical doctors, mathematicians, economists, and politicians. This book takes an interdisciplinary approach to the subject and demonstrates how solving problems in numerical methods using C++ is dominant and practical for implementation due to its flexible language format, object-oriented methodology, and support for high numerical precisions. In an accessible, easy-to-follow style, the authors cover: Numerical modeling using C++ Fundamental mathematical tools MFC interfaces Curve visualization Systems of linear equations Nonlinear equations Interpolation and approximation Differentiation and integration Eigenvalues and Eigenvectors Ordinary differential equations Partial differential equations This reader-friendly book includes a companion Web site, giving readers free access to all of the codes discussed in the book as well as an equation parser called "MyParser" that can be used to develop various numerical applications on Windows. Computing for Numerical Methods Using Visual C++ serves as an excellent reference for students in upper undergraduate- and graduate-level courses in engineering, science, and mathematics. It is also an ideal resource for practitioners using Microsoft Visual C++.
Strategien zur Lösung wissenschaftlicher Probleme mittels Fortran 90 und C++ sind Thema dieses Buches. Behandelt werden Fragestellungen, denen sich Naturwissenschaftler im Alltag häufig gegenübersehen, wie Simulationen, Graphik, Datenanalyse und die Manipulation von Datenstrukturen. Den Autoren kommt es nicht darauf an, zu zeigen, wie man ein Problem codiert - sie zielen eher auf die Vermittlung allgemeingültiger Prinzipien ab. Mit zahlreichen Beispielen. (8/98)
This book focuses on systematic software design approach in C for applications in engineering and science following the latest standard developed by the ANSI C/ISO C Standard Committees called C99.
Bronson's second edition makes C++ accessible to first-level engineering students. The book teaches the fundamentals of the C++ language with a gradual refinement of programming skills from procedural to object-oriented. Part One presents procedural programming with an emphasis on modular program design. Part Two, on object-oriented programming, and Part Three, on data structures, are interchangeable to allow for teaching flexibility. In addition, students are introduced to the fundamentals of software engineering with an emphasis on problem-solving techniques, making the text an ideal choice for both one- and two-semester C++ programming courses.
The authors analyze how the structure of a package determines its developmental complexity according to such measures as bug search times and documentation information content. The work presents arguments for why these issues impact solution cost and time more than does scalable performance. The final chapter explores the question of scalable execution and shows how scalable design relates to scalable execution. The book's focus is on program organization, which has received considerable attention in the broader software engineering community, where graphical description standards for modeling software structure and behavior have been developed by computer scientists. These discussions might be enriched by engineers who write scientific codes. This book aims to bring such scientific programmers into discussion with computer scientists. The authors do so by introducing object-oriented software design patterns in the context of scientific simulation.
At last researchers have an inexpensive library of Java-based numeric procedures for use in scientific computation. The first and only book of its kind, A Numeric Library in Java for Scientists and Engineers is a translation into Java of the library NUMAL (NUMerical procedures in ALgol 60). This groundbreaking text presents procedural descriptions for linear algebra, ordinary and partial differential equations, optimization, parameter estimation, mathematical physics, and other tools that are indispensable to any dynamic research group. The book offers test programs that allow researchers to execute the examples provided; users are free to construct their own tests and apply the numeric procedures to them in order to observe a successful computation or simulate failure. The entry for each procedure is logically presented, with name, usage parameters, and Java code included. This handbook serves as a powerful research tool, enabling the performance of critical computations in Java. It stands as a cost-efficient alternative to expensive commercial software package of procedural components.