Точки пересечения между сплайном и несколькими линиями в функции - PullRequest
2 голосов
/ 26 октября 2019

В некоторых ответах на предыдущую работу я не смог перейти по некоторым ссылкам на документацию по пересечениям между кривой сплайна и несколькими линиями, созданными из def. Я хочу взять точки, в которых пересекаются кривая спроса на систему и кривая насоса. Я попробовал несколько подходов;однако, массивы numpy являются пустыми списками. У меня есть 8 списков правильно, просто ничего в них

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

для моего кода ... это то, что я пробовал

Я создал сплайн-кривую и хотел бы найти точки пересечения кривых, которые я создал. Я попытался использовать np.intersect1d в цикле for и создал свой массив 8, который я бы рассчитывал на 1;тем не менее, они являются пустыми массивами ... помощь будет принята

plt.figure()
xnew = np.linspace(Flow_Rate.min(),Flow_Rate.max(),300)
power_smooth = spline(Flow_Rate,Pump_Head,xnew)
plt.plot(xnew,power_smooth)
plt.show()
Changing_diameter = [0.06985, .0762, .08255, .0889, .09525, .1016, .10795, .1143]

def H_l(x):    
    reyn = ((density*(x*(1.6667*10**-5))/Area)*d_diameter)/(v_vis)
    return Length/d_diameter*(x/Area)**2/(2*g)*64./reyn

Head = H_l(Q_si)
Changing_head = []


for i in range(len(Changing_diameter)):
    d_diameter = Changing_diameter[i]
    Head = H_l(Q_si)
    Changing_head = []
    plt.xlim(-5,100)
    plt.ylim(-5,50)
    plt.plot(Q_imp,Head,label=d_diameter)
    np.array(Q_imp)
    np.array(Head)
    print(np.intersect1d(Q_imp, Head, assume_unique = False))

plt.legend()
plt.show()

Мой ожидаемый результат - список длиной в один элемент с пересечением сплайна и созданных кривых

...