From 0fba5553b4fb47c89f2905397b65ab9aeb28ad1b Mon Sep 17 00:00:00 2001
From: hexjasur <3.15015959e+08+hexjasur@users.noreply.github.com>
Date: Wed, 4 Nov 2026 10:26:14 +0000
Subject: [PATCH 1/5] =?UTF-8?q?feat(bvp):=20add=20finite-difference=20Thom?=
=?UTF-8?q?as=20solver=20=E2=9C=A8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Add an interactive second-order boundary value problem solver with finite-difference discretization, Thomas forward/backward traces, residual checks, plot, and localized UI.
---
app/(workspace)/methods/bvp/page.tsx | 31 +++++
components/app-shell.tsx | 10 +-
components/bvp-finite-difference-method.tsx | 136 ++++++++++++++++++++
components/dashboard/methods-hub.tsx | 13 ++
lib/bvp-finite-difference.ts | 77 +++++++++++
lib/i18n/locales/en.json | 37 +++++-
lib/i18n/locales/ru.json | 37 +++++-
lib/i18n/locales/uz.json | 37 +++++-
8 files changed, 371 insertions(+), 7 deletions(-)
create mode 100644 app/(workspace)/methods/bvp/page.tsx
create mode 100644 components/bvp-finite-difference-method.tsx
create mode 100644 lib/bvp-finite-difference.ts
diff --git a/app/(workspace)/methods/bvp/page.tsx b/app/(workspace)/methods/bvp/page.tsx
new file mode 100644
index 0000000..449240d
--- /dev/null
+++ b/app/(workspace)/methods/bvp/page.tsx
@@ -0,0 +1,31 @@
+import type { Metadata } from 'next';
+import { BvpFiniteDifferenceMethod } from '@/components/bvp-finite-difference-method';
+import { MethodJsonLd } from '@/components/seo/json-ld';
+import { siteConfig } from '@/lib/config';
+
+export const metadata: Metadata = {
+ title: 'Boundary Value Problem Solver | Finite Difference & Thomas Algorithm',
+ description: 'Solve second-order linear boundary value problems step by step using finite differences and the Thomas tridiagonal algorithm.',
+ keywords: ['boundary value problem solver', 'finite difference method', 'Thomas algorithm', 'two-point boundary conditions', 'ODE BVP solver'],
+ alternates: { canonical: '/methods/bvp' },
+ openGraph: {
+ title: 'Finite Difference BVP Solver | Thomas Algorithm',
+ description: 'Discretize and solve second-order linear boundary value problems, inspect Thomas coefficients, residuals, and the solution graph.',
+ url: `${siteConfig.url}/methods/bvp`,
+ },
+};
+
+export default function BvpPage() {
+ return (
+ <>
+
{t('bvp.empty')}
: <> +h = ({input.b} − {input.a}) / {input.intervals} = {fmt(result.h)}
+| {head} | )}|||||||||
|---|---|---|---|---|---|---|---|---|---|
| {row.index} | {fmt(row.x)} | {fmt(row.a)} | {fmt(row.b)} | {fmt(row.c)} | {fmt(row.d)} | {fmt(row.u)} | {fmt(row.v)} | {fmt(row.y)} | {row.residual.toExponential(2)} |
yₖ = uₖ · yₖ₊₁ + vₖ, yₙ₊₁ = vₙ₊₁
+| xₖ | yₖ |
|---|---|
| {fmt(row.x)} | {fmt(row.y)} |