Предупреждение о времени выполнения: недопустимое значение, встречающееся в arcco, но значения в пределах

#python #sympy

#python #симпатия

Вопрос:

Я новичок в sympy и пытаюсь определить уравнение, а затем численно найти корни, но получаю ошибку «Предупреждение о времени выполнения: недопустимое значение, встречающееся в arccos». Получение аналогичных ошибок в sqrt и полномочиях. Почему это происходит? Мой код следующий:

 import sympy 

z = sympy.symbols('z')

beta_z = sympy.acos(1 - (2 * z   / 0.329))


test1 = sympy.lambdify(z, beta_z, modules=['numpy'])

solution1 = fsolve(test1, 2.54e-3)

print(solution1)
 

Я получаю следующий результат:

 [0.00254]

<string>:2: RuntimeWarning: invalid value encountered in arccos
 

Комментарии:

1. Хорошо, каково ваше понимание того, как работает функция arccosine? Какие входные значения допустимы? Следовательно, какие возможные z значения допустимы? Имеет ли смысл, что fsolve алгоритм будет пробовать z значения за пределами этого диапазона?

2. Привет, Карл, поправь меня, если я ошибаюсь, но входные значения arcos должны быть от -1 до 1, а значение должно представлять ваше количество в радианах. Приведенный выше скрипт является лишь частью вложенного скрипта, в котором мне нужно найти корень сложного уравнения. Поскольку точного решения не существует, я должен преобразовать символическое уравнение и попытаться найти корень численно. Я почти уверен, что, должно быть, я делаю что-то не так, поскольку те же уравнения справедливы и могут быть решены в другом программном обеспечении.