本文实例讲述了python计算对角线有理函数插值的方法。分享给大家供大家参考。具体实现方法如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
''' p = rational(xData,yData,x)
Evaluates the diagonal rational function interpolant p(x)
that passes through he data points
'''
from numpy import zeros
def rational(xData,yData,x):
m = len (xData)
r = yData.copy()
rOld = zeros(m)
for k in range (m - 1 ):
for i in range (m - k - 1 ):
if abs (x - xData[i + k + 1 ]) < 1.0e - 9 :
return yData[i + k + 1 ]
else :
c1 = r[i + 1 ] - r[i]
c2 = r[i + 1 ] - rOld[i + 1 ]
c3 = (x - xData[i]) / (x - xData[i + k + 1 ])
r[i] = r[i + 1 ] + c1 / (c3 * ( 1.0 - c1 / c2) - 1.0 )
rOld[i + 1 ] = r[i + 1 ]
return r[ 0 ]
|
希望本文所述对大家的Python程序设计有所帮助。