Как отображать только выбранные полномочия расширения клена
Скажем, у меня есть супер длинный полином от нескольких переменных. слишком долго, чтобы отображать на экране или распечатывать, поэтому собирать http://www.maplesoft.com/support/help/Maple/view.aspx?path=collect вряд ли поможет. Я хотел бы сказать, чтобы клен отображал только термины, которые содержат определенную переменную для одной выбранной степени. Я уверен, что должен быть простой способ сделать это. И нет, я не изучал это подробно. не стесняйтесь просто дать ссылку на ответ, если он уже существует в Интернете.
Спасибо...
2 ответа
Если вы заботитесь о скорости - возможно, потому, что вам нужно делать аналогичные запросы для других полномочий, возможно, других переменных - тогда подумайте об использовании coeff
команда. Например, для полинома f
члены с x^2 могут быть получены с помощью команды,
x^2*coeff(f,x,2);
Для плотного трехчленного многочлена, состоящего примерно из 1000000 членов, как в следующем примере, coeff
Команда в несколько сотен раз быстрее в Maple 16 и 17, чем это has
Командный подход, как показано ниже.
restart:
f:=expand(randpoly(x,degree=100,dense)
*randpoly(y,degree=100,dense)
*randpoly(z,degree=100,dense)):
nops(f); # number of terms
990000
sol1:=CodeTools:-Usage( select(has,f,x^2) ):
memory used=105.36MiB, alloc change=58.22MiB, cpu time=842.00ms, real time=843.00ms
sol2:=CodeTools:-Usage( x^2*coeff(f,x,2) ):
memory used=156.84KiB, alloc change=0 bytes, cpu time=0ns, real time=4.00ms
expand(sol1-sol2);
0
# Check that the timing difference was not just due to the order in which
# the two approaches were done, by a simple repeat.
CodeTools:-Usage( select(has,f,x^2) ):
memory used=105.30MiB, alloc change=23.11MiB, cpu time=733.00ms, real time=691.00ms
CodeTools:-Usage( x^2*coeff(f,x,2) ):
memory used=156.81KiB, alloc change=0 bytes, cpu time=0ns, real time=3.00ms
Все это было сделано в 64-битной версии Maple 17 в Windows 7, а временные параметры очень похожи в Maple 16. Это резко контрастирует с Maple 15 и более ранними версиями, где coeff
подход примерно в 3 раза медленнее has
подход. Эти улучшения относятся к основной работе, проделанной при работе с полиномиальными структурами в Maple 16 и 17. Смотрите здесь и здесь.
Допустим, вы хотите увидеть все условия полинома poly
с x^2
, Тогда делай select(has, poly, x^2);