Как найти все члены многочлена, которые содержат конкретную переменную в Matlab? - PullRequest
0 голосов
/ 25 сентября 2019

Допустим, у нас есть многочлен f=a^2*b+b^2*c+c*d.

Я хотел бы знать, смогу ли я найти в Matlab все члены f, которые содержат конкретные многочлены переменных a,b, c и d.

Например, если у меня есть многочлен переменной c, то есть g=b, я хочу выяснить термины: a^2+b*c.

Если у меня есть многочлен переменной b, то есть g=c, то я хочу выяснить термины: b^2+d.

Это все равно, что взять общеемножитель (полином переменной), а затем найти термины, содержащие этот фактор.

Я знаю, что могу использовать factor(), но у меня есть полиномы, в которых использование factor() не работает,потому что они не могут быть записаны как произведение полиномов.

1 Ответ

0 голосов
/ 25 сентября 2019

Ваш вопрос запутан.Насколько я могу судить, у вас есть многочлен от нескольких переменных, и вы хотите уменьшить мощность всей заданной переменной на 1 и удалить члены, которые являются постоянными по отношению к этой переменной.Вот способ сделать это:

syms a b c d
f=a^2*b+b^2*c+c*d

[p,q] = coeffs(f,c)
% p = [ b^2 + d, a^2*b]
% q = [ c, 1]

sum(p(1:end-1).*q(2:end))

coeffs возвращает коэффициенты различных степеней c в выражении f, возвращая коэффициенты в p и степени c в q.Затем умножьте i -й элемент p на I+1 -й элемент q и сложите их.

...