样条之EHMT插值函数
核心代码:
//////////////////////////////////////////////////////////////////////
// 埃特金插值
//////////////////////////////////////////////////////////////////////
static float GetValueEhmt(const void* valuesPtr, int stride, int n, float t, float dc)
{
int i,j;
float z,s,p,q,v,d; // 初值
z = 0.0f; // 特例处理
if (n < )
{
return(z);
}
if (n == )
{
z = YfGetFloatValue(valuesPtr, stride, );
return(z);
} float h = 1.0f/(n - ); for (i = ; i <= n; i++)
{
s = 1.0;
q = (i-)*h;
for (j = ; j <= n; j++)
{
p = (j-)*h;
if (j != i)
{
s = s*(t-p)/(q-p);
}
} s = s*s;
p = 0.0f;
for (j = ; j <= n; j++)
{
if (j != i)
{
p = p+1.0f/(q-(j-)*h);
}
} v = YfGetFloatValue(valuesPtr, stride, i - );
if (i < n)
{
d = YfGetFloatValue(valuesPtr, stride, i) - v;
}
else
{
d = v - YfGetFloatValue(valuesPtr, stride, i - );
} q = v + (t-q)*(d*dc-2.0f*v*p);
z = z + q*s;
} return(z);
}
切图:

相关软件的下载地址为:http://files.cnblogs.com/WhyEngine/TestSpline.zip
样条之EHMT插值函数的更多相关文章
- python scipy样条插值函数大全(interpolate里interpld函数)
scipy样条插值 scipy样条插值1.样条插值法是一种以可变样条来作出一条经过一系列点的光滑曲线的数学方法.插值样条是由一些多项式组成的,每一个多项式都是由相邻的两个数据点决定的,这样,任意的两个 ...
- 样条之拉格朗日Lagrange(一元全区间)插值函数
这是使用拉格朗日插值函数生成的样条曲线.在数值分析中,拉格朗日插值法是以法国十八世纪数学家约瑟夫·拉格朗日命名的一种多项式插值方法.许多实际问题中都用函数来表示某种内在联系或规律,而不少函数都只能通过 ...
- 样条之埃特金(Aitken)逐步插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // 埃特金逐步插值 //////////// ...
- 样条之Akima光滑插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // Akima光滑插值 // t - 存放指 ...
- 样条之埃尔米特(Hermite)插值函数
核心代码: ////////////////////////////////////////////////////////////////////// // 埃尔米特等距插值 /////////// ...
- [转载]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样条基函数,其定 ...
- Matlab插值函数
x=0:2*pi; y=sin(x); xx=0:0.5:2*pi; %interp1对sin函数进行分段线性插值,调用interp1的时候,默认的是分段线性插值 y1=interp1(x,y,xx) ...
- B样条基函数(cubic spline basis)
B样条基函数用作权重 reference http://blog.csdn.net/tuqu
随机推荐
- jqplot导入包小结
对于jqplot画图的导入包,总结起来就是两种,一种是每个jsp文件都是导入一样的js或css包!这些包可以另新建一个文件存放,有如下这些包! <link rel="styleshee ...
- Codeforces Round #371 (Div. 2) A. Meeting of Old Friends 水题
A. Meeting of Old Friends 题目连接: http://codeforces.com/contest/714/problem/A Description Today an out ...
- C# 如何实现邮件发送
调用发送 try { P2BEmail email = new P2BEmail(); email.fromEmail = txtfromEmail.Text; // QQ邮箱 email.fromP ...
- ConcurrentHashMap内存溢出问题
写在前面 上周,同事写了一段ConcurrentHashMap的测试代码,说往map里放了32个元素就内存溢出了,我大致看了一下他的代码及运行的jvm参数,觉得很奇怪,于是就自己捣鼓了一下.首先上一段 ...
- logstash grok 分割匹配日志
使用logstash的时候,为了更细致的切割日志,会写一些正则表达式. 使用方法 input { file { type => "billin" path => &qu ...
- Java怎样处理EXCEL的读取
须要包:poi-3.5.jar.poi-ooxml-3.5.jar 实例: [java] view plaincopy public class ProcessExcel { private Work ...
- LPC43xx SGPIO I2C Implementation
I²C SGPIO Configuration SGPIO is a hardware feature of LPC4300 series. There are 16 SGPIO pins calle ...
- C++11 function
#include <iostream> #include <functional> #include <vector> using namespace std; / ...
- 在ASP.NET Web API中使用OData的Action和Function
本篇体验OData的Action和Function功能.上下文信息参考"ASP.NET Web API基于OData的增删改查,以及处理实体间关系".在本文之前,我存在的疑惑包括: ...
- mybatis学习之路----批量更新数据两种方法效率对比
原文:https://blog.csdn.net/xu1916659422/article/details/77971696/ 上节探讨了批量新增数据,这节探讨批量更新数据两种写法的效率问题. 实现方 ...