在三次样条插值中计算矩阵

2024-01-07

我读过有关的文章https://www.value-at-risk.net/cubic-spline-interpolation/ https://www.value-at-risk.net/cubic-spline-interpolation/

我了解所有内容,但我不知道如何获取矩阵的值:

我知道有这样的东西 hi = hi+1 - hi

我访问了几个网站,阅读了不同的解释,但我从未发现我到底是如何得出矩阵中的这个值的。


该矩阵只是编码为矩阵的方程组,因此可以通过逆矩阵轻松计算。

例如矩阵的第二行(8,4,2,1,0,0,0,0)矩阵乘法之后的意思是:

a3.2^3+a2.1^2+a1.2^1+a0=5

这是你的p1(2)=5这些行是:

p1(1)=1
p1(2)=5
p2(2)=5
p2(3)=4
p1'(2)-p2'(2)=0
p1''(2)-p2''(2)=0
p1''(1)=0
p2''(3)=0

例如最后一个矩阵行( 0,0,0,0,18,2,0,0 )这是:

b3.18 + b2.2 = 0

如果我们推导出p2(t)最多二阶导数

p2(t) = b3.t^3 + b2.t^2 + b1.t + b0
p2'(t) = 3.b3.t^2 + 2.b2.t + b1
p2''(t) = 2.3.b3.t + 1.2.b2  = 6.b3.t + 2.b2

Now for t=3 we get:

p2''(3) = 6.b3.3 + 2.b2 = 18.b3 + 2.b2

并编码成矩阵(最后一行)

(0,0,0,0,18,2,0,0) * ( a3,a2,a1,a0,b3,b2,b1,b0) = 0

这符合你的例子。希望现在已经清楚了...

请注意,你的这个例子只是为了y轴当你得到二维曲线时你需要这样做x再次以同样的方式轴...

现在让我们再次重写矩阵方程:

M*A=B

Where M是你的8x8矩阵,A=(a3,a2,a1,a0,b3,b2,b1,b0) and B=(1,5,5,4,0,0,0,0)你可以这样解决这个问题:

inverse(M)*M*A = inverse(M)*B
             A = inverse(M)*B

这样你就得到了A其中包含你的p1,p2多项式系数B它保持你的位置(y一次传递中的坐标和下一次中的 x 坐标),所以你得到p1x,p1y,p2x,p2y多项式。这就是插值所需的。

然而这种方法有点落后,通常使用预定义的多项式形式,如 SPLINE、BEZIER,具有连续性、线性等定义的属性(不需要逆矩阵运算)。但是,如果您需要像本示例中那样的自定义属性,那么您就没有太多选择。

