某人的计算器

nonvioce 32d3bc75fb feat: MCP plugin debugging — __open command via direct WebView bridge 3 månader sedan
app 32d3bc75fb feat: MCP plugin debugging — __open command via direct WebView bridge 3 månader sedan
gradle 0dd25c0ce0 Initial commit 6 månader sedan
.gitignore 0dd25c0ce0 Initial commit 6 månader sedan
CHANGELOG.md 921604dbab docs: update CHANGELOG v1.2, add MCP_SERVER.md, update README + QUICK_REFERENCE 3 månader sedan
CONTRIBUTING.md 0dd25c0ce0 Initial commit 6 månader sedan
ICON_GUIDE.md 0dd25c0ce0 Initial commit 6 månader sedan
LICENSE 0dd25c0ce0 Initial commit 6 månader sedan
MCP_SERVER.md 293c50f8f4 fix: RikkaHub MCP compatibility - remove SSE GET, all JSON responses 3 månader sedan
PLUGIN_DEVELOPMENT.md 0dd25c0ce0 Initial commit 6 månader sedan
QUICK_REFERENCE.md 921604dbab docs: update CHANGELOG v1.2, add MCP_SERVER.md, update README + QUICK_REFERENCE 3 månader sedan
README.md 921604dbab docs: update CHANGELOG v1.2, add MCP_SERVER.md, update README + QUICK_REFERENCE 3 månader sedan
SIGNING_GUIDE.md 0dd25c0ce0 Initial commit 6 månader sedan
build.gradle.kts 0dd25c0ce0 Initial commit 6 månader sedan
download_katex.bat 0dd25c0ce0 Initial commit 6 månader sedan
download_katex.sh 0dd25c0ce0 Initial commit 6 månader sedan
gradle.properties 0dd25c0ce0 Initial commit 6 månader sedan
gradlew e857f69f3d feat: plotting system + MCP-console sync + save to gallery (v1.2) 3 månader sedan
gradlew.bat 0dd25c0ce0 Initial commit 6 månader sedan
settings.gradle.kts 0dd25c0ce0 Initial commit 6 månader sedan
test_mcp.sh 6694335a19 feat: MCP server + UI overhaul + 14 default plugins 3 månader sedan

README.md

IJS - Interactive Java Symja

