Advertisement

分段三次hermite py

阅读量:

依据专家提供的matlab程序进行重构
示例函数定义为f(x)=exp(x)

复制代码
    import numpy as np
    import time
    import matplotlib.pyplot as plt
    def f(x):#函数表达式,一阶导数
    return np.exp(x)
    def H3(x,x0,x1,f0,f1,df0,df1):#定义两点三次 Hermite 插值函数
    return (f0*(1+2*(x-x0)/(x1-x0))+df0*(x-x0))*((x-x1)/(x0-x1))**2 +(f1*(1+2*(x-x1)/(x0-x1))+df1*(x-x1))*((x-x0)/(x1-x0))**2
    #插值区间
    a=-5.0
    b=5.0
    N=[1,2,4,8,10,12]
    for n in N:
       h=(b-a)/n#步长
       xi=np.linspace(a,b,n+1)#插值节点
       fi=f(xi)#插值节点上的函数值
       dfi=f(xi)#一阶导数值
       x=np.linspace(a,b,101)#需要插值的点, 绘图用
       L=len(x)
       y = np.zeros(

全部评论 (0)

还没有任何评论哟~