欲了解更多信息,请参阅如何产生多点线性插补? https://stackoverflow.com/a/30438865/2521214

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在三次样条插值中计算矩阵 的相关文章

  • java数学中的组合“N选择R”?

    java库中是否有内置方法可以为任何N R计算 N选择R 公式 实际上很容易计算N choose K甚至不需要计算阶乘 我们知道 公式为 N choose K is N N K K 因此 公式为 N choose K 1 is N N N
  • 是什么导致 Java(冰雹序列)在我的程序中崩溃

    我制作了一个执行 通常称为 冰雹序列的程序 该程序基本上执行以下操作 创建一个int 值 并为其分配一个值 如果 int 是偶数 则将其除以二 如果 int 为奇数 则将其乘以三并加一 继续这个过程 直到 n 等于 1 它似乎适用于大多数数
  • 如何高效计算连续数的数字积?

    我正在尝试计算数字序列中每个数字的数字乘积 例如 21 22 23 98 99 将会 2 4 6 72 81 为了降低复杂性 我只会考虑 连续的数字 http simple wikipedia org wiki Consecutive in
  • 二维随机微分方程 (SDE)

    我第一次研究随机微分方程 我正在寻求模拟和求解二维随机微分方程 模型如下 dp F t p dt G t p dW t where p 是一个 2 1 向量 p theta t phi t F是列向量 F sin theta Psi cos
  • 有没有好的 GLSL 哈希函数?

    所以我对这个问题的古老评论仍然得到了支持 GLSL rand 这一行代码的起源是什么 https stackoverflow com questions 12964279 whats the origin of this glsl rand
  • 为 javascript 编写一个真正具有包容性的随机方法

    Javascript MATH 对象有一个随机方法 该方法从集合 0 1 返回 0 含 0 1 不包括 有没有办法返回一个真正随机的方法 其中包括 1 e g var rand MATH random 2 if rand gt 1 rand
  • 在unity3D中显示数学方程

    我想使用它的 GUI 系统统一显示数学方程 有办法吗 我正在使用 C 语言在 Unity 中进行编程 如果我还可以使用 C 代码显示数学符号 这对我来说会很有用 谢谢 自 2016 年起 您可以使用TEXDraw https assetst
  • 计算机如何评估巨大的数字?

    例如 如果我输入一个值 1234567 98787878 Wolfram Alpha 可以为我提供许多细节 这包括小数近似 总长度 最后一位数字等等 您如何评估如此大的数字 据我了解 编程语言必须具有特殊的数据类型才能存储数字 更不用说将其
  • 如何在 C# 中将 BigInteger 转换为 pow Double?

    我尝试使用BigInteger Pow计算类似 10 12345 987654321 的方法 但此方法只接受整数作为指数 如下所示 BigInteger Pow BigInteger x int y 那么如何在上述方法中使用双数作为指数呢
  • WPF 3D - 在复杂几何体上映射渐变画笔

    我想问是否有人知道如何在 WPF 3D 中的复杂对象上映射渐变画笔 结果应该类似于 matlab 中的 3D 图像 例如 3D 函数 假设您有一些想要可视化的 3 维数据 并且想要通过颜色区分某些级别的值 给定一个 GradientBrus
  • 小数纬度/经度的最大长度 度?

    地球表面一度纬度和经度的最大长度是多少 以公里或英里为单位 但请注明 我不确定我是否说得足够清楚 让我重新表述一下 众所周知 地球不是一个完美的圆 赤道 或厄瓜多尔 纬度 经度变化 1 0 可能意味着一个距离 而两极的相同变化可能意味着另一
  • 透视变形矩形的比例

    给定一张被透视扭曲的矩形的二维图片 我知道这个形状原本是一个矩形 但我不知道它原来的大小 如果我知道这张图片中角点的像素坐标 我如何计算原始比例 即矩形的商 宽度 高度 背景 目标是自动使矩形文档的照片不失真 边缘检测可能会通过霍夫变换完成
  • 使用 JSTS 缓冲区识别自相交多边形

    我希望能够通过 JSTS 无法构造自相交多边形或通过添加缓冲区并在缓冲后测试它们是否是多重多边形来测试自相交多边形 但对于某种形状 这是行不通的 这远远超出了我的几何能力格罗克 a self intersecting shape var p
  • 如何使用NSDecimalNumber?

    我正在构建一个需要对金钱进行计算的应用程序 我想知道如何正确使用 NSDecimalNumber 特别是如何从整数 浮点数和双精度数初始化它 我只发现它很容易使用 decimalNumberWithString 方法 这 initWith
  • 从基本矩阵中查找单应矩阵

    我正在尝试计算单应性矩阵H给定一组对应关系和基本矩阵F 根据对极几何原理 我知道这可以通过对极线和对极线的叉积来完成F from 极点几何 http www cs unc edu marc tutorial node44 html e ij
  • 将多边形“对齐”在一起

    我有一组代表行政区的多边形 这些区域是手工数字化的 多边形之间有很小的空间 多边形之间应该接触 可能还有重叠的多边形 如何让多边形对齐在一起 填充间隙并消除重叠 首选 QGIS ArcGIS 或 Python 库解决方案 但欢迎算法建议 我
  • 几何:找到两点之间特定距离的点

    这类似于这个问题 https stackoverflow com questions 328107 how can you determine a point is between two other points on a line se
  • 如何在sphinx中启用数学?

    我在用sphinx http sphinx pocoo org index html与pngmath http sphinx pocoo org ext math html module sphinx ext pngmath扩展来记录我的代
  • 将两个大数作为字符串相除,而不使用java中的Bignumbers

    我需要在不使用 Biginteger 的情况下划分两个大整数 因为数字不能存储在原始类型中 因为我需要从给定的字符串中逐个字符地执行此操作 我已经创建了一个名为 BigNumber 的类 用这个类我可以 Add multiply 比较两个内
  • 路径描边算法(转换为三角形/四边形)或其他建议

    有谁知道将矢量路径转换为由三角形 四边形面组成的描边路径的好算法 最好采用圆线连接 基本上 我试图绘制一条粗路径 其颜色基于随路径距离变化的值 我正在考虑将路径转换为三角形 四边形 并通过提供沿路径的距离作为一维纹理坐标来映射它 然后可以使

随机推荐