evalpОцените полином в точке
Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.
Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.
evalp(p,x = v, …) evalp(p,[x = v, …]) evalp(f, <vars>,x = v, …) evalp(f, <vars>,[x = v, …])
evalp(p, x = v) оценивает полиномиальный p в переменной x в точке v.
Ошибка происходит если x не неопределенный из p. Значение v может быть любой объект, который мог также использоваться в качестве коэффициента. Результатом является элемент содействующего звонка p если p является одномерным. Если p многомерно, результатом является полином в остающихся переменных.
Если несколько точек оценки даны, оценки происходят по очереди слева направо. Каждая оценка следует правилам выше.
Для полиномиального p в переменных x1,x2,..., синтаксис p(v1,v2,...) может использоваться вместо evalp(p, x1 = v1, x2 = v2, ...).
evalp(f, vars, x = v, ...) сначала преобразует многочленное выражение f к полиному с переменными, данными vars. Если никакие переменные не даны, они разыскиваются в f. Смотрите poly о деталях преобразования. FAIL возвращен если f не может быть преобразован в полином. Успешно конвертированный полином оценен как выше. Результат преобразован в выражение.
Правило Горнера использовано, чтобы оценить полином. Оценка переменных в точке 0 является самым эффективным и должен произойти сначала. После этого остающаяся основная переменная должна быть оценена сначала.
Результат evalp не оценен далее. Можно использовать eval полностью оценивать результат.
Вместо evalp(p, x1 = v1, x2 = v2, ...) можно также использовать эквивалентную форму evalp(p, [x1 = v1, x2 = v2, ...]).
evalp используется, чтобы выполнить многочленное выражение x 2 + 2 x + 3 в точке x = a + 2. Форма получившегося выражения отражает то, что правило Горнера было использовано:
evalp(x^2 + 2*x + 3, x = a + 2)
![]()
evalp используется, чтобы оценить полином в indeterminates x и y в точке x = 3. Результатом является полином в остающемся неопределенном y:
p := poly(x^2 + x*y + 2, [x, y]): evalp(p, x = 3)
![]()
delete p:
Полиномы могут быть названы как функции для того, чтобы оценить все переменные:
p := poly(x^2 + x*y, [x, y]): evalp(p, x = 3, y = 2) = p(3, 2)
![]()
delete p:
Если не все переменные заменяются значениями, результатом является полином в остающихся переменных:
evalp(poly(x*y*z + x^2 + y^2 + z^2, [x, y, z]), x = 1, y = 1)
![]()
Результат evalp не оценен далее. Мы сначала задаем полиномиальный p с коэффициентом a и затем измените значение a. Изменение не отражается p, потому что полиномы не оценивают свои коэффициенты неявно. Нужно сопоставить функциональный eval на коэффициенты для того, чтобы осуществить оценку:
p := poly(x^2 + a*y + 1, [x,y]): a := 2: p, mapcoeffs(p, eval)
![]()
Если мы используем evalp оценивать p в точке x = 1, не полностью оценен результат. Нужно использовать eval получить полностью оцененные коэффициенты:
r := evalp(p, x = 1): r, mapcoeffs(r, eval)
![]()
delete p, a, r:
| |
|
Неопределенное |
|
Значение для |
| |
|
Список indeterminates полинома: обычно, идентификаторы или индексированные идентификаторы |
Элемент содействующего звонка, или полином, или многочленное выражение или FAIL
fP