You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maxima中solve函数联立含sin的方程返回空解的问题咨询

问题原因

这是Maxima原生solve函数的设计局限导致的,不是方程组本身无解:

  • solve的核心求解逻辑是面向多项式类方程设计的,处理线性多项式方程组时会走专门的线性代数求解分支,结果稳定可靠,这也是单独解[x=2,y=3]能拿到正确结果的原因。
  • 对于单条含三角函数、指数函数的超越方程,solve做了单独的启发式特判适配,所以单独解sin(x)=1的时候,能触发特判逻辑返回主值解x=%pi/2。
  • 当把多项式方程和超越方程混合传入作为联立方程组时,solve不会自动拆分方程组、分别走不同分支求解再合并结果,它会尝试把整个输入按照纯多项式系统处理,识别到非多项式的sin项后匹配不到对应的求解规则,就会直接返回空列表[]。
解决方法

两种常用方案可以拿到正确结果:

  • 手动拆分解题步骤,先求解超越方程部分,再和多项式方程的解合并,示例代码:
/* 先求解三角函数方程拿到x的解 */
sol_x: solve([sin(x) = 1], [x]);
/* 合并y的解得到完整联立结果 */
full_sol: append(sol_x, solve([y = 3], [y]));

执行后可以得到正确结果[[x = %pi/2, y = 3]]。

  • 调用对混合方程支持更好的to_poly_solve函数直接求解,这个函数专门补强了超越方程、多项式混合场景的求解能力,示例代码:
/* 先加载对应工具包 */
load(to_poly_solve);
/* 直接传入联立方程组求解 */
to_poly_solve([sin(x) = 1, y = 3], [x, y]);

执行后可以直接返回正确的解集合。

内容的提问来源于stack exchange,提问作者ols

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 07:21:28