![License](https://img.shields.io/badge/license-GPL--3.0-blue.svg) ![Platform](https://img.shields.io/badge/platform-Android-green.svg) ![Java](https://img.shields.io/badge/Java-11-orange.svg) 一个基于 [Symja](https://github.com/axkr/symja_android_library) 的 Android 符号计算应用 提供类似 Mathematica 的交互式数学计算体验 [功能特性](#-功能特性) • [快速开始](#-快速开始) • [插件系统](#-插件系统) • [构建说明](#-构建说明)

✨ 功能特性

🧮 符号计算引擎

基于强大的 Symja 库,支持:

  • 微积分:求导、积分、极限、级数展开
  • 代数:方程求解、因式分解、化简、展开
  • 矩阵:行列式、逆矩阵、特征值、秩
  • 数论:素数、因数分解、最大公约数
  • 特殊函数:Gamma、Beta、Bessel 等

🎨 LaTeX 渲染

  • 使用 KaTeX 实时渲染数学公式
  • 支持 TeXForm 自动转换和显示
  • 可复制 LaTeX 源码

🔌 插件系统

  • 支持 JavaScript 自定义插件
  • 完整的 Symja API 访问
  • 插件导入/导出/分享
  • 命令快捷方式支持

🎨 Canvas 绘图

  • Plot[f,{x,a,b}] 函数图像绘制
  • ParametricPlot 参数方程绘图
  • ListPlot 散点图
  • 双指缩放、拖拽平移、双击重置
  • 多函数自动配色 + 图例
  • 等比例坐标轴(圆不变椭圆)
  • 💾 一键保存到系统相册

🌐 MCP 服务器

  • 内置 Model Context Protocol 服务器
  • 15 个 MCP 工具 + 2 个资源
  • 支持 Claude Desktop 等 AI 客户端接入
  • MCP 命令实时同步到控制台
  • 端口 8734,设置面板可控开关
  • 详见 MCP_SERVER.md

💡 智能交互

  • 自动补全函数名和命令
  • ↑↓ 键浏览历史记录(持久化存储)
  • 变量管理和 % 引用
  • Jupyter 风格的执行计数器
  • 设置面板:字体大小、MCP 开关

🚀 快速开始

基础计算

2 + 2                          // 算术运算
Sqrt[2]                        // 平方根
E^(I*Pi)                       // 欧拉公式
%                              // 引用上一次输出

微积分

D[x^3, x]                      // 求导
Integrate[x^2, {x, 0, 1}]      // 定积分
Limit[Sin[x]/x, x -> 0]        // 极限
Series[Exp[x], {x, 0, 5}]      // 泰勒展开

代数

Solve[x^2 - 5*x + 6 == 0, x]   // 解方程
Expand[(x+1)^3]                // 展开
Factor[x^2 - 4]                // 因式分解
Simplify[Sin[x]^2+Cos[x]^2]    // 化简

矩阵

Det[{{1,2},{3,4}}]             // 行列式
Inverse[{{1,2},{3,4}}]         // 逆矩阵
Eigenvalues[{{1,2},{3,4}}]     // 特征值

绘图

Plot[Sin[x], {x, 0, 2*Pi}]                    // 函数图像
ParametricPlot[{2*Cos[t], 2*Sin[t]}, {t,0,2*Pi}] // 圆
ListPlot[{{1,1},{2,4},{3,9}}]                 // 散点

LaTeX 渲染

TeXForm[Integrate[x^2, x]]     // 自动渲染为数学公式
TeXForm[Sum[1/n^2, {n, 1, Infinity}]]

特殊命令

help          显示帮助
clear         清空输出
vars          显示已定义变量
plugins       打开插件管理
history       显示命令历史

🔌 插件系统

插件结构

插件是 JSON 格式文件,支持自定义数学计算功能:

{
  "id": "circle_area",
  "name": "圆面积计算器",
  "icon": "⭕",
  "command": "circle",
  "inputs": [
    {
      "name": "radius",
      "label": "半径",
      "defaultValue": "1"
    }
  ],
  "jsCode": "function calculate(inputs, Symja) {\n  Symja.print('计算圆面积');\n  return `Pi*${inputs.radius}^2`;\n}"
}

使用插件

circle[5]                      // 执行插件命令

Symja API

插件可访问完整的 Symja API:

// 基础
Symja.eval(expr)
Symja.print(message)

// 微积分
Symja.differentiate(expr, var)
Symja.integrate(expr, var)

// 代数
Symja.solve(equation, var)
Symja.simplify(expr)
Symja.expand(expr)

// 矩阵
Symja.matrix.det(matrix)
Symja.matrix.inverse(matrix)

// 数论
Symja.gcd(a, b)
Symja.isPrime(n)

插件管理

在控制台输入 plugins 打开插件管理面板:

  • 插件列表:查看已安装插件
  • 开发文档:查看 API 文档和示例
  • 导入/分享:导入、导出、删除插件

插件文件存储在:

/storage/emulated/0/Android/data/com.nonvioce.ijs/files/plugins/

🔧 技术栈

  • Android:原生 Android 应用(Java 11, API 24-34)
  • Symja 3.1.0:符号计算引擎
  • NanoHTTPd 2.3.1:嵌入式 HTTP 服务器(MCP)
  • Rhino 1.7.15:JavaScript 引擎(插件执行)
  • WebView + JavaScript:交互式控制台 + Canvas 绘图
  • KaTeX 0.16.9:LaTeX 渲染

📦 构建说明

前置要求

  • Android Studio (最新版本)
  • JDK 11+
  • Android SDK (API 24+)

构建步骤

  1. 克隆仓库

    git clone https://github.com/yourusername/ijs.git
    cd ijs
    
  2. 使用 Android Studio 打开项目

  3. 同步 Gradle 依赖

  4. 构建 APK

    ./gradlew assembleDebug
    

主要依赖

implementation("org.matheclipse:matheclipse-core:3.1.0")
implementation("androidx.appcompat:appcompat:1.6.1")
implementation("com.google.android.material:material:1.11.0")

📚 关于 Symja

本项目使用 Symja 作为符号计算引擎。

Symja 是一个用纯 Java 实现的计算机代数系统(CAS),灵感来自 Wolfram Language,支持:

  • 任意精度整数、有理数和复数
  • 多项式、列表函数和关联
  • 微分、积分、方程求解、线性代数
  • 通用的项重写系统和模式匹配
  • Rubi 符号积分规则

许可证

  • matheclipse-core:LGPL-3.0
  • matheclipse-gpl:GPL-3.0
  • matheclipse-io:GPL-3.0

🤝 贡献

欢迎贡献代码、报告问题或提出建议!

  1. Fork 本仓库
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 开启 Pull Request

详见 CONTRIBUTING.md


📄 许可证

本项目采用 GPL-3.0 许可证 - 详见 LICENSE 文件


🙏 致谢


📞 联系方式

  • 提交 Issue
  • 邮箱:nonvioce@qq.com

**如果这个项目对你有帮助,请给它一个 ⭐️!** Made with ❤️ by [nonvioce](https://github.com/yourusername)