Как отображать только выбранные полномочия расширения клена

Скажем, у меня есть супер длинный полином от нескольких переменных. слишком долго, чтобы отображать на экране или распечатывать, поэтому собирать 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);

Другие вопросы по тегам