Как подставить одну переменную и вычислить значение другой?
Работаю с полиномами. Написал вот такую функцию, которая принимает корни полинома и выдает сам полином.
Вопрос: Могу ли я подставить значения x в этот полином? Заранее спасибо.
x = np.linspace(-1.9, 1.95, num=25, endpoint=True)
def c_find(*roots):
from sympy import Symbol
x = Symbol('x')
whole = 1
for root in roots:
whole *= (x - root)
return whole.expand()
p = c_find(-1.9, -1.1, -0.1, 0.6, 1.95)
print(p)
Вывод: x5 + 0.55*x4 - 4.345* x3 - 2.2585*x2 + 2.26335*x + 0.24453
Ответы (2 шт):
Автор решения: karmik
→ Ссылка
Если я правильно понял:
import numpy as np
from sympy import Symbol
x = np.linspace(-1.9, 1.95, num=25, endpoint=True)
def c_find(*roots):
from sympy import Symbol
x = Symbol('x')
whole = 1
for root in roots:
whole *= (x - root)
return whole.expand()
p = c_find(-1.9, -1.1, -0.1, 0.6, 1.95)
for val in x:
print(p.subs(Symbol('x'), val))
Дока https://docs.sympy.org/latest/tutorial/basic_operations.html.
Автор решения: Владислав Харламов
→ Ссылка
Функцию, которая принимает корни и выдает функцию-многочлен, также можно было написать так:
from functools import reduce
from operator import mul
def poly(*roots):
return lambda x: reduce(mul, [(x - root) for root in roots], 1)
f = poly(1,2,3) # (x-1)(x-2)(x-3)
print(f(5)) # (5 - 1) * (5 - 2) * (5 - 3) = 24