#matlab #solver #polynomials
#matlab #решатель #многочлены
Вопрос:
Предположим p=[3,2,1]
. Затем roots(p)
дает корни 3x^2 2x 1
.
Что, если коэффициенты многочлена зависят от коэффициента a
? Как многочлен 3x^2 2x a
. Если я определяю p = @(a) [3,2,a]
, то roots(p)
не работает. Ошибка
Undefined function 'isfinite' for input arguments of type 'function_handle'.
Есть ли способ настроить roots
функцию или мне нужно отступить fsolve
, чтобы найти корни многочлена с переменными коэффициентами?
Комментарии:
1. какую версию Matlab вы используете?
Ответ №1:
Вам необходимо определить a
как символьную переменную следующим образом:
syms a
Затем
p = [3,2,a]
roots(p)
должно работать. Я использую R2019b.
Для более сложных примеров, если вы знаете что-либо о переменной a
(например a
, является реальной), вы должны сообщить roots()
функции, определив переменную как реальную:
syms a real
Комментарии:
1. Большое вам спасибо, все работает отлично! Я использую R2019a.