Пересечение двух наборов данных, один линейный и одинPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Пересечение двух наборов данных, один линейный и один

Сообщение Anonymous »

Мне нужно найти пересечение прямой линии и кривой напряжений-деформации, чтобы определить силу доходности смещения.

Я был пытался использовать следующую код, что, как и в условиях, что-то вроде успешна, но и я. Точка пересечения в неправильном месте. < /p>
деформация1 и напряжение1 - это довольно большие массивы, извлеченные из Excel, а M и C являются соответствующими значениями для соответствующей прямой линии для штамма и напряжения1. Пожалуйста, помогите этому студенту с борьбы с физикой :) < /p>
strain_offset = strain1 + 0.002
stress_offset = m[0]*strain1 + c[0]
yield_strength_index = np.argwhere(np.diff(np.sign(stress1 - stress_offset)))[0][0]

def intersection_point(Ax1, Ay1, Ax2, Ay2, Bx1, By1, Bx2, By2):
d = (By2-By1)*(Ax2-Ax1)-(Bx2-Bx1)*(Ay2-Ay1)
if d:
uA = ((Bx2-Bx1)*(Ay1-By1)-(By2-By1)*(Ax1-Bx1))/d
uB = ((Ax2-Ax1)*(Ay1-By1)-(Ay2-Ay1)*(Ax1-Bx1))/d
else:
return None

x_intersection = Ax1 + uA * (Ax2 - Ax1)
y_intersection = Ay1 + uA * (Ay2 - Ay1)

return x_intersection, y_intersection

first = yield_strength_index
second = first + 1
# A points from the stress strain curve
Ax1 = strain1[first]
Ay1 = stress1[first]
Ax2 = strain1[second]
Ay2 = stress1[second]
# B points from the offset line
Bx1 = strain_offset[first]
By1 = stress_offset[first]
Bx2 = strain_offset[second]
By2 = stress_offset[second]

# run our function that finds the intersection point
x_intersection, y_intersection = intersection_point(Ax1,Ay1,Ax2,Ay2,Bx1,By1,Bx2,By2)

print(x_intersection,y_intersection)

fig,ax = plt.subplots()

ax.plot(strain1,stress1)
ax.plot(strain_offset,stress_offset)
ax.plot(x_intersection,y_intersection,'go')

ax.set_ylim([0,50000000])
ax.set_xlim([0,0.035])

plt.show()


Подробнее здесь: https://stackoverflow.com/questions/794 ... nd-one-not
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»