math について
mathは、計算や解説の依頼を適切な機能に振り分ける統合数学スキルです。SymPyによる記号計算、Z3による制約ソルバー、Pintによる単位変換に加え、トピック別スキルで数学概念を解説します。
主な機能
- 01依頼内容に応じた自動振り分け
- 02SymPyによる記号数学計算
- 03Z3による制約ソルバー
- 04Pintによる単位変換
- 05トピック別スキルによる解説
活用シーン
- 01方程式の解法や積分計算
- 02命題が常に成立するかの確認
- 03異なる単位間の変換
- 04数学分野の概念の解説
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ parcadei/ continuous-claude-v3 --skill mathインストール後、Claude Code で/mathを入力して読み込まれたか確認します。
詳細
/math - 統合数学機能
計算と説明のための単一の入り口です。 リクエストに応じて適切なツールに振り分けます。
形式的な証明には、代わりに /prove を使用してください。
簡単な使用例
| 入力例 | 使用するもの |
|---|---|
| "Solve x² - 4 = 0" | SymPy の solve |
| "Integrate sin(x) from 0 to π" | SymPy の integrate |
| "Eigenvalues of [[1,2],[3,4]]" | SymPy の eigenvalues |
| "Is x² + 1 > 0 for all x?" | Z3 の prove |
| "Convert 5 miles to km" | Pint |
| "Explain what a functor is" | 圏論スキル |
計算スクリプト
SymPy(記号数学)
uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/sympy_compute.py" <command> <args>
| コマンド | 説明 | 例 |
|---|---|---|
solve | 方程式を解く | solve "x**2 - 4" --var x |
integrate | 定積分/不定積分 | integrate "sin(x)" --var x --lower 0 --upper pi |
diff | 導関数 | diff "x**3" --var x |
simplify | 式を簡約する | simplify "sin(x)**2 + cos(x)**2" |
limit | 極限を計算する | limit "sin(x)/x" --var x --point 0 |
series | テイラー展開 | series "exp(x)" --var x --point 0 --n 5 |
dsolve | ODE を解く | dsolve "f''(x) + f(x)" --func f --var x |
laplace | ラプラス変換 | laplace "sin(t)" --var t |
行列演算:
| コマンド | 説明 |
|---|---|
det | 行列式 |
eigenvalues | 固有値 |
eigenvectors | 重複度を含む固有ベクトル |
inverse | 逆行列 |
transpose | 転置 |
rref | 行簡約階段形 |
rank | 行列のランク |
nullspace | 零空間の基底 |
linsolve | 線形系 Ax=b |
charpoly | 特性多項式 |
数論:
| コマンド | 説明 |
|---|---|
factor | 多項式を因数分解する |
factorint | 素因数分解 |
isprime | 素数判定 |
gcd | 最大公約数 |
lcm | 最小公倍数 |
modinverse | モジュラー逆数 |
組合せ論:
| コマンド | 説明 |
|---|---|
binomial | C(n,k) |
factorial | n! |
permutation | P(n,k) |
partition | 整数分割 p(n) |
catalan | カタラン数 |
bell | ベル数 |
Z3(制約充足)
uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/z3_solve.py" <command> <args>
| コマンド | 用途 |
|---|---|
sat | 充足可能ですか? |
prove | 常に真ですか? |
optimize | 制約の下で最小値/最大値を求める |
Pint(単位)
uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/pint_compute.py" convert <value> <from_unit> <to_unit>
例:convert 5 miles kilometers
Math Router(自動振り分け)
uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/math_router.py" route "<natural language request>"
実行する正確なコマンドを返します。どのスクリプトを使うべきかわからない場合に使用してください。
トピック別スキル(説明用)
リクエストが「X を説明して」または「X とは何ですか」の場合、以下を参照します。
| トピック | スキルの場所 | 主な概念 |
|---|---|---|
| 抽象代数学 | math/abstract-algebra/ | 群、環、体、準同型 |
| 圏論 | math/category-theory/ | 関手、自然変換、極限 |
| 複素解析 | math/complex-analysis/ | 解析関数、留数、輪郭積分 |
| 関数解析 | math/functional-analysis/ | バナッハ空間、作用素、スペクトル |
| 線形代数 | math/linear-algebra/ | 行列、固有空間、分解 |
| 数理論理学 | math/mathematical-logic/ | 命題論理、述語論理、証明論 |
| 測度論 | math/measure-theory/ | ルベーグ、σ-代数、積分 |
| 実解析 | math/real-analysis/ | 極限、連続性、収束 |
| 位相幾何学 | math/topology/ | 開集合、コンパクト性、連結性 |
| ODE/PDE | math/odes-pdes/ | 微分方程式、境界値問題 |
| 最適化 | math/optimization/ | 凸最適化、LP、勾配法 |
| 数値解析 | math/numerical-methods/ | 近似、誤差解析 |
| グラフ理論/数論 | math/graph-number-theory/ | グラフ、素数、モジュラー算術 |
| 情報理論 | math/information-theory/ | エントロピー、符号化、通信路 |
ルーティングロジック
リクエストに応じて判断します:
"solve/calculate/compute" → SymPy (exact symbolic)
"is X always true?" → Z3 (constraint proving)
"convert units" → Pint
"explain/what is" → Topic skill for context
"prove formally" → Redirect to /prove
例
方程式を解く
User: Solve x² - 5x + 6 = 0
Claude: uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/sympy_compute.py" solve "x**2 - 5*x + 6" --var x
Result: x = 2 or x = 3
固有値を計算する
User: Find eigenvalues of [[2, 1], [1, 2]]
Claude: uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/sympy_compute.py" eigenvalues "[[2,1],[1,2]]"
Result: {1: 1, 3: 1} (eigenvalue 1 with multiplicity 1, eigenvalue 3 with multiplicity 1)
不等式を証明する
User: Is x² + y² ≥ 2xy always true?
Claude: uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/z3_solve.py" prove "x**2 + y**2 >= 2*x*y"
Result: PROVED (equivalent to (x-y)² ≥ 0)
単位を変換する
User: How many kilometers in 26.2 miles?
Claude: uv run python "$CLAUDE_PROJECT_DIR/.claude/scripts/cc_math/pint_compute.py" convert 26.2 miles kilometers
Result: 42.16 km
代わりに /prove を使う場合
次のような場合は /prove を使ってください:
- 機械検証された形式的証明(Lean 4)が必要な場合
- 圏論の証明(関手、米田の補題など)
- 出版品質の検証
- 抽象代数学の証明
/math は計算用です。/prove は検証用です。
コメント
Markdown 対応