Available:*
Library | Item Barcode | Call Number | Material Type | Item Category 1 | Status |
---|---|---|---|---|---|
Searching... | 30000010222289 | QA297 D66 2010 | Open Access Book | Book | Searching... |
On Order
Summary
Summary
Comprehensive Coverage of the New, Easy-to-Learn C#
Although C, C++, Java, and Fortran are well-established programming languages, the relatively new C# is much easier to use for solving complex scientific and engineering problems. Numerical Methods, Algorithms and Tools in C# presents a broad collection of practical, ready-to-use mathematical routines employing the exciting, easy-to-learn C# programming language from Microsoft.
The book focuses on standard numerical methods, novel object-oriented techniques, and the latest Microsoft .NET programming environment. It covers complex number functions, data sorting and searching algorithms, bit manipulation, interpolation methods, numerical manipulation of linear algebraic equations, and numerical methods for calculating approximate solutions of non-linear equations. The author discusses alternative ways to obtain computer-generated pseudo-random numbers and real random numbers generated by naturally occurring physical phenomena. He also describes various methods for approximating integrals and special functions, routines for performing statistical analyses of data, and least squares and numerical curve fitting methods for analyzing experimental data, along with numerical methods for solving ordinary and partial differential equations. The final chapter offers optimization methods for the minimization or maximization of functions.
Exploiting the useful features of C#, this book shows how to write efficient, mathematically intense object-oriented computer programs. The vast array of practical examples presented can be easily customized and implemented to solve complex engineering and scientific problems typically found in real-world computer applications.
Author Notes
Waldemar Dos Passos is a computer programming consultant in the Silicon Valley area of California. After completing his undergraduate education at the University of California, Berkeley, Dr. Dos Passos earned an M.S. in computer science and engineering along with a Ph.D. in physics from the University of Michigan, Ann Arbor. With more than twenty years of computer programming experience, he has published several papers in physics journals.
Table of Contents
l Introduction | p. 1 |
1.1 C# and the.NET Framework | p. 1 |
1.2 Installing C# and the.NET Framework | p. 3 |
1.3 Overview of Object-Oriented Programming (OOP) | p. 3 |
1.4 Your First C# Program | p. 4 |
1.5 Overview of the IDE Debugger | p. 9 |
1.6 Overview of the C# Language | p. 11 |
1.6.1 Data Types | p. 12 |
1.6.2 Value Types | p. 13 |
1.6.3 Reference Types | p. 14 |
1.6.4 Type-Parameter Types | p. 16 |
1.6.5 Pointer Types | p. 17 |
1.6.6 Variable Declaration | p. 17 |
1.6.7 Constant Declaration | p. 18 |
1.6.8 Nullable Types | p. 18 |
1.6.9 Scope | p. 18 |
1.6.10 Characters | p. 18 |
1.6.11 Strings | p. 19 |
1.6.12 Formatting of Output Data | p. 19 |
1.6.13 Type Conversion | p. 20 |
1.6.14 Reading Keyboard Input Data | p. 23 |
1.6.15 Basic Expressions and Operators | p. 24 |
1.6.16 Program Flow Mechanisms | p. 27 |
1.6.17 Jump Statements | p. 29 |
1.6.18 Arrays | p. 30 |
1.6.19 Enumerations | p. 32 |
1.6.20 Structures | p. 32 |
1.6.21 Exceptions | p. 33 |
1.6.22 Classes | p. 34 |
Constructors and Destructors | p. 37 |
Properties | p. 38 |
Methods | p. 38 |
1.6.23 Indexers | p. 42 |
1.6.24 Overloading Methods, Constructors and Operators | p. 42 |
1.6.25 Delegates | p. 43 |
1.6.26 Events | p. 46 |
1.6.27 Collections | p. 57 |
1.6.28 File Input/Output | p. 60 |
1.6.29 Output Reliability, Accuracy and Precision | p. 65 |
2 The.NET Framework Math Class Library | p. 73 |
2.1 Introduction | p. 73 |
2.2 The.NET Framework Math Class - Fields | p. 73 |
2.2.1 The Math. pi and Math. e Fields | p. 73 |
2.3 The.NET Framework Math Class - Methods | p. 74 |
2.3.1 The Minimum and Maximum Methods | p. 74 |
2.3.2 The Power, Exponential and Logarithmic Methods | p. 74 |
2.3.3 Special Multiplication, Division and Remainder Methods | p. 76 |
2.3.4 The Absolute Value Method | p. 77 |
2.3.5 The Sign Method | p. 78 |
2.3.6 Angular Units of Measurement | p. 78 |
2.3.7 The Trigonometric Functions | p. 81 |
2.3.8 The Inverse Trigonometric Functions | p. 82 |
2.3.9 The Hyperbolic Functions | p. 86 |
2.3.10 The Inverse Hyperbolic Functions | p. 88 |
2.3.11 Rounding Off Numeric Data | p. 89 |
The Ceiling Method | p. 89 |
The Floor Method | p. 90 |
The Truncation Method | p. 90 |
The Round Method | p. 91 |
3 Vectors and Matrices | p. 97 |
3.1 Introduction | p. 97 |
3.2 A Real Number Vector Library in C# | p. 98 |
3.3 A Real Number Matrix Library in C# | p. 106 |
4 Complex Numbers | p. 121 |
4.1 Introduction | p. 121 |
4.2 Fundamental Concepts | p. 121 |
4.3 Complex Number Arithmetic | p. 123 |
4.4 Elementary Functions of a Complex Number | p. 125 |
4.4.1 Exponentials | p. 125 |
4.4.2 Logarithms | p. 125 |
4.4.3 Powers and Roots | p. 127 |
4.4.4 Trigonometric and Hyperbolic Functions | p. 128 |
4.4.5 Inverse Trigonometric and Hyperbolic Functions | p. 130 |
4.5 A Complex Number Library in C# | p. 132 |
4.6 A Complex Number Vector Library in C# | p. 151 |
4.7 A Complex Number Matrix Library in C# | p. 158 |
4.8 Generic vs. Non-Generic Coding | p. 168 |
5 Sorting and Searching Algorithms | p. 171 |
5.1 Introduction | p. 171 |
5.2 Sorting Algorithms | p. 172 |
5.3 Comparison Sorts | p. 175 |
5.3.1 Bubble Sort | p. 175 |
5.3.2 Cocktail Sort | p. 178 |
5.3.3 Odd-Even Sort | p. 178 |
5.3.4 Comb Sort | p. 179 |
5.3.5 Gnome Sort | p. 180 |
5.3.6 Quicksort | p. 181 |
5.3.7 Insertion Sort | p. 182 |
5.3.8 Shell Sort | p. 183 |
5.3.9 Selection Sort | p. 184 |
5.3.10 Merge Sort | p. 185 |
5.3.11 Bucket Sort | p. 186 |
5.3.12 Heap Sort | p. 187 |
5.4 Count Sort | p. 188 |
5.5 Radix Sort | p. 189 |
5.6 Search Algorithms | p. 191 |
5.6.1 Linear Search | p. 192 |
5.6.2 Binary Search | p. 193 |
5.6.3 Interpolation Search | p. 193 |
5.6.4 Searching for the Maximum and Minimum Values | p. 194 |
5.6.5 Searching for the N-th Largest or M-th Smallest Value | p. 195 |
5.6.6 Some Useful Utilities | p. 196 |
6 Bits and Bytes | p. 199 |
6.1 Introduction | p. 199 |
6.2 Numeric Systems | p. 199 |
6.3 Bit Manipulation and Bitwise Operators | p. 202 |
6.4 Assorted Bits and Bytes | p. 223 |
7 Interpolation | p. 229 |
7.1 Introduction | p. 229 |
7.2 Linear Interpolation | p. 230 |
7.3 Bilinear Interpolation | p. 231 |
7.4 Polynomial Interpolation | p. 234 |
7.4.1 Lagrange Interpolation | p. 234 |
7.4.2 Barycentric Interpolation | p. 236 |
7.4.3 Newton's Divided Differences Interpolation | p. 238 |
7.5 Cubic Spline Interpolation | p. 242 |
7.5.1 Natural Cubic Splines | p. 244 |
7.5.2 Clamped Cubic Splines | p. 247 |
8 Linear Equations | p. 251 |
8.1 Introduction | p. 251 |
8.2 Gaussian Elimination | p. 253 |
8.3 Gauss-Jordan Elimination | p. 254 |
8.4 LU Decomposition | p. 256 |
8.5 Iteration Methods | p. 259 |
8.5.1 Gauss-Jacobi Iteration | p. 259 |
8.5.2 Gauss-Seidel Iteration | p. 261 |
8.6 Eigenvalues and Jacobi's Algorithm | p. 264 |
9 Nonlinear Equations | p. 271 |
9.1 Introduction | p. 271 |
9.2 Linear Incremental Method | p. 272 |
9.3 Bisection Method | p. 274 |
9.4 The Secant Method | p. 276 |
9.5 False Positioning Method | p. 277 |
9.6 Fixed Point Iteration | p. 279 |
9.7 Newton-Raphson Method | p. 280 |
10 Random Numbers | p. 283 |
10.1 Introduction | p. 283 |
10.2 The C# Built-In Random Number Generator | p. 284 |
10.3 Other Random Number Generators | p. 290 |
10.4 True Random Number Generators | p. 295 |
10.5 Random Variate Generation Methods | p. 299 |
10.6 Histograms | p. 309 |
10.7 Random Variate Generation | p. 312 |
10.7.1 Discrete Distributions | p. 312 |
Bernoulli Distribution | p. 312 |
Binoulli Distribution | p. 315 |
Geometric Distribution | p. 317 |
Negative Binomial Distribution | p. 320 |
Poisson Distribution | p. 322 |
Uniform Distribution (discrete) | p. 326 |
10.7.2 Continuous Distributions | p. 328 |
Beta Distribution | p. 328 |
Beta Prime Distribution | p. 330 |
Cauchy Distribution | p. 332 |
Chi Distribution | p. 334 |
Chi-Square Distribution | p. 337 |
Erlang Distribution | p. 340 |
Exponential Distribution | p. 343 |
Extreme Value Distribution | p. 345 |
Gamma Distribution | p. 347 |
Laplace Distribution | p. 349 |
Logistic Distribution | p. 352 |
Lognormal Distribution | p. 354 |
Normal Distribution | p. 356 |
Pareto Distribution | p. 359 |
Rayleigh Distribution | p. 361 |
Student-t Distribution | p. 363 |
Triangular Distribution | p. 365 |
Uniform Distribution (continuous) | p. 368 |
Weibull Distribution | p. 370 |
10.8 Shuffling Algorithms | p. 372 |
10.9 Adding Random Noise to Data | p. 376 |
10.10 Removing Random Noise from Data | p. 379 |
11 Numerical Differentiation | p. 383 |
11.1 Introduction | p. 383 |
11.2 Finite Difference Formulas | p. 383 |
11.2.1 Forward Difference Method | p. 385 |
11.2.2 Backward Difference Method | p. 387 |
11.2.3 Central Difference Method | p. 390 |
11.2.4 Improved Central Difference Method | p. 392 |
11.3 Richardson Extrapolation | p. 395 |
11.4 Derivatives by Polynomial Interpolation | p. 401 |
12 Numerical Integration | p. 405 |
12.1 Introduction | p. 405 |
12.2 Newton-Cotes Formulas | p. 406 |
12.2.1 Rectangle Method | p. 406 |
12.2.2 Midpoint Method | p. 408 |
12.2.3 Trapezoidal Method | p. 409 |
12.2.4 Simpson's Method | p. 411 |
Simpson's 1/3 Method | p. 411 |
Simpson's 3/8 Method | p. 412 |
12.3 Romberg Integration | p. 414 |
12.4 Gaussian Quadrature Methods | p. 416 |
12.4.1 Gauss-Legendre Integration | p. 417 |
12.4.2 Gauss-Hermite Integration | p. 419 |
12.4.3 Gauss-Leguerre Integration | p. 421 |
12.4.4 Gauss-Chebyshev Integration | p. 423 |
12.5 Multiple Integration | p. 424 |
12.6 Monte Carlo Methods | p. 426 |
12.6.1 Monte Carlo Integration | p. 427 |
12.6.2 The Metropolis Algorithm | p. 428 |
12.7 Convolution Integrals | p. 431 |
13 Statistical Functions | p. 435 |
13.1 Introduction | p. 435 |
13.2 Some Useful Tools | p. 435 |
13.3 Basic Statistical Functions | p. 438 |
13.3.1 Mean and Weighted Mean | p. 438 |
13.3.2 Geometric and Weighted Geometric Mean | p. 439 |
13.3.3 Harmonic and Weighted Harmonic Mean | p. 440 |
13.3.4 Truncated Mean | p. 441 |
13.3.5 Root Mean Square | p. 441 |
13.3.6 Median, Range and Mode | p. 442 |
13.3.7 Mean Deviation | p. 444 |
13.3.8 Mean Deviation of the Mean | p. 444 |
13.3.9 Mean Deviation of the Median | p. 445 |
13.3.10 Variance and Standard Deviation | p. 445 |
13.3.11 Moments About the Mean | p. 447 |
13.3.12 Skewness | p. 448 |
13.3.13 Kurtosis | p. 449 |
13.3.14 Covariance and Correlation | p. 451 |
13.3.15 Miscellaneous Utilities | p. 453 |
13.3.16 Percentiles and Rank | p. 456 |
14 Special Functions | p. 461 |
14.1 Introduction | p. 461 |
14.2 Factorials | p. 461 |
14.3 Combinations and Permutations | p. 464 |
14.3.1 Combinations | p. 464 |
14.3.2 Permutations | p. 467 |
14.4 Gamma Function | p. 470 |
14.5 Beta Function | p. 472 |
14.6 Error Function | p. 472 |
14.7 Sine and Cosine Integral Functions | p. 474 |
14.8 Laguerre Polynomials | p. 475 |
14.9 Hermite Polynomials | p. 476 |
14.10 Chebyshev Polynomials | p. 477 |
14.11 Legendre Polynomials | p. 479 |
14.12 Bessel Functions | p. 480 |
15 Curve Fitting Methods | p. 483 |
15.1 Introduction | p. 483 |
15.2 Least Squares Fit | p. 484 |
15.2.1 Straight-Line Fit | p. 485 |
15.3 Weighted Least Squares Fit | p. 488 |
15.3.1 Weighted Straight-Line Fit | p. 488 |
15.4 Linear Regression | p. 492 |
15.4.1 Polynomial Fit | p. 496 |
15.4.2 Exponential Fit | p. 497 |
15.5 The X(2) Test for Goodness of Fit | p. 499 |
16 Ordinary Differential Equations | p. 503 |
16.1 Introduction | p. 503 |
16.2 Euler Method | p. 505 |
16.3 Runge-Kutta Methods | p. 506 |
16.3.1 Second-Order Runge-Kutta Method | p. 507 |
16.3.2 Fourth-Order Runge-Kutta Method | p. 508 |
16.3.3 Runge-Kutta-Fehlberg Method | p. 510 |
16.4 Coupled Differential Equations | p. 513 |
17 Partial Differential Equations | p. 517 |
17.1 Introduction | p. 517 |
17.2 The Finite Difference Method | p. 520 |
17.3 Parabolic Partial Differential Equations | p. 521 |
17.3.1 The Crank-Nicolson Method | p. 525 |
17.4 Hyperbolic Partial Differential Equations | p. 527 |
17.5 Elliptic Partial Differential Equations | p. 532 |
18 Optimization Methods | p. 539 |
18.1 Introduction | p. 539 |
18.2 Gradient Descent Method | p. 541 |
18.3 Linear Programming | p. 544 |
18.3.1 The Revised Simplex Method | p. 546 |
18.4 Simulated Annealing Method | p. 550 |
18.5 Genetic Algorithms | p. 555 |
References | p. 571 |
Index | p. 576 |