样条之埃特金(Aitken)逐步插值函数
核心代码:
//////////////////////////////////////////////////////////////////////
// 埃特金逐步插值
//////////////////////////////////////////////////////////////////////
static float GetValueAitken(const void* valuesPtr, int stride, int n, float t, float eps)
{
int i,j,k,m,l;
float z,xx[],yy[]; // 初值
z = 0.0f; // 特例处理
if (n < )
{
return(z);
}
if (n == )
{
z = YfGetFloatValue(valuesPtr, stride, );
return(z);
} float xStep = 1.0f/(n - ); // 开始插值
m=;
if (m > n)
{
m = n;
} if (t <= 0.0f)
{
k = ;
}
else if (t >= (n-)*xStep)
{
k = n;
}
else
{
k = ;
j = n; while ((k-j != ) && (k-j != -))
{
l = (k+j)/; if (t < (l-)*xStep)
j = l;
else
k = l;
} if (fabs(t-((l-)*xStep)) > fabs(t-(j-)*xStep))
{
k = j;
}
} j = ;
l = ;
for (i = ; i <= m; i++)
{
k = k+j*l;
if ((k<) || (k>n))
{
l = l+;
j = -j;
k = k+j*l;
} xx[i-] = (k-)*xStep;
yy[i-] = YfGetFloatValue(valuesPtr, stride, k - );
l = l+;
j = -j;
} i = ;
do
{
i = i+;
z = yy[i]; for (j = ; j <= i-; j++)
{
z = yy[j]+(t-xx[j])*(yy[j]-z)/(xx[j]-xx[i]);
} yy[i] = z;
}
while ((i != m-) && (fabs(yy[i]-yy[i-]) > eps)); return(z);
}
切图:
相关软件的下载地址为:http://files.cnblogs.com/WhyEngine/TestSpline.zip
样条之埃特金(Aitken)逐步插值函数的更多相关文章
- 样条之拉格朗日Lagrange(一元全区间)插值函数
这是使用拉格朗日插值函数生成的样条曲线.在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法.许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过 ...
- 样条之EHMT插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // 埃特金插值 ////////////// ...
- python scipy样条插值函数大全(interpolate里interpld函数)
scipy样条插值 scipy样条插值1.样条插值法是一种以可变样条来作出一条经过一系列点的光滑曲线的数学方法.插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定的,这样,任意的两个 ...
- 埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛 C序列变换
链接:https://www.nowcoder.com/acm/contest/91/C来源:牛客网没有账号的同学这样注册,支持博主 题目描述 给定两个长度为n的序列,ai, bi(1<=i&l ...
- 样条之Akima光滑插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // Akima光滑插值 // t - 存放指 ...
- 样条之埃尔米特(Hermite)插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // 埃尔米特等距插值 /////////// ...
- K-序列(埃森哲杯第十六届上海大学程序设计联赛春季赛暨上海高校金马五校赛)
题目描述 给一个数组 a,长度为 n,若某个子序列中的和为 K 的倍数,那么这个序列被称为“K 序列”.现在要你 对数组 a 求出最长的子序列的长度,满足这个序列是 K 序列. 输入描述: 第一行为 ...
- [转载]Matlab中插值函数汇总和使用说明
http://blog.sciencenet.cn/blog-457143-679275.html MATLAB中的插值函数为interp1,其调用格式为: yi= interp1(x,y,xi,' ...
- B样条基函数的定义和性质
定义:令U={u0,u1,…,um}是一个单调不减的实数序列,即ui≤ui+1,i=0,1,…,m-1.其中,ui称为节点,U称为节点矢量,用Ni,p(u)表示第i个p次(p+1阶)B样条基函数,其定 ...
随机推荐
- 大数据技术之_16_Scala学习_01_Scala 语言概述
第一章 Scala 语言概述1.1 why is Scala 语言?1.2 Scala 语言诞生小故事1.3 Scala 和 Java 以及 jvm 的关系分析图1.4 Scala 语言的特点1.5 ...
- 使用Maven搭建Struts2框架的开发环境
一.创建基于Maven的Web项目
- jsp中的隐含9对象
jsp中的隐含9对象 request ----> HttpServletRequest. response ---> HttpServletResponse. session ----&g ...
- VB.NET中lambda的写法
lambda 或者叫匿名方法 '有返回值的匿名函数,func前面输入参数,最后一个输出参数 Dim func1 As Func(Of Integer, Integer) = Function(ByVa ...
- 开发人员如何正确对待BUG?
1.前端开发与后端开发 出了问题,最重要的是先找到方法迅速解决,而不是去互相指责.前端存在这样的思维模式,后端也存在这样的思维模式,这种思维模式不太好.出了问题,最好先检查一下自己,反省是不是自己这 ...
- php模板引擎之blade
一.简介模板引擎 模板引擎是将网站的页面设计和PHP应用程序几乎完全分离的一种解决方案,它能让前端工程师专注页面搭建,让后台工程师专注功能实现,以便实现逻辑分离,让每个人发挥所长.模板引擎技术的核心是 ...
- HDU 5810 Balls and Boxes 数学
Balls and Boxes 题目连接: http://acm.hdu.edu.cn/showproblem.php?pid=5810 Description Mr. Chopsticks is i ...
- Maven入门指南③:坐标和依赖
1 . 坐标 maven 的所有构件均通过坐标进行组织和管理.maven 的坐标通过 5 个元素进行定义,其中 groupId.artifactId.version 是必须的,packaging 是可 ...
- 【Go命令教程】3. go install
命令 go install 用于编译并安装指定的代码包及它们的依赖包.当指定的代码包的依赖包还没有被编译和安装时,该命令会先去处理依赖包.与 go build 命令一样,传给 go install 命 ...
- Groovy中Closure的this到底指向谁?
Groovy in Action(中文版)第136页明确说Closure的this指向Closure自己.并且从代码注释处作者也是这样理解的: class Mother{ int field = ...