ощибка в коде, что я не так делаю

Сантьяго

Новичок
Пользователь
Ноя 19, 2024
6
1
3
Добого времени суток

есть задача найти среднеквадратическую погрешность зная 2 расстояния в треугольнике и измеренный угол
есть формула : во вложении

вот мой код:

import math

d1 = 149.6
d2 = 100.68
angle_B = 81.44166667
mb1 = 1/3000

mp = mb1 * math.sqrt((d1 ** 2 + d2 ** 2) / math.radians(math.sin(angle_B))) # находим среднеквадратическую погрешность
print(mp)

получаю ошибку:
ValueError: math domain error

подскажите что я делаю не так на данном участке кода
 

Вложения

  • Формула.jpg
    Формула.jpg
    6,2 КБ · Просмотры: 2

regnor

Модератор
Команда форума
Модератор
Июл 7, 2020
2 663
474
83
в sqrt у вас отрицательное число, что означает переход в комплексные числа, sqrt из math не поддерживает комплексные числа,
если это так и задумано, можно использовать cmath


Python:
import cmath
import math

d1 = 149.6
d2 = 100.68
angle_B = 81.44166667
mb1 = 1/3000

#print((d1 ** 2 + d2 ** 2) / math.radians(math.sin(angle_B)))

mp = mb1 * cmath.sqrt((d1 ** 2 + d2 ** 2) / math.radians(math.sin(angle_B))) # находим среднеквадратическую погрешность
print(mp)
 

Сантьяго

Новичок
Пользователь
Ноя 19, 2024
6
1
3
понял, спасибо
 

Форум IT Специалистов