一个专为中学数学教学设计的函数计算与图像绘制客户端程序。
✅ 自定义表达式解析器(非 eval,完全手写)
✅ 符号求导功能(支持复合函数)
✅ 函数图像绘制(Matplotlib 高质量绘图)
✅ 智能结果格式化(整数 > π/e > 分数 > 小数)
✅ PyQt5 图形界面(直观易用)
✅ 完全离线运行(无需联网)
# 1. 安装依赖
双击运行:安装依赖.bat
# 2. 启动程序
双击运行:启动程序.bat# 1. 安装依赖
pip install -r requirements.txt
# 2. 运行程序
python main.py
# 3. 测试功能(可选)
python test_calculator.py加法:x + 2
减法:x - 3
乘法:2 * x
除法:x / 2
幂运算:x^2, 2^x
sin(x) # 正弦函数
cos(x) # 余弦函数
log(x) # 自然对数 ln(x)
log(2, x) # 以 2 为底的对数
pi 或 π # 圆周率 3.14159...
e # 自然常数 2.71828...
sin(x^2) # 三角复合幂函数
log(sin(x)) # 对数复合三角函数
x^2 + 3*sin(x) - log(x) # 混合表达式
输入:f(x) = x^2 + sin(x)
x = pi
输出:f(pi) = π²
(小数形式:9.8696)
输入:f(x) = x^3 + 2*x^2 - 5*x + 1
输出:f'(x) = 3*x^2 + 4*x - 5
输入:f(x) = sin(x) + cos(x)
操作:点击"绘图"
结果:显示蓝色波形曲线
输入:f(x) = x^2
操作:点击"绘制导函数"
结果:蓝色实线(原函数)+ 红色虚线(导函数)
| 文档 | 说明 | 适合人群 |
|---|---|---|
| 使用说明.md | 详细使用教程 | 新手用户 |
| 快速参考.md | 语法速查手册 | 日常使用 |
| 示例集合.md | 20+ 教学示例 | 教师学生 |
| 项目结构说明.md | 技术架构文档 | 开发者 |
| 项目总览.md | 完整项目介绍 | 所有人 |
| 项目检查清单.md | 功能验收清单 | 管理者 |
- 语言:Python 3.7+
- UI 框架:PyQt5
- 绘图库:Matplotlib
- 数值计算:NumPy
project/
├── lexer.py # 词法分析器(~150 行)
├── parser.py # 语法分析器(~200 行)
├── evaluator.py # 数值计算器(~150 行)
├── derivative.py # 符号求导器(~250 行)
├── plotter.py # 函数绘图器(~80 行)
├── ui.py # PyQt5 界面(~300 行)
└── main.py # 程序入口(~20 行)
用户输入 → 词法分析 → 语法分析 → AST
↓
┌───────────┼───────────┐
↓ ↓ ↓
数值计算 符号求导 函数绘图
↓ ↓ ↓
结果显示 导数显示 图像显示
运行测试脚本:
python test_calculator.py测试结果:
✅ x^2 (x=3) → 结果: 9, 导数: 2*x
✅ x^2 + sin(x) (x=π) → 结果: 9.8696, 导数: 2*x + cos(x)
✅ 2^x (x=3) → 结果: 8, 导数: 2^x * ln(2)
✅ sin(x) + cos(x) (x=0) → 结果: 1, 导数: cos(x) - sin(x)
✅ log(x) (x=e) → 结果: 1, 导数: 1/x
✅ x^3 + 2*x^2 - 5*x + 1 (x=2) → 结果: 7
✅ sin(x^2) (x=1) → 结果: 0.8415, 导数: cos(x^2) * 2*x
所有测试通过!✅
- 输入
x^2和x^3,对比图像 - 观察偶函数和奇函数的对称性
- 输入
x^3 - 3*x - 绘制原函数和导函数
- 观察导数正负与函数增减的关系
- 输入
sin(x)和sin(2*x) - 对比周期变化
- 输入
sin(x^2) - 展示链式法则:
cos(x^2) * 2*x
- 操作系统:Windows / macOS / Linux
- Python 版本:3.7 或更高
- 内存:至少 512MB
- 磁盘空间:约 100MB(含依赖)
解决:检查依赖安装
pip install PyQt5 matplotlib numpy解决:
- 检查括号是否匹配
- 检查函数名拼写(sin, cos, log)
解决:
- 检查函数定义域(如 log(x) 要求 x>0)
- 点击"清除图像"后重新绘制
- 基础表达式解析
- 数值计算
- 符号求导
- 函数绘图
- PyQt5 界面
- 表达式自动简化
- 更多函数(tan, arcsin, sqrt)
- 隐式乘法支持(2x → 2*x)
- 求导步骤显示
- 极值点自动标注
- 保存/加载功能
- 导出图像(PNG/PDF)
欢迎贡献代码!请遵循以下步骤:
- Fork 本项目
- 创建功能分支
- 提交更改
- 创建 Pull Request
- 遵循 PEP 8
- 添加中文注释
- 编写单元测试
本项目采用 MIT 许可证,可自由用于教学和学习。
感谢以下开源项目:
- PyQt5 - 强大的 GUI 框架
- Matplotlib - 优秀的绘图库
- NumPy - 高效的数值计算
- 项目名称:数学函数计算器 - 教学版
- 版本:1.0 (Phase 1)
- 状态:✅ 完成并可交付
- 开发日期:2026年1月
- 开发者:数学教学工具开发组
现在就运行 python main.py 开始探索数学的奥秘吧!
如有问题,请查阅 使用说明.md 或运行 python test_calculator.py 验证安装。