Practical Scientific Computing
By Muhammad Ali and Victor Zalizniak
()
About this ebook
The first section of the book presents numEclipse, an open source tool for numerical computing based on the notion of MATLAB®. numEclipse is implemented as a plug-in for Eclipse, a leading integrated development environment for Java programming. The second section studies the classical methods of numerical analysis. Numerical algorithms and their implementations are presented using numEclipse.
Practical scientific computing is an invaluable reference for undergraduate engineering, science and mathematics students taking numerical methods courses. It will also be a useful handbook for postgraduate researchers and professionals whose work involves scientific computing.
- An invaluable reference for undergraduate engineering, science and mathematics students taking numerical methods courses
- Guides the reader through developing a deep understanding of classical numerical methods
- Features a comprehensive analysis of numEclipse including numerical algorithms and their implementations
Muhammad Ali
Yanbu University College Saudi Arabia and worked as Assistant Professor of Computer Information Science at Higher Colleges of Technology United Arab Emirates.
Read more from Muhammad Ali
The Soul of a Butterfly: Reflections on Life's Journey Rating: 4 out of 5 stars4/5The Common Thread: Of Overcoming Adversity & Living Your Dreams Rating: 1 out of 5 stars1/5Daddy Daughter Time Rating: 0 out of 5 stars0 ratings
Related to Practical Scientific Computing
Related ebooks
Qt 5 Blueprints Rating: 4 out of 5 stars4/5Application Development with Qt Creator - Second Edition Rating: 4 out of 5 stars4/5MATLAB Machine Learning Recipes: A Problem-Solution Approach Rating: 0 out of 5 stars0 ratingsLLVM Essentials Rating: 1 out of 5 stars1/5Introduction to Parallel Programming Rating: 0 out of 5 stars0 ratingsInstant MinGW Starter Rating: 0 out of 5 stars0 ratingsMastering C++ Network Automation Rating: 0 out of 5 stars0 ratingsVisual Media Processing Using MATLAB Beginner's Guide Rating: 0 out of 5 stars0 ratingsCUDA Fortran for Scientists and Engineers: Best Practices for Efficient CUDA Fortran Programming Rating: 0 out of 5 stars0 ratingsComputer Programming and Architecture: The Vax Rating: 0 out of 5 stars0 ratingsPractical Parallel Programming Rating: 0 out of 5 stars0 ratingsCooperative Control of Multi-Agent Systems: An Optimal and Robust Perspective Rating: 0 out of 5 stars0 ratingsHeterogeneous Computing with OpenCL 2.0 Rating: 0 out of 5 stars0 ratingsLearning Automata: Theory and Applications Rating: 0 out of 5 stars0 ratingsPractical MATLAB Deep Learning: A Project-Based Approach Rating: 0 out of 5 stars0 ratingsAn Introduction to Computational Fluid Mechanics by Example Rating: 5 out of 5 stars5/5Introduction to Computational Science: Modeling and Simulation for the Sciences - Second Edition Rating: 3 out of 5 stars3/5Programming Language Structures Rating: 0 out of 5 stars0 ratingsOpenGL Data Visualization Cookbook Rating: 0 out of 5 stars0 ratingsLighttpd Rating: 4 out of 5 stars4/5Practical Parallel Computing Rating: 0 out of 5 stars0 ratingsIdeas of Quantum Chemistry: Volume 2: Interactions Rating: 4 out of 5 stars4/5Rapid BeagleBoard Prototyping with MATLAB and Simulink Rating: 0 out of 5 stars0 ratingsThe Numerical Method of Lines: Integration of Partial Differential Equations Rating: 0 out of 5 stars0 ratingsComputational Modeling for Fluid Flow and Interfacial Transport Rating: 0 out of 5 stars0 ratingsQuantum Mechanics in Hilbert Space: Second Edition Rating: 4 out of 5 stars4/5GNU Octave Beginner's Guide Rating: 3 out of 5 stars3/5Fundamental Concepts of MATLAB Programming: From Learning the Basics to Solving a Problem with MATLAB Rating: 0 out of 5 stars0 ratingsGnuplot in Action: Understanding data with graphs Rating: 4 out of 5 stars4/5jMonkeyEngine 3.0 Beginner's Guide Rating: 0 out of 5 stars0 ratings
Mathematics For You
Quantum Physics for Beginners Rating: 4 out of 5 stars4/5Geometry For Dummies Rating: 5 out of 5 stars5/5Algebra I Workbook For Dummies Rating: 3 out of 5 stars3/5Basic Math & Pre-Algebra For Dummies Rating: 4 out of 5 stars4/5Game Theory: A Simple Introduction Rating: 4 out of 5 stars4/5Algebra - The Very Basics Rating: 5 out of 5 stars5/5Practice Makes Perfect Algebra II Review and Workbook, Second Edition Rating: 4 out of 5 stars4/5Real Estate by the Numbers: A Complete Reference Guide to Deal Analysis Rating: 0 out of 5 stars0 ratingsPrecalculus: A Self-Teaching Guide Rating: 4 out of 5 stars4/5The Little Book of Mathematical Principles, Theories & Things Rating: 3 out of 5 stars3/5Mental Math Secrets - How To Be a Human Calculator Rating: 5 out of 5 stars5/5Calculus Made Easy Rating: 4 out of 5 stars4/5The Everything Guide to Algebra: A Step-by-Step Guide to the Basics of Algebra - in Plain English! Rating: 4 out of 5 stars4/5Painless Geometry Rating: 4 out of 5 stars4/5Relativity: The special and the general theory Rating: 5 out of 5 stars5/5Is God a Mathematician? Rating: 4 out of 5 stars4/5The Golden Ratio: The Divine Beauty of Mathematics Rating: 5 out of 5 stars5/5ACT Math & Science Prep: Includes 500+ Practice Questions Rating: 3 out of 5 stars3/5The Thirteen Books of the Elements, Vol. 1 Rating: 0 out of 5 stars0 ratingsSummary of The Black Swan: by Nassim Nicholas Taleb | Includes Analysis Rating: 5 out of 5 stars5/5The Math of Life and Death: 7 Mathematical Principles That Shape Our Lives Rating: 4 out of 5 stars4/5The Elements of Euclid for the Use of Schools and Colleges (Illustrated) Rating: 0 out of 5 stars0 ratingsThe Math Book: From Pythagoras to the 57th Dimension, 250 Milestones in the History of Mathematics Rating: 3 out of 5 stars3/5My Best Mathematical and Logic Puzzles Rating: 5 out of 5 stars5/5See Ya Later Calculator: Simple Math Tricks You Can Do in Your Head Rating: 4 out of 5 stars4/5
Reviews for Practical Scientific Computing
0 ratings0 reviews
Book preview
Practical Scientific Computing - Muhammad Ali
reality.
Part I
1
Introduction
Computers were initially developed with the intention to solve numerical problems for military applications. The programs were written in absolute numeric machine language and punched in paper tapes. The process of writing programs, scheduling the execution in a batch mode and collection of results was long and complex. This tedious process did not allow any room for making mistakes. The late 1950s saw the beginning of research into numerical linear algebra. The emergence of FORTRAN as a language for scientific computation triggered the development of matrix computation libraries, i.e., EISPACK, LINPACK. The availability of these libraries did not ease the process of writing programs. Programmers still had to go through the cycle of writing, executing, collecting results and debugging. In the late 1970s, Cleve Moler developed the first version of MATLAB to ease the pain of his students. This version did not allow for M-files or toolboxes but it did have a set of 80 useful functions with support for matrix data type. The original version was developed in FORTRAN. The first commercial version released in 1984 was developed in C with support for M-files, toolboxes and plotting functions. MATLAB provided an interactive interface to the EISPACK and LINPACK. This eliminated the development cycle and the users were able to view the results of their commands immediately due to the very nature of an interpreter. Today, it is a mature scientific computing environment with millions of users worldwide.
With all the good things that it offers, MATLAB is accessible to only those users who can afford to purchase the expensive license. There has been a number of attempts to develop an open source clone for MATLAB. The most notable among them are GNU Octave, Scilab and RLab. They provide matrices as a data type, support complex numbers, offer a rich set of mathematical functions and have the ability to define new functions using scripting language similar to MATLAB. There are many other tools in this domain and numEclipse is a new entrant in this arena.
numEclipse is built as a plug-in for eclipse so before we delve into the details of numEclipse we need to look at eclipse. It is generally known as an Integrated Development Environment (IDE) for Java. In fact, it is more than just an IDE; it is a framework which can be extended to develop almost any application. The framework allows development of IDE for any programming language as a plug-in. The Java development support is also provided through a built-in plug-in called Java Development Toolkit (JDT). Today a number of programming languages like C/C++, Fortran, etc. are supported by eclipse. The aim behind the development of numEclipse as an eclipse plug-in was to develop an IDE for scientific computing. In the world of scientific tools, IDE means interactive development environment rather than integrated development environment. If you look at 3Ms (MATLAB, Mathematica & Maple) they are highly interactive due to the very nature of an interpreter and geared towards computational experimentations by individual users rather than supporting team based project development. The development of a scientific application could be a very complex task involving a large team with the need to support multiple versions of the application. This could not be achieved without a proper IDE with the notion of project and integration to source control repository. Sometimes, it is also desirable to write programs or functions in a highlevel programming language other than the native scripting language offered by the tool. A good IDE should provide the ability to write programs in more than one language with the support to compile, link, execute and test the programs within the same IDE. Fortunately, the design decision to develop numEclipse as an eclipse plug-in enabled all these capabilities. numEclipse implements a subset of MATLAB and GNU Octave’s scripting language, m-script, this allows development of modules in specialized areas like MATLAB toolboxes. The pluggable architecture provides the ability to override the basic mathematical operations like matrix multiplication and addition.
In the following sections, we will learn to create a numEclipse project. We will look at the user interface including the numEclipse perspective and related views. We will also learn about using the interpreter for interactive computation as we would do in MATLAB or Octave. We will write and execute a program written in m-script which demonstrates the plotting features of numEclipse.
1.1 Getting Started
In this section, we will introduce the numEclipse working environment. We will learn how to create a numEclipse project. We will review the user interface including numEclipse perspective and views. Installation of numEclipse plug-in requires the latest java runtime environment and Graphical Modeling Framework (GMF) based eclipse installation. A step by step guide for installation and configuration is provided on the project website (http://www.numeclipse.org). Once the plug-in is successfully installed, configured and verified, we are ready to create our first project. This two step process is described as follows. Select eclipse menu File → New → Project. It will bring up New Project dialog box. Select the wizard numEclipse Project under the category numEclipse and click on Next button, as shown in figure 1.1. It will bring up the Project Wizard for numEclipse. Type the project name in the textbox and click on Finish button, as shown in figure 1.2. On successful completion of the above steps, you will see that a project has been created in your workspace. Also, you will notice that the Perspective is changed from Java to numEclipse, as shown in figure 1.3.
Figure 1.1 Project Wizard.
Figure 1.2 New numEclipse Project.
Figure 1.3 numEclipse Perspective.
Before looking at the numEclipse perspective (figure 1.3), it is important to understand the project structure just created. The navigator view on the left of the perspective shows the project. It consists of two folders (i.e. Interpreter
and Source
) and a default interpreter default.i created under folder Interpreter. If the navigator view’s filter does not block resources files then you will also be able to see the project file created for the numEclipse project. The central area of the window shows the default, i interpreter. This is where most of the user interaction happens. Here you will type the commands and look at the results, as shown in the following listing (listing