# coefficients
多项式系数
函数库: TySymbolicMath
# 语法
c = coefficients(p::AbstractPolynomialLike)
c = coefficients(p::AbstractPolynomialLike, X::AbstractVector)
c = coefficients(p)
c = coefficients(p,X)
c = coefficients(___,"All")
c,t = coefficients(___;nargout = Val(2))
# 说明
c = coefficients(p::AbstractPolynomialLike) 返回对以单项式递减排序的多项式 p 的非零项系数。 示例
c = coefficients(p::AbstractPolynomialLike, X::AbstractVector) 返回多项式 p 中 X 的单项式的系数,其中 X 是一个单项式向量,不一定要排序但没有重复项。 示例
c = coefficients(p) 返回 p 关于所有变量(由 symvar(p) 确定)的多项式系数。示例
c = coefficients(p,X) 返回 p 关于变量 X 的多项式系数。示例
c = coefficients(___,"All") 返回所有系数,包括为 0 的系数。例如, coefficients(2*x^2,"All") 返回 [ 2, 0, 0] 而不是 2 。示例
c , t = coefficients(___;nargout = Val(2)) 返回多项式的系数 c 和相应的项 t 。示例
# 示例
一元多项式的系数
找出这个单变量多项式的系数。系数从最低阶到最高阶排序。
using TySymbolicMath
@polyvar x
c = coefficients(16*x^2 + 19*x + 11)
3-element Vector{Int64}:
11
19
16
多元多项式关于特定变量的系数
求以下多项式关于变量 x 和变量 y 的系数。
using TySymbolicMath
@polyvar x y
c = coefficients(4x^2*y + x*y + 2x + 3, [x, 1, x*y, y])
4-element Vector{Int64}:
2
3
1
0
多元多项式的系数返回规则
coefficients 只寻找需要查找的指定项的系数,而不会将符号变量 x 或 y 当作系数返回。例如,以下多项式 p 中,虽然有包含 x 的单项式,但并无仅包含 x 的单项式,因此会返回 0。
using TySymbolicMath
@polyvar x y
cx = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, [x])
1-element Vector{Int64}:
0
单变量多项式的系数
求出这个单变量多项式的系数。系数按从最低次数到最高次数的顺序排列。
using TySymbolicMath
@variables x
c = coefficients(16*x^2 + 19*x + 11)
c = 3-element Vector{Num}:
11
19
16
使用 reverse 来反转系数的顺序。
c = reverse(c)
c = 3-element Vector{Num}:
16
19
11
关于特定变量的多元多项式的系数
求出该多项式关于变量 x 和变量 y 的系数。
using TySymbolicMath
@variables x y
cx = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, x)
cy = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, y)
cx = 4-element Vector{Num}:
4(y^3)
3(y^2)
2y
1
cy = 4-element Vector{Num}:
x^3
2(x^2)
3x
4
关于两个变量的多元多项式的系数
求出该多项式关于两个变量 x 和 y 的系数。
using TySymbolicMath
@variables x y
cxy = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, [x y])
cyx = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, [y x])
cxy = 4-element Vector{Num}:
4
3
2
1
cyx = 4-element Vector{Num}:
1
2
3
4
单变量多项式的系数和对应项
找到这个单变量多项式的系数和相应的项。当提供两个输出时,系数按从最高次数到最低次数的顺序排列。
using TySymbolicMath
@variables x
c,t = coefficients(16*x^2 + 19*x + 11;nargout=Val(2))
c = 3-element Vector{Num}:
16
19
11
t = 3-element Vector{Num}:
x^2
x
1
多元多项式的系数和对应项
求出该多项式关于变量 x 和变量 y 的系数和对应项。
using TySymbolicMath
@variables x y
cx,tx = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, x; nargout=Val(2))
cy,ty = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, y; nargout=Val(2))
cx = 4-element Vector{Num}:
1
2y
3(y^2)
4(y^3)
tx = 4-element Vector{Num}:
x^3
x^2
x
1
cy = 4-element Vector{Num}:
4
3x
2(x^2)
x^3
ty = 4-element Vector{Num}:
y^3
y^2
y
1
求出该多项式关于两个变量 x 和 y 的系数。
@variables x y
cxy, txy = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, [x,y]; nargout=Val(2))
cyx, tyx = coefficients(x^3 + 2*x^2*y + 3*x*y^2 + 4*y^3, [y,x]; nargout=Val(2))
cxy = 4-element Vector{Num}:
1
2
3
4
txy = 4-element Vector{Num}:
x^3
(x^2)*y
x*(y^2)
y^3
cyx = 4-element Vector{Num}:
4
3
2
1
tyx = 4-element Vector{Num}:
y^3
x*(y^2)
(x^2)*y
x^3
多项式的所有系数
通过指定选项,查找多项式的所有系数,包括 0 的系数。返回的系数按从最高次数到最低次数的顺序排列。
找出
using TySymbolicMath
@variables x
c = coefficients(3*x^2, "All")
c = 3-element Vector{Num}:
3
0
0
如果您找到有关多个变量的系数并指定 "All",则 coefficients 返回变量的所有组合的系数。
找出
using TySymbolicMath
@variables a b y
cxy, txy = coefficients(a*x^2 + b*y, [y x], "All"; nargout=Val(2))
cxy = 2×3 Matrix{Num}:
0 0 b
a 0 0
txy = 2×3 Matrix{Num}:
(x^2)*y x*y y
x^2 x 1
# 输入参数
p - 多项式符号变量 | 符号表达式 | 符号函数
多项式,指定为符号变量、表达式或函数。该输入必须为 AbstractPolynomialLike 或 Num 类型。
X - 多项式变量符号向量
多项式变量,指定为符号变量或数字组成的向量。
数据类型: Num
nargout - 输出格式的关键字参数Val(1)(默认值) | Val(2)
nargout 是用于控制输出个数的关键字参数,指定为 Val(1) 或 Val(2),默认值为 Val(1),若需要输出系数和相应的项,请指定 nargout = Val(2)。
# 输出参数
c - 多项式系数向量
多项式系数,返回为数值组成的向量。
数据类型: Int | Float | Num
t - 多项式的项符号变量 | 符号向量 | 符号矩阵 | 符号数组
多项式的项,以符号数字、变量、表达式、向量、矩阵或多维数组的形式返回。如果只有一个系数和一个对应项,则以标量形式返回。
数据类型: Num