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

MATLAB中solve函数求解方程出现多个重复零根问题咨询

问题原因解析

你的代码中函数 f = x^4 * sin(x) 在x=0处是5重根:

  • x^4 本身在x=0处是4重根(导数直到3阶都是0,4阶非0)
  • sin(x) 在x=0处是1重根(一阶导数非0)
    两者相乘后,x=0的根的重数是4+1=5。

MATLAB的solve函数默认行为是返回包含重数的所有根,所以会把x=0重复输出5次,其他根(±π、±2π、±3π)都是单根,因此各输出一次,这完全符合函数根的数学性质,并非异常。

如果只想得到不重复的根,可以使用unique函数处理结果:

syms x;
f = x^4 * sin(x);
assume(x >= -10 & x <= 10);
roots = solve(f,x);
unique_roots = unique(roots)

运行后会得到(-3π, -2π, -π, 0, π, 2π, 3π),即去重后的所有根。

内容的提问来源于stack exchange,提问作者A-Eye

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 03:59:51