具有指定根的多项式或特征多项式 您所在的位置:网站首页 poly-f 具有指定根的多项式或特征多项式

具有指定根的多项式或特征多项式

2023-04-08 07:48| 来源: 网络整理| 查看: 265

本页翻译不是最新的。点击此处可查看最新英文版本。

poly

具有指定根的多项式或特征多项式

全页折叠 语法p = poly(r)p = poly(A)说明

示例

p = poly(r)(其中 r 是向量)返回多项式的系数,其中多项式的根是 r 的元素。

示例

p = poly(A)(其中 A 是 n×n 矩阵)返回矩阵 det(λI – A) 的特征多项式的 n+1 个系数。

示例

全部折叠

来自特征值的特征多项式打开实时脚本

计算矩阵 A 的特征值。

A = [1 8 -10; -4 2 4; -5 2 8]A = 3×3 1 8 -10 -4 2 4 -5 2 8 e = eig(A)e = 3×1 complex 11.6219 + 0.0000i -0.3110 + 2.6704i -0.3110 - 2.6704i

由于 e 中的特征值是 A 的特征多项式的根,使用 poly 可确定来自 e 中的值的特征多项式。

p = poly(e)p = 1×4 1.0000 -11.0000 0.0000 -84.0000 矩阵的特征多项式打开实时脚本

使用 poly 来计算矩阵 A 的特征多项式。

A = [1 2 3; 4 5 6; 7 8 0]A = 3×3 1 2 3 4 5 6 7 8 0 p = poly(A)p = 1×4 1.0000 -6.0000 -72.0000 -27.0000

使用 roots 计算 p 的根。特征多项式的根是矩阵 A 的特征值。

r = roots(p)r = 3×1 12.1229 -5.7345 -0.3884 输入参数

全部折叠

r — 多项式根 向量

多项式的根,指定为向量。

示例: poly([2 -3])

示例: poly([2 -2 3 -3])

示例: poly(roots(k))

示例: poly(eig(A))

数据类型: single | double 复数支持: 是

A — 输入矩阵 矩阵

输入矩阵。

示例: poly([0 -1; 1 0])

数据类型: single | double 复数支持: 是

输出参数

全部折叠

p — 多项式系数 行向量

多项式系数,以行向量形式返回。

如果输入为 n×n 方阵 A,则 p 包含 A 的特征多项式的系数。

如果输入是根的向量 r,则 p 包含其根在 r 中的多项式的系数。

在每种情况下,p 中的 n+1 个系数都以如下方式描述多项式

p1xn+p2xn−1+...+pnx+pn+1 .

提示

对于向量,r = roots(p) 和 p = poly(r) 互为反函数,负责舍入误差、排序和缩放。

算法

用于 poly 和 roots 的算法阐明了现代特征值计算方法中一个有趣的方面。poly(A) 生成 A 的特征多项式,roots(poly(A)) 计算该多项式的根,而这些根是 A 的特征值。但 poly 和 roots 都使用基于相似变换的 eig。传统方法实际上与之相反,它是将特征值定义为特征多项式根。

如果 A 是 n×n 矩阵,poly(A) 生成系数 p(1) 至 p(n+1),对于以下方程,p(1) = 1

det(λI−A)=p1λn+…+pnλ+pn+1 .

算法是

z = eig(A); p = zeros(n+1,1); p(1) = 1; for j = 1:n p(2:j+1) = p(2:j+1)-z(j)*p(1:j); end

此递归通过展开乘积来获得,

(λ−λ1)(λ−λ2)…(λ−λn) .

可以证明 poly(A) 在 A 的舍入误差内生成矩阵特征多项式中的系数。即使 A 的特征值为病态的情况下,这也成立。用于获取特征多项式的传统算法不使用特征值,并且没有此类符合要求的数值属性。

扩展功能C/C++ 代码生成 使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。

用法说明和限制:

代码生成不会丢弃非有限输入值。

非向量输入将生成复数输出。仅当输入为实数且第一个维度或第二个维度的大小固定为 1 时,向量输入才会生成实数输出。

请参阅Variable-Sizing Restrictions for Code Generation of Toolbox Functions (MATLAB Coder)。

基于线程的环境 使用 MATLAB® backgroundPool 在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool 加快代码运行速度。

此函数完全支持基于线程的环境。有关详细信息,请参阅Run MATLAB Functions in Thread-Based Environment。

GPU 数组 通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。

此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。

版本历史记录

在 R2006a 之前推出

另请参阅

roots | conv | residue | polyval | polyvalm

主题创建并计算多项式


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有