2026a
# newknt
新断点分布
函数库: TyCurveFitting
# 语法
newknots, distfn = newknt(f, newl)
_ = newknt(f)
# 说明
newknots, distfn = newknt(f, newl) 返回一个断点序列newknots 以及以 pp 型返回均分布的分段线性单调函数 distfn。newknots 断点将 f 的基本区间划为 newl 份,且使得与 f 的高阶导数相关的一个分段线性单调函数 distfn 平均分布。示例
函数的开发目的在于选取一个适合于对函数 g 的好的估计的断点序列,其中 g 满足在 f 中的粗略估计预估中含有 g 的足够信息即可使得估计可以完成。
_ = newknt(f) 使 newl 为默认值,即 f 的多项式分段的段数。
# 示例
如果对数据 x, y 的最小二乘 k 阶样条估计 sp 看上去不均匀,可以尝试使用
spap2(newknt(sp), k, x, y)
来找到更平均的分布。
新断点分布
给定 k = 3 和严格增序列 breaks = 0:0.1:pi ,生成正弦函数在区间 [0, pi] 的样条插值。
using TyCurveFitting
k = 3
breaks = collect(0:0.1:pi)
t = augknt(breaks, k)[1]
x = aveknt(t, 3)
sp = spapi(t, x, sin.(x))
对该样条插值生成新的断点分布。
newknt(sp, 4)[1]
ans = 9-element Vector{Float64}:
0.0
0.0
0.0
0.6551181888158768
1.5147519913252059
2.441188308513131
3.1
3.1
3.1
另一个例子,可以见“使用配置法求解带边界层的非线性常微分方程。”
# 算法
这是 Fortran 在 PCG 中的进程 NEWNOT。其中 k 为 pp 中分段多项式函数 f 的阶数,函数