/* 一元全区间不等距插值 ,由 AD 得到的数据必定是16位正整数,用 unsigned int */
float enlgr(unsigned int x[],float y[],int n,unsigned int t)
{
float z; /* 这里假设单调变化,且t在x[i]和x[i-1]之间成立 */
if(t==x[0]) return y[0];
for(i=1;i<n;i++) {
if(t==x[i]) return y[i];
if((signed int)(x[i]-t)*(signed int)(x[i-1]-t)<0) break; /* 找到 t 所在区间 */
}
z=(y[i]-y[i-1])*(t-x[i-1])/(x[i]-x[i-1]);
return z+y[i-1];
}
正文
分段的插值算法2006-03-18 18:24:00
【评论】 【打印】 【字体:大 中 小】 本文链接:http://blog.pfan.cn/vfdff/11131.html
阅读(5053) | 评论(1)
版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!
评论