A high-visibility, step-by-step numerical methods engine built entirely in pure PHP.
Designed to make complex mathematical iterations transparent and easy to visualize.
Born during a deep dive into Numerical Analysis in my 3rd university semester, NumPHP was an experiment in defying the status quo. While Python and MATLAB are the standards, I wanted to prove that PHP—the language of the web—could handle complex mathematical iterations just as elegantly.
This toolkit doesn't just give you the answer; it shows you the journey of the algorithm, making it an ideal companion for students and educators.
- 🔍 Granular Iterations: See every step of the calculation, from initial guess to final convergence.
- 🌐 100% Web-Native: No external compilers or Python environments needed. Just a browser and a PHP server.
- 🛠️ Framework-less: Light, fast, and dependency-free.
- 📊 Comprehensive Toolkit: Includes methods for Root Finding, Linear Systems, and Numerical Integration.
- 🎨 Responsive UI: Clean interface built with modern CSS and vanilla JS for real-time interaction.
NumPHP covers the "Big Three" areas of numerical analysis:
| Category | Method | Description |
|---|---|---|
| Root Finding | Bisection |
Bracketing method based on the Intermediate Value Theorem. |
Newton-Raphson |
High-speed convergence using derivatives. | |
Secant |
Root finding without requiring derivative functions. | |
False Position |
Linear interpolation to find roots. | |
Fixed-Point |
Iterative process finding |
|
| Linear Systems | Jacobi |
Iterative algorithm for determining the solutions of a system of linear equations. |
| Integration | Trapezoidal |
Approximating the definite integral by using trapezoids. |
Simpson's Rule |
High-accuracy integration using parabolic arcs. |
graph TD
A[User Input] --> B(Method Selector)
B --> C{Calculation Engine}
C -->|Loop| D[Apply Formula]
D --> E[Calculate Error]
E -->|Tolerance Not Met| D
E -->|Tolerance Met| F[Final Result]
D --> G[Record Iteration Data]
G --> H[Render Results Table]
F --> H
style C fill:#f9f,stroke:#333,stroke-width:2px
style H fill:#bbf,stroke:#333,stroke-width:2px
Since NumPHP is built with pure PHP, you only need a local server (like XAMPP or Nginx) to run it.
-
Clone the Repository:
git clone https://github.com/rezasadid753/numphp.git cd numphp -
Run: Move the folder to your web directory (
htdocsorwww) and access it via:http://localhost/numphp
NumPHP/
├── 📄 index.php # Entry point & Method Switcher
├── 📂 methods/ # Mathematical Logic
│ ├── method-bisection.php
│ ├── method-jacobi.php
│ ├── method-newton-raphson.php
│ └── ... (and others)
├── 🎨 numerical-analysis.css # Core Styles
└── ⚡ numerical-analysis.js # UI Interactivity & Validation
- University Students: Check your manual homework calculations against the step-by-step output.
- CS Educators: Use as a visual demo during lectures to show how different methods converge at different rates.
- Curious Devs: Learn how to implement mathematical formulas in a high-level language like PHP.
Mathematical accuracy is the priority! If you find a bug in a formula or want to add a new method (like Gauss-Seidel or Runge-Kutta), feel free to:
- Fork the project.
- Submit a Pull Request.
This project is open-source under the MIT License.
Built for the love of math and the power of PHP. 📐