Files
dev/script/test21.py
2018-01-19 10:56:53 +01:00

37 lines
1.1 KiB
Python
Executable File

from mathutils import *
#interpolation
y = [0, 1, 4,10,50,25,12, 5, 3, 0]
x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
types = "linear", "cubic", "akima", "loess", "neville", "newton"
functions = [interpolate(y,x,t) for t in types]
plot_x = frange (0,9,0.01)
values = [get_values(f,plot_x) for f in functions]
plots=plot(values,types,plot_x)
#derivative
for i in range(len(types)):
try:
d = deriv(functions[i])
plots[i].addSeries(LinePlotSeries("Derivative"))
plots[i].getSeries(1).setData(plot_x, get_values(d,plot_x))
except:
#not differentiable
pass
#integration
for i in range(len(types)):
s = integrate(functions[i],x)
plots[i].addMarker(x[-1], None, "Integral=" + str(round(s,4)), java.awt.Color.DARK_GRAY)
#Direct calculation on arrays:
print "Deriv (linear interpolation): ", deriv(y,x)
print "Deriv (cubic interpolation): ", deriv(y, x, "cubic")
print "Integral (linear interpolation): ", integrate(y, None, x, "cubic")
print "Integral (cubic interpolation): ", integrate(y, None, x, "cubic")
print "Integral (linear interpolation in range [1,5]): ", integrate(y, [1,5], x)