Вычислить Parabola с помощью Python

def parabola(h, k, xCoordinates):

h - это координата x, где парабола касается оси x, а k - координата y, где парабола пересекает ось y, а xCoordinates - это список координат x вдоль большой оси. Функция возвращает список координат y, используя уравнение, показанное ниже. Там будет одна координата y для каждой координаты x в списке координат x.

y(x, h, k) = a(x − h)2, where a =k/h2

Я знаю, как работать в Python, так как я уже вычисляю площадь,

def computeArea(y_vals, h):
    i=1
    total=y_vals[0]+y_vals[-1]
    for y in y_vals[1:-1]:
        if i%2 == 0:
            total+=2*y
        else:
            total+=4*y
        i+=1
    return total*(h/3.0)
y_values=[13, 45.3, 12, 1, 476, 0]
interval=1.2
area=computeArea(y_values, interval)
print "The area is", area

Но вопрос выше причиняет мне боль, потому что это чистая математика, я просто хочу немного помочь

2 ответа

Ответ от Мартина Питерса хорош.

Если вы немного боретесь с концепцией, я нахожу этот пример очень простым для понимания (используя уравнение формы вершины):

x = range(-10,10)
y = []

a = 2 # this is the positive or negative curvature
h = 0 # horizontal offset: make this term +/- to shift the curve "side to side"
k = 0 # vertical offset: make this term +/- to shift the curve "up to down"

for xi in x:
    y.append(a * (xi + h)** 2 + k)

Вы можете построить это с помощью Pylab.

математика питона

Вы можете использовать ** Степень оператора к квадратным значениям:

y = (k / h ** 2) * (x - h) ** 2

где ** Возведение в степень имеет более высокий приоритет, чем умножение или деление.

Так что для серии x координаты, это было бы:

def parabola(h, k, xCoordinates):
    return [(k / h ** 2) * (x - h) ** 2 for x in xCoordinates]
Другие вопросы по тегам