Skip to content

feat: 支持一阶隐函数求导、中文推导与特殊点分析 - #1

Draft
dohomeworkbyzzy wants to merge 1 commit into
mainfrom
feat/implicit-differentiation
Draft

dohomeworkbyzzy wants to merge 1 commit into
mainfrom
feat/implicit-differentiation

Conversation

@dohomeworkbyzzy

Copy link
Copy Markdown
Owner

输入 x^2+y^2=1 等二元关系后,可选择自变量和因变量,展示移项、链式法则、整理含导数的项、解出导数与化简,并通过 SymPy idiff 和全微分残差独立验证。可选点坐标会检查原关系、实数定义域与特殊点。

  • 复用 /api/math/differentiate,增加 mode=implicit、dependent_variable 和可选 point;默认普通求导保持兼容。隐函数模式限一阶、两个变量,不接受混合偏导序列或额外参数。
  • 方程两侧仍由封闭语法解析;普通表达式解析器继续拒绝等号。隐函数解析保留未求值函数,避免化简掩盖定义域空洞。
  • 复用规则树、结果展示、计算历史与题目笔记关联;前端增加模式、因变量与点坐标设置,历史可恢复全部设置。
  • 明示原定义域、C¹ 与 Fy≠0 条件。Fy=0、Fx≠0 只在 C¹ 条件下报告无有限导数;退化点返回 undetermined,不将公式失效等同于不可导。未完整展开推导与未通过独立验证分别标记;验证失败时隐藏最终导数。

验证:

  • .venv/bin/python -m pytest -q:145 passed(含原有普通求导、高阶导数、混合偏导、积分、矩阵、历史和笔记测试)。最终特殊点条件文案修改后,隐函数专项 47 项再次通过。
  • npm run build:TypeScript 与 Vite 生产构建通过。
  • git diff --check:通过。
  • 新增两项 Playwright 测试,覆盖文本/公式输入、链式步骤、点坐标、历史恢复及切回普通求导。当前环境缺少 Chromium,Chrome 与 Headless Shell 下载均返回损坏压缩包,测试尚未进入浏览器执行。此 PR 保留为草稿,待可用浏览器环境完成端到端验证。

范围限制:不自动证明邻域 C¹、存在性或分支唯一性,不处理高阶隐导数和参数关系。README 已说明 API、条件与降级语义。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant