Есть код, не самый лучший конечно, делаю для учебы, конкретно для 1 лабы, Код перебирает комбинации параметров m3,m4,z3,z4 решает систему уравнений для x3,x4,y3,y4,z3,z4, после он находит значение r1 и r2 они должны быть равны r1 = sqrt(x3^2+y3^2), r2 = sqrt(x4^2+y4^2) и проверяет условие 42 <= r1 and r2 <= 88 и после идет вывод всех подобранных значений. Код работает, но выдает неправильные ответы. Пытался сделать код сам, но не получается т.к. не хватает знаний. Может кто нибудь да и поможет.
from sympy import symbols, Eq, solve
import math
def main():
# Объявление переменных
x3, x4, y3, y4 = symbols('x3 x4 y3 y4')
m_values = [40, 50, 60, 71, 76]
z_values = [160, 240, 320]
print("Решение системы уравнений:")
try:
# Перебор всех комбинаций m3, m4, z3, z4
for m3 in m_values:
for m4 in m_values:
for z3 in z_values:
for z4 in z_values:
# Уравнения первой системы
eq1 = Eq(m3 * x3 + m4 * x4 + 1630.2, 0)
eq2 = Eq(m3 * x3 * z3 + m4 * x4 * z4 - 88464, 0)
# Решение первой системы
solutin1 = solve([eq1, eq2], (x3, x4))
if solutin1:
x3_val = float(solutin1[x3])
x4_val = float(solutin1[x4])
# Уравнения второй системы
eq3 = Eq(m3 * y3 + m4 * y4 + 4636.8, 0)
eq4 = Eq(m3 * y3 * z3 + m4 * y4 * z4 + 9772.88, 0)
# Решение второй системы
solutin2 = solve([eq3, eq4], (y3, y4))
if solutin2:
y3_val = float(solutin2[y3])
y4_val = float(solutin2[y4])
# Вычисление r1 и r2
r1 = math.sqrt(x3_val**2 + y3_val**2)
r2 = math.sqrt(x4_val**2 + y4_val**2)
# Проверка диапазона для r1 и r2
if 42 <= r1 <= 88 and 42 <= r2 <= 88:
print("Найдено решение, удовлетворяющее условию 42 <= r <= 88:")
print(f" x3 = {x3_val:.2f}, x4 = {x4_val:.2f}")
print(f" y3 = {y3_val:.2f}, y4 = {y4_val:.2f}")
print(f" r1 = {r1:.2f}, r2 = {r2:.2f}")
print(f" Параметры: m3 = {m3}, m4 = {m4}, z3 = {z3}, z4 = {z4}")
return
except Exception as e:
print(f"Произошла ошибка: {e}")
print("Не найдено решений, удовлетворяющих условию 42 <= r <= 88.")
if __name__ == "__main__":
main()