求双线性插值法的C语言程序!帮帮忙!拜托各位了!

Python020

求双线性插值法的C语言程序!帮帮忙!拜托各位了!,第1张

a   b

  t

c   d

就是两次线性插值,先在x方向插出t上下方的_t1、_t2,然后再用它们插出t来

float test(float x,float y)

{

float _t1,_t2,t

_t1 = a+(b-a)*(x-ax)/(bx-ax)

_t2 = c+(d-c)*(x-cx)/(dx-cx)

t = _t1 +(_t2-_t1)*(y - ay)

return t

}

#include <stdio.h>

double Lerp(double x0,double y0,double x1,double y1,double x)

{

    double dy = y1 - y0

    if(dy == 0){

        printf("除0错误!\n")

        return 0

    }

    return x * (x1 - x0) / dy

}

int main()

{

    double x0,x1,y1,y0,x,y

    printf("Inptu x0 y0 x1 y1 x:")

    scanf("%lf %lf %lf %lf %lf",&x0,&y0,&x1,&y1,&x)

    y = Lerp(x0,y0,x1,y1,x)

    printf("y = %lf\n",y)

    return 0

}

要查表,我手边没有表,而且已经学过很多年了,只随便说个数字,举例说明:先假定r=4%,查表计算出数值=900

再假定r=5%,查表计算出数值=1100

然后计算(1100-900)/(5%-4%)=(1000-900)/(r-4%)

200(r-4%)=1

r=4.5%

如果你第一次选取是数值是3%,计算出数值=800,第二次选取4%,计算=900,都低于1000,那么就要继续试5%,6%……直到计算结果一个小于1000,另一个大于1000,而且与1000越接近,差值法计算出r越准确,如果选项一个1%,一个20%,查表后得出数值,确实也能计算,但不会很准