博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
样条之抛物线(一元三点)插值函数
阅读量:5103 次
发布时间:2019-06-13

本文共 1468 字,大约阅读时间需要 4 分钟。

      它是根据给定结点上的数值,用抛物插值计算指定插值点处的函数。一元三点插值算法是一种精度更高的插值算法,使用这种方法插值出来的曲线不像线性插值算法那样在分段点的地方出现折点,显得更为平滑。但它是使用二次函数来进行曲线的拟合,曲线中还是会有不平滑的情况。

关于的介绍请看:

核心代码:

//// 一元三点等距插值//static float GetValueParabolic(const void* valuesPtr, int stride, int n, float t){     int i,j,k,m;    float z,s,xi,xj;    // 初值    z=0.0;    // 特例处理    if (n < 1)     {        return(z);    }    if (n == 1)     {         z = YfGetFloatValue(valuesPtr, stride, 0);          return(z);    }    if (n == 2)    {         float y0 = YfGetFloatValue(valuesPtr, stride, 0);         float y1 = YfGetFloatValue(valuesPtr, stride, 1);         z = y0 + (y1 - y0)*t;        return(z);    }    float xStep = 1.0f/(n - 1);    // 开始插值    if (t <= xStep)     {         k = 0;         m = 2;    }    else if (t >= (n-3)*xStep)     {         k = n-3;         m = n-1;    }    else    {         i = (int)(t/xStep)+1;        if (fabs(t-i*xStep) >= fabs(t-(i-1)*xStep))        {             k = i-2;             m = i;        }        else         {            k = i-1;             m = i+1;        }    }    z = 0.0f;    for (i = k; i <= m; i++)    {         s = 1.0f;         xi = i*xStep;        for (j = k; j <= m; j++)        {            if (j != i)            {                 xj = j*xStep;                 // 抛物线插值公式                s = s*(t-xj)/(xi-xj);            }        }        z = z + s*YfGetFloatValue(valuesPtr, stride, i);     }    return(z);}

切图:

 

 

相关软件的下载地址为:

……

转载于:https://www.cnblogs.com/WhyEngine/p/4020408.html

你可能感兴趣的文章
设计模式之装饰者模式
查看>>
一道不知道哪里来的容斥题
查看>>
Blender Python UV 学习
查看>>
window添加右键菜单
查看>>
入手腾龙SP AF90mm MACRO
查看>>
python学习4 常用内置模块
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
ResolveUrl的用法
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
<转>关于MFC的多线程类 CSemaphore,CMutex,CCriticalSection,CEvent
查看>>
jquery中ajax返回值无法传递到上层函数
查看>>
css3之transform-origin
查看>>
[转]JavaScript快速检测浏览器对CSS3特性的支持
查看>>
Master选举原理
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
微信小程序-发起 HTTPS 请求
查看>>