三次样条插值曲线的C语言实现

本文介绍了如何使用C语言实现三次样条插值曲线,基于李庆阳的《数值分析》教材,采用第一边界条件和追赶法求解M矩阵。程序包括结构体定义和追赶法求解过程。
摘要由CSDN通过智能技术生成

     最近一个师弟问我关于机器人路径生成的问题,我也考虑这个问题很长时间了。去年做机器人比赛时就把机器人路径生成规划和存储跟随等这些功能实现了,但是当时因为没接触到三次样条曲线,所以路径函数的生成是用了比较笨的方法。最近接触到了三次样条曲线,刚好实现机器人路径生成的要求。正好师弟他们也要用,写出来也许有用。

    我是根据李庆阳的《数值分析》这本教材中的讲解编写的程序,使用的是第一边界条件,用追赶法求解了M矩阵。

    为了调用方便,我将整个函数所有的信息构造成一个结构体,输入插值点的坐标和数量,定义边界条件后,将这个结构体的指针作为参数传给Spline3()函数,就完成了函数计算,计算结果也存储在该结构体中。

 

程序如下:

 

/*=======================================================================*/
//=====================三次样条插值的函数S(x)实现=============================
// 创 建 人: 汪雅楠

// 北京交通大学   QQ312818820
// 说    明: 根据研究生教材《数值分析》(李庆杨)第51页~第56页编写

/* 初始条件: 1. 已知两端的一阶导数值
    2. 已知两端的二阶导数值 

  • 6
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值