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

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(使用前将#替换为@)

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

  • 如何将数学公式转换为Python代码?

    有没有简单的方法可以将数学公式转换为 Python 代码 也许是译者 网络参考 具体的书籍章节 任何东西 对于正则表达式 有诸如Kodos http kodos sourceforge net 和网站 例如pythonregex com h
  • WPF 中的填充弧

    I am trying to draw a figure something like this 我需要为每个弧段都有一个独特的元素 我可以根据需要处理事件并重新着色 我有点不确定如何在 WPF 中创建正确的几何图形 我可以根据圆的半径和与
  • 帮我用光线追踪器解决这个错误

    我不会针对这个问题发布任何代码 因为它需要太多的上下文 但我将从概念上解释我正在做什么 我正在构建一个使用仿射变换的简单光线追踪器 我的意思是 我将来自相机坐标的所有光线与通用形状相交 这些形状都具有关联的仿射变换 并且光线在与场景对象相交
  • 在小于 O(n) 的时间内检查凸多边形交集?

    我有 2 个凸多边形 2d 我想检查这 2 个多边形是否相交 事实上 我会多次移动和旋转多边形 所以我也可以做一些预计算来获得这个问题的快速答案 我正在寻找一种低复杂度的算法 我知道可以检查一个点是否位于 O log n 的凸多边形中 我想
  • 二维空间中的重叠线段

    我需要找出两条线是否相互重叠 如果两条线平行 我有返回 0 的交集代码 但接下来我需要知道这两条平行线是否重叠 Edit A C B D 1号线 A B 2号线 C D 我需要确定第 1 行是否与第 2 行重叠 但两条线的斜率都可以 gt
  • 模行为背后的数学

    Preamble 这个问题与 P RNG 的行为无关rand 它是关于使用均匀分布的两个值的幂对模 介绍 我知道不应该使用模数 将一个值从一个范围转换为另一个范围 例如从 0 到 5 之间的值rand 功能 会有偏差 这里解释了https
  • 路径描边算法(转换为三角形/四边形)或其他建议

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

    这是一个非常简单的 Java 尽管可能适用于所有编程 问题 Math random 返回 0 到 1 之间的数字 如果我想返回零到百之间的整数 我会这样做 int Math floor Math random 101 在一到一百之间 我会这
  • 如何在Python中获得更精确的十进制值[重复]

    这个问题在这里已经有答案了 from math import sqrt a 1e 8 b 10 c 1e 8 x1 b sqrt b 2 4 a c 2 a x2 b sqrt b 2 4 a c 2 a print x1 format x
  • 轮廓积分算法 C++

    我正在尝试编写一个应用数学程序来计算复平面中的轮廓积分 对于初学者来说 我想为梯形方法编写一个算法 但我有点坚持理解它会是什么样子 毕竟 我们通常将梯形方法视为 2D 图 而这里我们有 f C gt C 所以我们谈论的是 4D 最终我希望用
  • 找到经过大多数点的直线的最有效算法是什么?

    问题 N 个点在二维平面上给出 同一个点上最多有多少个点straight line The problem has O N2 solution go through each point and find the number of poi
  • Python 中的 C 指针算术

    我正在尝试将一个简单的 C 程序转换为 Python 但由于我对 C 和 Python 都一无所知 这对我来说很困难 我被 C 指针困住了 有一个函数采用 unsigned long int 指针并将其值添加到 while 循环中的某些变量
  • 为什么循环引导迭代算法的数组大小必须为 3^k+1?

    The 循环引导迭代算法 http www geeksforgeeks org an in place algorithm for string transformation 是一种通过将所有偶数项移至前面并将所有奇数项移至后面同时保留其相
  • 构建协同过滤/推荐系统

    我正在设计一个网站 该网站的概念是根据用户的口味向他们推荐各种商品 即他们评价过的项目 添加到收藏夹列表中的项目等 亚马逊 Movielens 和 Netflix 就是这样的例子 现在 我的问题是 我不知道从哪里开始了解这个系统的数学部分
  • 最小对的总和

    Given 2N点 in a 2D plane 你必须将它们分组为N pairs使得所有对的点之间的距离的总和是最小可能值 所需的输出只是总和 换句话说 如果a1 a2 an分别是第一对 第二对 和第 n 对点之间的距离 则 a1 a2 a
  • 可以容纳居中内容的响应式 CSS 圆圈

    我正在寻找一种方法来创建一个可以容纳居中内容的响应式 CSS3 圆圈 关于圈子 我发现了一些很好的信息这个问题 https stackoverflow com questions 12945891 responsive css circle
  • 空序列的算术平均值是多少?

    免责声明 不 我没有找到任何明显的答案 这与我的预期相反 在寻找代码示例时 算术平均值 我可以通过谷歌找到的前几个例子似乎是这样定义的 空序列生成的平均值为0 0 eg here https rosettacode org wiki Ave
  • 多个点之间的最短路线

    我需要找到多个点之间的最短路线 假设我有以下四点 var startPoint new Point 1 1 var pointsToGoPast new List
  • 生成随机数背后的数学(崩溃游戏 BTC Casino)

    我正在开发一款基于网络的游戏 其中有多个迷你游戏 我们坚持还添加一个在赌博界非常流行的崩溃游戏 然而 我们一直在努力理解生成随机 几乎不可预测 数字的概念 大多数赌博网站都会提供哈希值等来证明数字未被篡改 我们真的不需要这个 因为我们的游戏
  • javascript的随机实现在各种浏览器中的可信度如何?

    我想做一些关于 javascript 和加密的实验 我很好奇随机函数的实现是如何不可预测的 有人做过硬测试吗 显然 浏览器有能力生成强随机性 对于 ssl 问题是它们是否赋予 javascript 相同的强度 一般来说 随机函数在加密方面并

随机推荐