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

MATLAB中无需将多项式转为矩阵形式求根的方法咨询

MATLAB中直接对非系数矩阵形式多项式求根的方法

如果你的多项式已经是符号函数形式(比如通过syms x; p(x) = x^2 - 4;定义),无需转换为系数矩阵,可直接使用以下方法求根:

  • 使用solve函数获取精确符号解

    syms x
    p(x) = x^2 - 4;
    roots = solve(p(x) == 0, x);
    

    执行后roots会返回精确的符号解[-2; 2]。

  • 使用vpasolve函数获取高精度数值解

    syms x
    p(x) = x^2 - 4;
    roots = vpasolve(p(x) == 0, x);
    

    适合处理无法得到解析解的复杂多项式,返回结果为数值形式。

若你的多项式是匿名函数形式(比如p = @(x) x^2 - 4;),可借助数值求解器:

  • 用fzero求解单个根(需提供初始猜测值)

    p = @(x) x^2 - 4;
    root1 = fzero(p, 0); % 初始猜测0附近的根,得到2
    root2 = fzero(p, -3); % 初始猜测-3附近的根,得到-2
    
  • 用fsolve求解多个根(需提供初始猜测数组)

    p = @(x) x^2 - 4;
    roots = fsolve(p, [1, -1]); % 初始猜测[1,-1],得到[2,-2]
    

注意事项:

  • 符号类求解器(solve/vpasolve)更适合直接处理符号多项式,能返回所有根;
  • 数值求解器(fzero/fsolve)依赖初始猜测值,高次多项式可能需要多次尝试才能找到所有根。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:45:41