Я изучаю научные вычисления с помощью python. В упражнении я должен генерировать полином, используя свои корни с этой формулой:Python: мои полиномиальные коэффициенты отключены в 10 раз
Вот моя реализация:
def poly(x,roots): #Pass real and/or complex roots
x = symbols(x)
f = 1
for r in roots:
f = f*(x - r)
return expand(f)
Когда я проверить его:
from sympy import expand
poly('x',[(-1/2), 5, (21/5), (-7/2) + (1/2)*sqrt(73), (-7/2) - (1/2)*sqrt(73)])
Я получаю:
x**5 - 1.7*x**4 - 50.5*x**3 + 177.5*x**2 - 24.8999999999999*x - 63.0
Но я должен получить:
10*x**5 - 17.0*x**4 - 505.0*x**3 + 1775.0*x**2 - 248.999999999999*x - 630.0
Следовательно, все выключено на коэффициент 10. Если я устанавливаю f = 10
, она работает, но я не понимаю, почему я должен это сделать. Я делаю очевидную ошибку? Спасибо!
Формула не отображается. Вы можете это исправить? –
какой символ() делать? –
Вы строите многочлен с определенными корнями. Если вы умножаете коэффициенты на любое число, корни останутся неизменными. – mingaleg