hermite.py

来自「实现Lagrange,Hermite,以及分段线性插值算法,需要用from * 」· Python 代码 · 共 29 行

PY
29
字号
#C:\Python24\
#Filename: Hermite.py
from numpy import *
def hermite(x0,y0,y1,x):
    n=len(x0)
    m=len(x)
    y=zeros(m,float)
    for k in range(0,m):
        yy=0.0
        for i in range(0,n):
            h=1.0
            a=0.0
            for j in range(0,n):
                if j!=i:
                    h=h*((x[k]-x0[j])/(x0[i]-x0[j]))**2
                    a=1.0/(x0[i]-x0[j])+a;
            yy=yy+h*((x0[i]-x[k])*(2*a*y0[i]-y1[i])+y0[i])
        y[k]=yy
    return y
if __name__ == '__main__':
    x0=array([0.3,0.32,0.35])
    y0=sin(x0)
    y1=cos(x0)
    x=arange(0.3,0.351,0.005)
    y=hermite(x0,y0,y1,x)
    print y
    print "*********************"
    print sin(x)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?