我的机器学习教程「美团」算法工程师带你入门机器学习  以及 「三分钟系列」数据结构与算法  已经开始更新了,欢迎大家订阅~这篇专栏整合了这几年的算法知识,简单易懂,也将是我实体书的BLOG版。

欢迎大家扫码关注微信公众号「图灵的猫」,除了有更多AI、算法、Python相关文章分享,还有免费的SSR节点和外网学习资料。其他平台(微信/知乎/B站)也是同名「图灵的猫」,不要迷路哦~

做三次样条曲线时,需要解三对角矩阵(Tridiagonal Matrices)。常用解法为Thomas Algorithm,又叫The tridiagonal matrix algorithm (TDMA)。它是一种基于高斯消元法的算法, 分为两个阶段:向前消元forward elimination和回代backward substitution。本文以一个6乘6矩阵为例,介绍一下使用TDMA的求解过程。

1.范例求解

步骤1: 将矩阵变为上三角矩阵

首先要把上面公式中的系数矩阵变为一个上三角矩阵。

第一行:

将上式除以b1:

可写作:

所以矩阵方程可写为:

第二行:

将变换后的第一行乘以a2,再与第二行相减,即可消去x1,得:

所以新的矩阵方程为:

同理可推,

第三行:

第四行:

第五行:

第六行:

最后得到新的上三角矩阵公式为:

步骤2:求解

x逆序可以求出,如下:

2. 一般性公式:

注意:

使用TDMA求解,系数矩阵需时diagonally dominant, 即:

3. 实现代码(C语言)

void tdma(float x[], const size_t N, const float a[], const float b[], float c[])
{size_t n;c[0] = c[0] / b[0];x[0] = x[0] / b[0];for (n = 1; n < N; n++) {float m = 1.0f / (b[n] - a[n] * c[n - 1]);c[n] = c[n] * m;x[n] = (x[n] - a[n] * x[n - 1]) * m;}for (n = N - 1; n-- > 0; )x[n] = x[n] - c[n] * x[n + 1];
}

三次样条插值之三对角矩阵算法相关推荐

  1. 数学建模十大算法02—插值与拟合(拉格朗日插值、三次样条插值、线性最小二乘法……)

    文章目录 引入 一.插值 1.1 分段线性插值 1.2 牛顿插值法 1.3 拉格朗日插值多项式 1.4 样条插值 1.4.1 三次样条插值 1.5 二维插值 1.5.1 插值节点为网格节点 1.5.2 ...

  2. 【数学与算法】【分段三次Hermite插值】和【分段三次样条插值】

    光滑曲线在数学上的定义是什么?? 原文链接:光滑曲线在数学上的定义是什么? 回答1: 定义:切线随切点的移动而连续转动. 若函数f(x)f(x)f(x)在区间(a,b)(a,b)(a,b)内具有一阶连 ...

  3. 三次样条插值三弯矩matlab_三次样条(cubic spline)插值

    当已知某些点而不知道具体方程时候,最经常遇到的场景就是做实验,采集到数据的时候,我们通常有两种做法:拟合或者插值.拟合不要求方程通过所有的已知点,讲究神似,就是整体趋势一致.插值则是形似,每个已知点都 ...

  4. aitken插值方法的c++代码_无人驾驶路径规划技术-三次样条插值曲线及Python代码实现...

    自动驾驶运动规划(Motion Planning)是无人驾驶汽车的核心模块之一,它的主要任务之一就是如何生成舒适的.碰撞避免的行驶路径和舒适的运动速度.生成行驶路径最经典方法之一就是是Sampling ...

  5. Spline(三次样条插值)

    关于三次样条插值,计算方法比较复杂,但是静下心来仔细研究也是可以理解的. 本文借鉴文章来源:http://www.cnki.com.cn/Article/CJFDTotal-BGZD200611035 ...

  6. 数值计算笔记之插值(四)三次样条插值

    0.定义 已知函数在区间上个互异节点,处的函数值为,若构造函数,满足: 在每个小区间上是一个不超过三次的多项式 在上连续 则称为的三次样条插值函数. 根据定义知道规律为: 已知: n+1个数据点[xi ...

  7. python三次样条插值拟合的树行线_数学建模笔记——插值拟合模型(一)

    啊好像距离上次写作又过了七天,啊好像我之前计划的一周两三篇,啊辣鸡小说毁我青春,啊我是一只可怜的鸽子. 不管怎样,我又回来了,并坚定地更新着hhh.再过两三天就是我们学校数学建模选拔,再过八九天就是期 ...

  8. 【opencv】最近邻插值、双线性插值、双三次插值(三次样条插值)

    目录 1. 最近邻插值 2. 双线性插值 1)简单理解 2)一般性 3. 双三次插值(三次样条插值) 总结 1. 最近邻插值 举个简单例子:一个3×33 \times 33×3 的单通道图像,如下 如 ...

  9. 三次样条插值的缺点_三次样条插值介绍

    所谓三次样条插值对于一个区间(a,b)将区间分成x0 = a < x1 ......xn-1 < b = xn 的n-1个区间,我们需要通过已知的n+1个点来模拟一个未知的函数,在三次样条 ...

  10. Easy3D 三次样条插值

    文章目录 一.简介 二.实现代码 三.实现效果 四.参考资料 一.简介 在插值计算中,最简单的分段多项式近似应该是分段线性插值,它由连接一组数据点组成,仅仅只需要将这些点一一用直线进行顺序相连即可.不 ...

最新文章

  1. zhcon解决Ubuntu命令行模式乱码问题
  2. 【必看】这6个吓人的Linux命令,你用过吗?
  3. bitnamigitlab_100%可用不坑爹的BitNami GitLab安装教程
  4. 【LiveVideoStack采访】李备:音视频技术的难点与未来
  5. Fibonacci Knapsack
  6. 分享按钮 html代码,超简洁微博分享按钮代码
  7. 真空压力变送器怎么样零点标定_恒压供水设备中液位变送器分类及工作原理
  8. 一文搞懂C语言回调函数
  9. XML文件解析之--DOM与SAX
  10. 什么样的摄影题材更能吸引大众的目光?
  11. (CODE)计算机视觉引论及数字成像系统
  12. 使用CBrother爬取LOL服务器状态
  13. java 一元三次方程_一元三次方程盛金公式求解的java实现
  14. 解决Windows Update错误“80072EFD”
  15. 华为计算机主板,华为鲲鹏920台式机主板亮相:性能配置都亮眼
  16. 如何用PS制作一寸照片
  17. office2010 word 关闭很慢
  18. 小记——linux定时器之alarm
  19. Gurobi运筹学开发教程02:基于系数矩阵和右侧项的python+gurobi建模
  20. 全国计算机应用基础统考成绩查询,2020年12月网络教育统考成绩查询时间及入口...

热门文章

  1. HTML5SVG 游戏开发 【起航】
  2. MSSQL数据库中row_number()函数
  3. Goland的常用快捷键
  4. rest_frameword学前准备
  5. Python day 3 (3) 判断与循环
  6. 导出FLASH用反射的时候要注意的问题
  7. J2EE 快速开发框架 Wabacus 3.3 版功能列表
  8. 【BZOJ-2768】冠军调查 最小割
  9. 一些学习笔记和工作布置
  10. (原创)c#学习笔记03--变量和表达式03--变量01--简单类型