Get the FREE Ultimate OpenClaw Setup Guide →

boundary-value-problems

npx machina-cli add skill parcadei/Continuous-Claude-v3/boundary-value-problems --openclaw
Files (1)
SKILL.md
4.2 KB

Boundary Value Problems

When to Use

Use this skill when working on boundary-value-problems problems in odes pdes.

Decision Tree

  1. Problem Classification

    • Two-point BVP: conditions at x=a and x=b?
    • Sturm-Liouville: eigenvalue problem?
    • Mixed conditions: Dirichlet, Neumann, Robin?
  2. Shooting Method

    • Convert BVP to IVP
    • Guess missing initial conditions
    • Iterate to satisfy boundary conditions
    • scipy.integrate.solve_ivp + root finding
  3. Finite Difference Method

    • Discretize domain: x_i = a + i*h
    • Replace derivatives with differences: y'' ~ (y_{i+1} - 2y_i + y_{i-1})/h^2
    • Solve resulting linear system
    • sympy_compute.py linsolve "tridiagonal_matrix" "boundary_vector"
  4. Collocation/BVP Solver

    • scipy.integrate.solve_bvp(ode, bc, x, y_init)
    • Provide initial mesh and guess
    • Check residual for accuracy
  5. Eigenvalue Problems

    • Sturm-Liouville form: -(p(x)y')' + q(x)y = lambda*w(x)*y
    • Eigenvalues are real if p, w > 0
    • Eigenfunctions orthogonal with weight w
    • sympy_compute.py eigenvalues "sturm_liouville_matrix"

Tool Commands

Scipy_Solve_Bvp

uv run python -c "from scipy.integrate import solve_bvp; import numpy as np; ode = lambda x, y: [y[1], -y[0]]; bc = lambda ya, yb: [ya[0], yb[0]-1]; x = np.linspace(0, np.pi, 10); y = np.zeros((2, 10)); sol = solve_bvp(ode, bc, x, y); print('Solution at pi/2:', sol.sol(np.pi/2)[0])"

Sympy_Linsolve

uv run python -m runtime.harness scripts/sympy_compute.py linsolve "tridiagonal_matrix" "boundary_vector"

Z3_Sturm_Liouville

uv run python -m runtime.harness scripts/z3_solve.py prove "eigenvalue_real"

Key Techniques

From indexed textbooks:

  • [Elementary Differential Equations and... (Z-Library)] Boundary Value Problems and Partial Differential Equations (6th ed. Boston: Academic August 7, 2012 21:05 c10 Sheet number 88 Page number 676 cyan black August 7, 2012 21:05 c11 Sheet number 1 Page number 677 cyan black C H A P T E R Boundary Value Problems and Sturm–Liouville Theory As a result of separating variables in a partial differential equation in Chapter 10, we repeatedly encountered the differential equation X + λX = 0, 0 < x < L with the boundary conditions X (0) = 0, X (L) = 0. This boundary value problem is the prototype of a large class of problems that are important in applied mathematics.
  • [Elementary Differential Equations and... (Z-Library)] Nonhomogeneous Boundary Value Problems In this section we discuss how to solve nonhomogeneous boundary value problems for both ordinary and partial differential equations. Most of our attention is directed toward problems in which the differential equation alone is nonhomogeneous, while the boundary conditions are homogeneous. We assume that the solution can be expanded in a series of eigenfunctions of a related homogeneous problem, and then we determine the coefcients in this series so that the nonhomogeneous problem is satised.
  • [Elementary Differential Equations and... (Z-Library)] Consider the boundary conditions y, y bounded as x → −1, −1 m = n. August 7, 2012 21:05 c11 Sheet number 46 Page number 722 cyan black Chapter 11. Boundary Value Problems general differential equations or boundary conditions.
  • [An Introduction to Numerical Analysis... (Z-Library)] Modern Numerical Methods for Ordinary Wiley, New York. User's guide for DVERK: A subroutine for solving non-stiff ODEs. Keller (1966), Analysis of Numerical Methods.
  • [Elementary Differential Equations and... (Z-Library)] Describe in a few words how the solution evolves as time advances. A nonreactive tracer at concentration c0 is continuously introduced into a steady ow at the upstream end of a column of length L packed with a homogeneous granular medium. Assuming that the tracer concentration in the column is initially zero, the boundary value problem that models this process is 0 < x < L, t > 0, t > 0, 0 < x < L, where c(x, t), v, and D are as in Problem 27.

Cognitive Tools Reference

See .claude/skills/math-mode/SKILL.md for full tool documentation.

Source

git clone https://github.com/parcadei/Continuous-Claude-v3/blob/main/.claude/skills/math/odes-pdes/boundary-value-problems/SKILL.mdView on GitHub

Overview

This skill covers strategies for solving boundary value problems (BVPs) in ODEs and PDEs. It guides you through problem classification (two-point, Sturm-Liouville, mixed Dirichlet/Neumann/Robin), and three main solution approaches: shooting, finite difference, and collocation. It also addresses eigenvalue problems and practical tool usage with SciPy, SymPy, and optional solvers.

How This Skill Works

Start by classifying the BVP, then choose a method and implement it. Shooting turns a BVP into an IVP by guessing missing initial data and iterating to satisfy the boundary conditions using a solver and root finding. Finite difference discretizes the domain, replaces derivatives with differences, and solves the resulting linear system; Collocation solves the BVP with an initial mesh using a solver like solve_bvp and checks residuals. For eigenvalue problems, cast to Sturm-Liouville form and compute eigenpairs with the appropriate linear algebra tools.

When to Use It

  • You have boundary conditions specified at two points a and b for an ODE or PDE
  • The problem is a Sturm-Liouville eigenvalue problem
  • The boundary conditions mix Dirichlet, Neumann, or Robin types
  • You want to recast the BVP as an IVP and solve via shooting
  • You need a robust discretization and solver for larger or stiffer BVPs using finite differences

Quick Start

  1. Step 1: Classify the BVP type and select a method (shooting, finite difference, or collocation)
  2. Step 2: Prepare the problem: convert to IVP for shooting, discretize for finite differences, or set up an initial mesh for collocation
  3. Step 3: Run the example tool commands from the Skill notes to solve and verify residuals, e.g. shooting with an IVP solver, collocation with solve_bvp, or eigenvalue setup via Sturm-Liouville tooling

Best Practices

  • Classify the BVP first into two-point, Sturm-Liouville, or mixed
  • Use shooting with a reliable IVP solver and a root finder; verify boundary satisfaction
  • When using finite differences, discretize the domain and assemble the tri-diagonal system for y across the grid
  • Leverage collocation by providing an initial mesh and checking residuals for accuracy
  • For eigenvalue problems, ensure the Sturm-Liouville form and positivity of p and w; check eigenvalues are real and eigenfunctions orthogonal with the weight w

Example Use Cases

  • Vibrating string or beam with fixed ends modeled as a two-point BVP
  • Quantum well or particle in a box framed as a Sturm-Liouville eigenvalue problem
  • Rod heat conduction with mixed Dirichlet and Neumann boundaries
  • Beam deflection under boundary constraints in structural engineering
  • Poisson or diffusion problems solved with finite difference on a grid

Frequently Asked Questions

Add this skill to your agents
Sponsor this space

Reach thousands of developers