def calc_afinal(cp): afinal = [] for i in range(len(cp)): ptmp = [] tmp = 0 for j in range(len(cp)): if j != i: row = [] row.insert(0, 1 / (cp[i] - cp[j])) row.insert(1, -cp[j] / (cp[i] - cp[j])) ptmp.insert(tmp, row) tmp += 1 p = [1] for j in range(len(cp) - 1): p = conv(p, ptmp[j]) afinal.append(numpy.polyval(p, 1.0)) return afinal
def calc_adot(cp, order=1): a = [] for i in range(len(cp)): ptmp = [] tmp = 0 for j in range(len(cp)): if j != i: row = [] row.insert(0, 1 / (cp[i] - cp[j])) row.insert(1, -cp[j] / (cp[i] - cp[j])) ptmp.insert(tmp, row) tmp += 1 p = [1] for j in range(len(cp) - 1): p = conv(p, ptmp[j]) pder = numpy.polyder(p, order) arow = [] for j in range(len(cp)): arow.append(float(numpy.polyval(pder, cp[j]))) a.append(arow) return a