正文

分段的插值算法2006-03-18 18:24:00

【评论】 【打印】 【字体: 】 本文链接:http://blog.pfan.cn/vfdff/11131.html

分享到:


/* 一元全区间不等距插值 ,由 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];
}

阅读(4937) | 评论(1)


版权声明:编程爱好者网站为此博客服务提供商,如本文牵涉到版权问题,编程爱好者网站不承担相关责任,如有版权问题请直接与本文作者联系解决。谢谢!

评论

loading...
您需要登录后才能评论,请 登录 或者 注册