Not sure if there is a tool that can build the band for any function and combination of coefficients. You could figure out the max and min analytically (shown by Mad Physicist's answer) or calculate all possible function outputs if you are unsure (shown below).
Here is a way to determine the minimum and maximum function values using all possible combinations of the coefficients you specified.
import numpy as np
import pandas as pd
# write out the function so that if can take coefficient factors (+/- 1)
def y(x, coef1, coef2, coef3):
return coef1 * x**2 - coef2 * x + coef3
# compute each possible combination of coefficients
coef_signs = [1,-1]
# I use a list comprehension but there are several options
possible_coefs = [(0.06+c1*0.016, 0.65+c2*0.04,1.2+c3*0.001) for c1 in coef_signs for c2 in coef_signs for c3 in coef_signs]
Now we have a list of all possible function coefficient combinations.
possible_coefs
[(0.076, 0.6900000000000001, 1.2009999999999998),
(0.076, 0.6900000000000001, 1.199),
(0.076, 0.61, 1.2009999999999998),
(0.076, 0.61, 1.199),
(0.044, 0.6900000000000001, 1.2009999999999998),
(0.044, 0.6900000000000001, 1.199),
(0.044, 0.61, 1.2009999999999998),
(0.044, 0.61, 1.199)]
Below I use pandas because I am comfortable with it
but it is not necessary, you could use pure numpy arrays just as easily to build the possible function values.
# specify some domain for the function
x = np.linspace(-10,10,100)
# build a Pandas dataframe from the combinations and resulting function values
df = pd.DataFrame(data={f'c0={c[0]};c1={c[1]}; c2={c[2]}':y(x, c[0],c[1],c[2]) for c in possible_coefs})
# calculate the min and max values from all which become the bands
df['min'] = df.min(1)
df['max'] = df.max(1)
# plot
plt.fill_between(x, df['min'], df['max'])
