A simple console application that implements various numerical methods.
- Purpose: Solves ordinary differential equations (ODEs).
- Algorithm: This implementation likely uses the 4th-order Runge-Kutta method (RK4), a widely used technique for solving ODEs. RK4 approximates the solution by taking a weighted average of several derivative estimates at different points within each step, leading to high accuracy without requiring very small steps.
- Purpose: Solves systems of linear equations iteratively.
- Algorithm: The Gauss-Seidel method is an iterative technique that updates each variable in a system of equations based on the latest values of other variables. It iterates until the solution converges within a set tolerance. This method assumes the matrix is diagonally dominant for guaranteed convergence.
- Purpose: Solves systems of linear equations by converting the matrix to an upper triangular form.
- Algorithm: Gaussian elimination uses forward elimination to create zeros below the pivot in each column, reducing the system to upper-triangular form. Back substitution then finds the values of the unknowns.
- Purpose: Another iterative solver for systems of linear equations.
- Algorithm: The Jacobi method iteratively computes each variable independently, based on the values from the previous iteration. It’s slower than Gauss-Seidel in terms of convergence but can still be effective for certain types of matrices.
- Purpose: Extends Gaussian elimination to find the inverse of a matrix and directly solve linear systems.
- Algorithm: Gauss-Jordan elimination reduces the matrix to row-echelon form, with both lower and upper triangular elements becoming zero. This process directly results in a diagonal matrix, making solutions straightforward.
- Purpose: Decomposes a matrix into lower (L) and upper (U) triangular matrices to solve linear systems more efficiently.
- Algorithm: LU factorization splits a matrix A into L and U, where L has non-zero elements below the diagonal and U above. By substituting in these matrices, systems of equations are solved through forward and backward substitution steps.
- Purpose: Calculates the inverse of a matrix.
- Algorithm: Using either the Gauss-Jordan elimination or LU decomposition, the matrix inversion algorithm transforms a matrix A into its inverse A-1, provided A is invertible.
- Purpose: Finds roots of a nonlinear equation within a specified interval.
- Algorithm: This iterative algorithm repeatedly halves an interval where a root exists (based on the Intermediate Value Theorem). It evaluates the function at the midpoint and replaces the interval’s end that has the same sign as the midpoint.
- Purpose: Also used for finding roots of nonlinear equations within an interval.
- Algorithm: Similar to bisection, but instead of using the midpoint, this method calculates the root estimate using a linear interpolation between the function values at the interval endpoints. This approach can converge faster than bisection under certain conditions.
- Purpose: Quickly finds roots of a function if a good initial estimate is available.
- Algorithm: This method uses the function and its derivative to iteratively approximate a root. Starting from an initial guess, it applies the formula xn+1 = xn - f(xn) / f’( xn ) . It converges faster than other methods but requires a well-chosen starting point.
- Purpose: Root-finding method similar to Newton-Raphson, but without needing the derivative.
- Algorithm: The secant method approximates the derivative by using two nearby points and iteratively improves estimates of the root by linearly interpolating the function’s values. It’s particularly useful for cases where derivatives are difficult to compute.
Here you describe how to run your project locally
Here you list all prerequisites necessary for running your project. For example:
How to clone your project
git clone https://github.com/TusharKumarRoy/numerical_console_app
How to start your project
cd numerical_console_app
**for linux**
g++ main.cpp
./a.out (for linux)
**for windows**
g++ -o main main.cpp&main.exe