A modern cross-platform application for interactive and step-by-step exploration of numerical methods.
Translations: English | Русский | 简体中文 | O'zbekcha
Numeric Methods targets three main environments from a single codebase: Web, Desktop (Windows / Linux), and Mobile (Android APK). All signed binary packages and releases are hosted directly on GitHub Releases.
| Package | Architecture / Target | Download Link |
|---|---|---|
| Numeric Methods APK (ARM64) (Recommended) |
Optimized for modern 64-bit Android smartphones and tablets (arm64-v8a). Smaller file size and best runtime performance. | ⬇️ Download ARM64 APK |
| Numeric Methods APK (Universal) | Compatible with all Android CPU architectures (arm64-v8a, armeabi-v7a, x86, x86_64). | ⬇️ Download Universal APK |
💡 Latest Release Mirror: You can always find the newest APK releases at the GitHub Releases page.
| Platform | Format | Download Link |
|---|---|---|
| Windows 10 / 11 (64-bit) | NSIS Setup (.exe) |
⬇️ Download Windows Installer |
| Windows 10 / 11 (64-bit) | Windows Installer (.msi) |
⬇️ Download Windows MSI |
| Linux (Ubuntu / Debian) | Debian package (.deb) |
⬇️ Download Debian Package |
| Linux (Universal) | Portable AppImage (.AppImage) |
⬇️ Download AppImage |
Instant access without installation:
- Production Web App (v3): sonli-usullar.uz
- Archive Version (v2): v2.sonli-usullar.uz
The application includes 10 fundamental computational algorithms divided into 5 academic categories:
-
Bisection Method (Interval Halving): Finding roots by iteratively halving an interval
$[a, b]$ where$f(a) \cdot f(b) < 0$ . Convergence rate:$O(\log_2(1/\varepsilon))$ . -
Newton-Raphson Method: Tangent-based root finding with quadratic convergence:
$x_{n+1} = x_n - \frac{f(x_n)}{f'(x_n)}$ .
-
Tridiagonal Matrix Algorithm (Thomas / Sweep Method): An efficient
$O(n)$ elimination solver for tridiagonal systems$a_i x_{i-1} + b_i x_i + c_i x_{i+1} = d_i$ .
-
Lagrange Interpolation: Constructs the unique lowest-degree polynomial passing through a given set of data points:
$L_n(x) = \sum_{i=0}^n y_i \prod_{j \neq i} \frac{x - x_j}{x_i - x_j}$ . - Newton Divided Differences Interpolation: Step-by-step divided difference table construction and polynomial evaluation.
-
Rectangle (Midpoint) Rule: Approximation using left, right, and midpoint Riemann sums (
$O(h)$ to $O(h^2)$). -
Trapezoidal Rule: Linear approximation over subintervals:
$I \approx \frac{h}{2} [y_0 + 2\sum y_i + y_n]$ ($O(h^2)$). - Simpson's 1/3 Rule (Parabolic): Higher-order quadratic spline quadrature ($O(h^4)$).
-
Euler's Method: First-order explicit step solver:
$y_{i+1} = y_i + h \cdot f(x_i, y_i)$ . -
Runge-Kutta 4th Order (RK4): Classic fourth-order predictor-corrector solver with weighted sub-step slopes (
$k_1, k_2, k_3, k_4$ ).
- 📈 Dynamic Interactive Charts: Powered by Recharts and custom coordinate axes with zoom, inspection, and function traces.
- 📐 Instant Formula Typography: High-speed client-side math typesetting via KaTeX.
- 📋 Audit Tables & Intermediate Steps: Complete step-by-step arithmetic tables showing residuals, error bounds, and convergence.
- 💾 Export Options: One-click table copying, raw CSV export, and high-resolution PNG snapshot download with timestamps.
- 🌐 Trilingual Localization: Seamless switching between Uzbek, Russian, and English.
- 🌗 Light / Dark Mode: High-contrast technical theme with open-corner aesthetic.
- Framework: Next.js 16 (App Router, Turbopack,
output: "export") - UI Library: React 19
- Native Runtime: Tauri v2 (Rust shell for Desktop and Android)
- Styling: Tailwind CSS 4
- Math Engine: Math.js (Symbolic parsing & numerical evaluation)
- Typography: KaTeX
- Charts: Recharts
- Icons: Lucide React
- Package Manager: Bun (Strict requirement)
bun installbun devOpen http://localhost:3000 in your browser.
bun run build
bun startThe static export will be written to the out/ directory, which is shared between web deployments (Netlify, Vercel) and the Tauri frontend.
After configuring the Rust toolchain and platform dependencies:
# Run desktop development with live reload
bun td
# Build production installers (.exe, .msi, .deb, .AppImage)
bun tbConfiguration resides in src-tauri/tauri.conf.json.
Requirements:
- Java JDK 17+
- Android SDK & NDK (r26d recommended)
- Android target architectures for Rust:
rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android
# Initialize Android project structure
bun run tauri:android:init
# Run in an Android emulator or connected device
bun run tauri:android:dev
# Build Universal signed APK (runs on all devices)
bun run tauri:android:build --apk
# Build Split per-ABI APKs (optimized ARM64 APK)
bun run tauri:android:build --apk --split-per-abiGenerated APKs are located in:
src-tauri/gen/android/app/build/outputs/apk/
- Desktop (Windows/Linux): Integrated with Tauri's native signed updater (
minisignpublic key). Automatically checkslatest.jsonon GitHub Releases and updates in the background. - Android: Embedded updater detector notifies users whenever a newer APK is released and opens the direct download link in the system browser.
Contributions are welcome! Please read CONTRIBUTING.md for full instructions before submitting code.
- 🐛 Found a bug? Submit a Bug Report.
- 💡 Have a feature idea? Submit a Feature Request.
- 🧮 Want to add a new numerical method? Check out the New Method Proposal and step-by-step implementation guide in CONTRIBUTING.md.
- 📜 Please review our Code of Conduct for community standards.
This project is licensed under a Custom Non-Commercial & Attribution License. See the full text in LICENSE.
- Educational & Non-Commercial: The Software and its compiled packages (Web, Desktop, Android APK) may be used freely for learning and research, but CANNOT be sold, monetized, or used for commercial gain.
- Preserve Original Author & Brand: The project brand ("Numeric Methods" / "Sonli Usullar") and the original authorship credits to Jasurbek Haydarov (@hexjasur) must remain intact and cannot be altered or removed.
- Forks & Contributions: You are welcome to fork the project, develop enhancements, and add your own name alongside the original author in the contributors list.
- Redistribution: You may redistribute derivative works only under identical license and attribution terms.
- Author: Jasurbek Haydarov (@hexjasur)
- Official Website: sonli-usullar.uz
- Telegram: @KanYonA
- Email: jasurhaydarovcode@gmail.com