# polyval
多项式计算
函数库: TyMath
# 语法
y = polyval(p,x)
y,delta = polyval(p,x,s)
y = polyval(p,x,[],mu)
y,delta = polyval(p,x,s,mu)
# 说明
y = polyval(p,x) 计算多项式 p 在 x 的每个点处的值。参数 p 是长度为 n+1 的向量,其元素是 n 次多项式的系数(降幂排序):示例
虽然可以为不同目的使用 polyint、polyder 和 polyfit 等函数计算 p 中的多项式系数,但您也可以为系数指定任何向量。
要以矩阵方式计算多项式,请改用 polyvalm。
y,delta = polyval(p,x,S) 使用 polyfit 生成的可选输出结构体 S 来生成误差估计值。delta 是使用 p(x) 预测 x 处的未来观测值时的标准误差估计值。
y = polyval(p,x,[], mu) 或 y,delta = polyval(p,x,S,mu) 使用 polyfit 生成的可选输出 mu 来中心化和缩放数据。mu[1] 为 mean(x),mu[2] 为 std(x)。使用这些值时,polyval 将 x 的中心置于零值处并缩放为具有单位标准差:
这种中心化和缩放变换可改善多项式的数值属性。
# 示例
计算几个点处的多项式值
计算多项式
using TyMath
p = [3,2,1]
x = [5,7,9]
y = polyval(p,x)
y = 3-element Vector{Int64}:
86
162
262
对四次多项式求积分
计算定积分
创建一个向量来表示多项式被积函数
using TyMath
p = [3,0,-4,10,-25]
使用 polyint 和等于 0 的积分常量来对多项式求积分。
q = polyint(p)
q = 6-element Vector{Float64}:
0.6
0.0
-1.3333333333333333
5.0
-25.0
0.0
通过在积分极限上计算 q,求解积分的值。
a = -1
b = 3
I = diff(polyval(q,[a,b]))
I = 1-element Vector{Float64}:
49.06666666666665
# 输入参数
p — 多项式系数向量
多项式系数,指定为向量。例如,向量 [1,0,1] 表示多项式
数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16
复数支持: 是
x — 查询点向量
查询点,指定为向量。polyval 计算多项式 p 在 x 中的点处的值,并在 y 中返回对应的函数值。
数据类型: Int64 | Int32 | Int16 | Int128 | Float64 | Float32 | Float16
复数支持: 是
S — 误差估计元组元组
误差估计元组。此元组是 p,S,mu = polyfit(x,y,n) 中的第二个输出。指定 S 作为 polyval 的输入以获得误差估计值。S 包含以下字段:
| 字段 | 说明 |
|---|---|
| R | 范德蒙矩阵 x 的 QR 分解的三角 R 因子(可能经过置换) |
| df | 自由度 |
| normr | 残差的范数 |
如果 y 中的数据是随机的,则 p 的估计协方差矩阵是 (Rinv*Rinv')*normr^2/df,其中 Rinv 是 R 的逆矩阵。
mu — 中心化值和缩放值二元素向量
中心化和缩放值,指定为二元素向量。此向量是 p,S,mu = polyfit(x,y,n) 中的第三个输出,用于改善拟合和计算多项式 p 的数值属性。值 mu[1] 为 mean(x),mu[2] 为 std(x)。这些值用于以单位标准差将 x 中的查询点的中心置于零值处。
指定 mu 以计算 p 在缩放点 (x - mu[1])/mu[2] 处的值。
# 输出参数
y — 函数值向量
函数值,以大小与查询点 x 相同的向量形式返回。向量包含在 x 中的每个点处计算多项式 p 所得的结果。
delta — 预测的标准误差向量
预测的标准误差,以大小与查询点 x 相同的向量形式返回。通常,区间 y ± Δ 对应于大型样本的未来观测值约 68% 的预测区间,y ± 2Δ 对应于约 95% 的预测区间。
如果 p 中的系数是 polyfit 计算的最小二乘估计值,polyfit 数据输入中的误差呈独立正态分布,并拥有常量方差,则 y ± Δ 对应于至少 50% 的预测区间。