Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

книги / Mathematica 5. ╨б╨░╨╝╨╛╤Г╤З╨╕╤В╨╡╨╗╤М

.pdf
Скачиваний:
1
Добавлен:
19.11.2023
Размер:
33.75 Mб
Скачать

функция ListPlay генерирует примитив SampledSoundList, который может ис­ пользоваться внутри объектов Sound, Graphics и Graphics3D. SampledSoundList

[{аи alt }, г] представляет собой оцифрованный звук с амплитудами д1? д2, причем частота оцифровки равна г Гц.

Кроме того, есть специальный пакет Miscellaneous'Audio', в котором предусмот­ рены самые разнообразные функции как для создания, так и для обработки звуков.

Резюме

В соответствии с поддержанной многими выдающимися математиками концепцией Давида Гильберта, математика может обойтись без чертежей и графиков, а тем более без мультимедиа. Но многие выдающиеся математики (в их числе и Давид Гильберт), не го­ воря уже о выдающихся художниках-математиках (таких, как Анатолий Тимофеевич Фоменко), всегда объясняли самые абстрактные идеи математики с помощью не только выкладок, но и ярких, часто цветных чертежей и рисунков — подлинных про­ изведений изобразительного искусства. Это и понятно. Ведь не только, а подчас и не столько формулы служат стимулом для генерации новых идей, сколько яркие, запо­ минающиеся образы. И в системе Mathematica предусмотрены разнообразные средства создания графиков, чертежей и даже произведений компьютерного искусства, способ­ ных удовлетворить самый изысканный вкус и оживить лекцию по самым абстрактным разделам математики. Что же касается других наук, как естественных, так и гумани­ тарных, то здесь без средств визуализации данных просто не обойтись. И уж совсем невозможно представить себе инженерную деятельность и производство без чертежей. И потому в системе Mathematica есть не только традиционные средства построения графиков функций одной и нескольких переменных, но и средства построения разно­ образных диаграмм, применяемые представителями гуманитарных наук. Кроме того, система Mathematica умеет работать со звуком, и в ней легко проводить визуализацию динамических процессов.

Задачи

Задача 9.1. Розетки в полярных координатах. Плоские кривые, уравнения которых в полярных координатах имеют вид г — a+b cos /жр, называются розетками. Начертите какую-нибудь розетку.

Задача 9.2. Цветок — несколько кривых в одной и той же системе полярных коорди­ нат. Начертите 5 кривых, уравнения которых в одной и той же полярной системе ко­

ординат имеют вид г = (1+cos 5ф) +b sin25cp для b = 10, 20, 30, 40, 50.

Задача 9.3. Розы, или кривые Гвидо Гранди. Плоские кривые, уравнения которых в полярных координатах имеют вид r= a sin fop (или г = a cos fop), называются розами, или кривыми Гвидо Гранди. (Впервые розы исследовал Гвидо Гранди в 1728 году.) Роза полностью располагается внутри круга г = а. Если к — целое число, то роза состоит из £ лепестков при к нечетном и 2к лепестков при к четном. Если к = т / п (причем т и п — взаимно простые), то роза состоит из т лепестков, когда т и п нечетные, и из 2 т лепестков, если одно из чисел т и п является четным. При иррациональном к лепест­ ков бесконечно много. Начертите розы при к = 1/3, 1/2, 4/3, 5/3, 2, 3 на одном чер­ теже в ряд.

Задача 9.4. Колоски и их частные случаи — трисектрисы Лоншама и Маклорена. Плоские кривые, уравнения которых в полярных координатах имеют вид г= д/sin fop (или г= а/ cos fop), называются колосками. Они получаются из роз (кривых Гвидо

Мультимедиа: геометрия, графика, кино, звук

331

Гранди) в результате инверсии роз г — a sin Ахр (или г = a cos &<р) относительно окруж­ ности г= а. Колосок полностью располагается вне круга г — а. Если к — целое число, то колосок состоит из к конгруэнтных гиперболических ветвей при к нечетном и 2к гиперболических ветвей при к четном. Частными случаями колосков являются три­ сектрисы Лоншама (частный случай колоска при к = 3) и Маклорена (частный случай колоска при к = 1/3). Начертите трисектрисы Лоншама и Маклорена на одном черте­ же в ряд. Кроме того, начертите еще несколько колосков по вашему усмотрению.

Задача 9.5. Подбор цветка в математическом цветнике. Среди двухпараметрического множества кривых (напоминающих цветы) вида ( R cos(az), R sin(bz)), где R = sin 6г, выберите ту, которая ближе всего к окружности при условии, что параметры а и Ь принимают целые значения, причем 1<я<9 и 1<Z><6.

Задача 9.6. Математический цветник. Есть ли окружность среди двухпараметриче­ ского множества кривых (напоминающих цветы) вида (R cos(az), R sin(bz)), где R = sin 8z, при условии, что параметры a w b принимают целые значения, причем 1<я<9 и \<Ь<6.

Задача 9.7. В фильме “Взлеты и падения” киностудии “Компьютерфильм” куку­ рузник и реактивный истребитель совершают посадку на аэродром. (Это занимает 30 секунд.) После этого наступает полная тишина на 4 секунды. Затем они включают двигатели и взлетают. Напишите звуковое сопровождение к сюжету.

Задача 9.8. В фильме “Наши детективные истории” киностудии “Компьютерфильм” супергоночный автомобиль стремительно (с завыванием мотора) приближается к по­ лицейскому автомобилю, выпускает противотанковый снаряд и столь же стремительно удаляется. Все это занимает 4 секунды. Напишите звуковое сопровождение к сюжету.

Задача 9.9. В фильме “Октябрь на Венере” киностудии “Компьютерфильм” мед­ ленно приближающийся танк — оружие марсианских троцкистов-роботов — перио­ дически (период, конечно, равен п — ведь это же производство киностудии “Ком­ пьютерфильм”!) обстреливает шаровыми молниями позиции венерианских партизан. В середине сюжета венерианские партизаны выкатывают броневик, на который под­ саживают старичка-болыиевичка, страдающего старческим слабоумием. Старичокбольшевичок бесшумно двигает челюстями, хмурит густые брови и простирает трясу­ щуюся руку, после чего видно, как трассирующие пули летят в направлении, указанном генеральным секретарем партии венерианских большевиков, и слышится короткая автоматная очередь из автомата Калашникова. (Впрочем, на слух определить, моди­ фицированный это автомат из арсенала ГРУ или обычный, которым оснащалась мотопехота советской армии, зрителям не удается.) Возможные продолжения: 1) ста- ричок-большевичок попадает рукой в тарелку с манной кашей, танк проезжает на пе­ реднем плане и, удаляясь, продолжает выпускать шаровые молнии в стойких привер­ женцев венерианской революции; 2) старичок-большевичок пытается достать тарелку с манной кашей, но товарищи пошустрее подхватывают его руку, направляют се в сторону танка и после короткой автоматной очереди наступает тишина. Весь сюжет занимает 40 секунд. Напишите звуковое сопровождение к обоим вариантам сюжета.

332

Глава 9

Глава 10

Алгебра и анализ

Вэтой главе...

Алгебра

Анализ

Дифференциальные уравнения

Резюме

Задачи

Алгебра щедра — зачастую она дает больше, чем у нее спрашивают.

Даламбер

Алгебра

З ам ен а в ы р а ж е н и й в ф о р м у л а х

Одним из наиболее распространенных видов алгебраических преобразований явля­ ется замена выражений, часто называемая также подстановкой, в результате выполне­ ния которой какая-либо часть алгебраического выражения заменяется новым выраже­ нием. В системе Mathematica предусмотрено два способа подстановок. Первый способ выполняется с помощью функции Set.

Вычисление выражения Set [левая часть, правая часть], или левая часть = правая часть, выполняется следующим образом. Сначала вычисляется правая часть, а затем получившийся результат (вычисленное выражение) присваивается в качестве значения невычисленной левой части. Всюду в дальнейшем левая часть, в какие бы выражения она ни входила, будет заменяться выражением, полученным в результате вычисления правой части. Левая и правая части могут быть списками, и поэтому операцию заме­ ны (подстановки) Set можно записать в виде присваивания списков {левая частьх, тая часть2, . . .} = {правая частъх, правая часть2, . . .}. В этом случае результат вычисления /-й правой части будет присвоен /-й левой части. В качестве примера при­ своим символу х значение а и после этого вычислим выражение (х+1) л2.

х=а

(х+1 )-2 (1 +а)2

Вот более сложный случай.

{х,х}={а,Ь}

{а, b }

хЛ2

Ъ2

Обратите внимание, что никакого предупреждения не было. Это подобно тому, как в языках программирования вполне допустим оператор х = х+1 потому, что действия выполняются не одновременно, а в определенном порядке.

А вот случай, когда значения функции задаются в определенных точках.

Evaluate[ff/@{a,b,c,d}]={l/23,45,678}; ff [b]

23

Как видите, теперь везде ff [Ь] заменяется своим значением. Пусть теперь b = 1, Заменится ли ff [1] своим значением? Оказывается, нет.

Ь=1

1

ff [1] f f [1]

Более того, теперь даже ff [Ь] не заменяется своим значением.

ff [Ь] f f [1]

Это происходит потому, что аргумент функции вычисляется в данном случае раньше.

Иногда глобальную подстановку нужно отменить. Если левая часть есть пере­ менная, это можно сделать с помощью функции Clear. Вызов Clear [переменная1, переменная2, . . . ] отменяет все подстановки значений, присвоенных переменным переменная!, переменная2, Для отмены подстановки значения одной переменной можно использовать присваивание вида переменная =

b=N[Pi,50]

3.1415926535897 932384 6264338327950288-41971693993751

Ь=.

ь

ь

Присваивание вида переменная = является синонимом выражения Unset [пере­ менная] .

b=N[Pi,50]

3.1415926535897932384626433832795028841971693993751

U n se t[b ] b

b

Присваивание, или функция Set, задает глобальную подстановку, т.е. такую подста­ новку, которая выполняется во всех последующих вычислениях до ее явной отмены. Если же подстановку одного выражения вместо другого нужно сделать в одном кон­ кретном выражении или же в нескольких, то удобнее использовать функцию Rule.

Выражение Rulе[левая часть, правая часть], записываемое также в виде левая часть->правая часть, задает правило, в соответствии с которым вместо левой части подставляется вычисленная правая часть. При этом правая часть вычисляется в момент

334

Гпава Ю

вызова функции Rule. Если правую часть нужно вычислять в момент применения правила, то нужно вызвать не функцию Rule, а функцию RuleDelayed, вызов кото­ рой можно записать в виде левая часть : > правая часть.

x=N[Pi+E,50]

5.8598744820488384738229308546321653819544164930751

х+у 5.8598744820488384738229308546321653819544164930751+у

х + у /.х -> 2 2+у

Для всех дальнейших вычислений х сохраняет свое значение.

х+у

5.859874482048838473822 9308546321653819544164930751+у

Подстановки удобно задавать в виде поименованных правил. Например, можно определить подстановку rl = х->а, и после этого она может быть применена к кон­ кретному выражению с помощью функции ReplaceAll, имеющей также постфикс­ ную форму /

rl = х -> а

х+1/ . r l

1+а

То же самое можно сделать и так:

ReplaceAll [х + 1, rl] 1+а

Вот пример последовательных замен.

(а,Ь,с}/.а->Ь/ .b->d {d,d,c}

Функция ReplaceAll позволяет осуществить несколько подстановок одновремен­ но. Тогда эти подстановки должны быть оформлены в виде списка и заданы вторым аргументом этой функции. Вот пример одновременной замены:

{a,b,c}/. {a->b,b->d} {b,d,c}

Однако функция ReplaceAll выполняет замену в каждом подвыражении только раз, рекурсивно замена не выполняется.

ReplaceAll [х + х2 , {х -> а , х 2 4 х ( ]

а+х !

Если же нужно делать подстановки повторно, необходимо использовать функцию

ReplaceRepeated.

R eplaceR epeated[х + х 2 , {х -* а , х 2 -+ х} ]

2 а

Функция ReplaceRepeated имеет постфиксную форму / /

х + х2 / / . { х - » а , х 2 -»х)

2 а

Пусть имеем список заменяемых и список заменяющих выражений. Тогда правила замены можно сформировать с помощью функции Thread.

Алгебра и анализ

335

rr= T h read [ {г , s, t} -> {R, S, Т} ]

{r->R,s->S,t->T}

Теперь применим эти правила.

r s t / r r

ST

RS

 

Выражения в системе Mathematica имеют заголовки. Например:

 

Г

3

7

1

H ead/© { 2 ,

— , aa + b b, л ,

+ i j

 

L

4

 

J

{Integer,Rational,Plus,Symbol,Complex}

 

Их тоже можно заменить.

 

 

г

3

 

 

 

[ 2 , — , аа + b b , я , 7 + i j / .

 

х

: (^ I n t e g e r | _ R a t io n a l

|

_ P lu s ) -»Log[x]

{Log [2], -Log [у], Log [aa +bb], л, 7 + i}

В данном случае выражения с заголовками Integer, Rational и Plus были заме­ нены их логарифмами. Вот еще пример этого типа. Все выражения с заголовками f или g заменим их квадратами.

ex p r = f [a , b ] g[c] + f [а,

Ь, с d] + f [а, Ь] h [c ] ;

ех р г / а : (£ | д) [__ ]

а2

(f[a, b]2)g[c]2 + f[a, b, cd]2 + f[а, b]2h [с]

Вот еще один способ сделать то же самое.

ех р г / а : v _ [ __ ] / ; M em berQ[{f, g} , v] a2

2

(f[a, b]2)9(cl + f[a, b, c d]2 + f[a, b]2h[c]

А вот как все множители, являющиеся вызовами функций, можно возвести в квадрат:

ехрг

f[a, b]9fcl + f[a, b, с d] + f[a, b] h[c]

ex p r / . H o ld P a tte rn [Times [a : ( _ [ __ ] . .) ] ]

T im e s [a ]2

f[a, b]g[cl + f[a, b, c d] + f[a, b]2h[c]2

Заметьте, что выражение HoldPattern [ e x p r e s s i o n ] эквивалентно выражению e x p r e s s i o n для сопоставления с образцом, но оставляет выражение e x p r e s s i o n в невычисленной форме.

А вот как все вызовы функций, не содержащие степеней и произведений, возво­ дятся в куб.

exprl=expr+f[a,b,с /42d] f[a, b]glcl + f[a, b, с d] +

f[a, b, c2d] + f[a, b] h[c]

e x p r l / . a : _ [ __ ] a 3 / ; F reeQ [a, Power | Times]

(f[a, b]3)9lc)3 + f[a, b, cd] + f[a, b, c2d] +f[a, b]3h[c]3

336

Глава 10

Действия со степенями

Функция PowerExpand приводит (а*Ъ) Ас к виду а лс * ЬАс. Преобразования, сделанные с помощью PowerExpand, корректны, вообще говоря, только если с целое, а а и Ь положительные.

Кроме того, PowerExpand приводит L o g [ a Ab] к виду b * L o g [ a ] .

PowerExpand [Log [ (a b ) n] ] n ( L o g [ a ] + L o g [ b ] )

Квадратный корень тоже рассматривается как степень.

P o w e rE x p a n d [S q rt[х у ] ]

л/х л/ у

Ну и конечно же, PowerExpand также приводит ( а АЬ) Лс к виду а л ( Ь с ) .

Раскрытие скобок

Раскрытие скобок выполняет функция Expand. Вот пример.

Expand[ (а + b + с) 5]

а5 + 5 а 4 b + 10 а 3 Ь2 + 10 а 2 Ь3 + 5 а Ь4 + Ь5 +

5 а4 с + 20 а 3 b с + 30 а 2 Ь2 с + 20 а Ь3 с + 5 Ь4 с + 10 а3 с 2 + 30 а 2 b с 2 + 30 а Ь2 с 2 + 10 Ь3 с 2 +

10 а2 с 3 + 20 а b с 3 + 10 Ь2 с 3 + 5 а с 4 + 5 b с 4 + с 5

Можно указать, что при раскрытии скобок нужно выполнять приведение по опре­ деленному модулю.

Expand[ (а + Ь + с) 5 , Modulus 10]

а5 + 5 а 4 b + 5 a b 4 + b 5 +

5 а4 с + 5 Ь4 с + 5 а с 4 + 5 b с 4 + с 5

Наконец, можно указать, что раскрывать скобки нужно только в выражениях оп­ ределенного вида. Для этого в вызове функции должен быть задан второй аргумент — шаблон, к которому применяется раскрытие скобок. Все выражения, не содержащие шаблона, останутся без изменения.

Expand[ (1 + х) 3 + ( 2 + х) 4 + (1 + у ) 2 , 1 + х]

1 + З х + З х 2 + х 3 + (2 + х ) 4 + (1 + у) 2

Однако функция Expand раскрывает не все скобки, а только в произведениях и степенях. Она не раскрывает скобки, например, в знаменателях. Если же нужно рас­ крыть все скобки, нужно применить функцию E x p a n d A ll.

г - (а + ь >3 .

(c + d ) 2 '

Expand [г ]

 

 

 

 

а3

3 а 2 b

 

3 а Ь2

Ь3

(c + d ) 2 + (c + d ) 2 +

(c + d ) 2 + (c + d ) 2

ExpandAll [г]

 

 

 

____ а 3

 

3

а 2 b

 

с2 + 2 с d + d 2 + с 2 + 2 с d + d2 +

____ 3 а Ь2

Ь3

с2 + 2 с d + d 2 + с 2 + 2 с d + d 2

Алгебра и анализ

337

Конечно же, для функции ExpandAll также можно указать шаблон, к которому применяется раскрытие скобок. Все выражения, не содержащие* шаблона, останутся без изменения.

Приведение подобных

Вызов Collect [ехрг, х] собирает в выражении ехрг члены с одинаковыми степе­ нями х. Иными словами, функция Collect приводит подобные члены.

C o l l e c t [х+4у+5ху,х] 4 у+х (1+5 у)

C o l l e c t [х+4у+'^ху,у] х+(4+5 х) у

Вызов Collect [ехрг,

{хх, х2, ...}] собирает в выражении ехрг члены с одинако­

выми степенями

затем — с одинаковыми степенями х2 и т.д.

C o l l e c t [х4 + (а + у) (х + у 3) х 2 + ( у 3 + 3) х 2 ,

{* /

у } ]

 

 

х4 + х3 (а + у) + х2 (3 + (1 + а) у3 + у4)

C o l l e c t [a2 w2 -

а2 х + k l

(e a ? + e b c) + к2 (е ас + еЬс) ,

{ а ,

е ас + е Ьс} ]

 

(еас + ebc) (kl + к2 ) + a2 (w2 - х)

Иногда после приведения подобных нужно к каждому члену применить какуюнибудь функцию. Тогда ее нужно указать третьим параметром функции Collect:

Collect [ехрг, {*,, х2,

...}, функция]. Вот как, например, выполняется разложение

коэффициентов на множители после приведения подобных.

C o l l e c t [ ( - 5 0 + 95 х -

17 х 3) z + ( 1 8 х 2 + 2 * 4) z +

(х4 - 2 х 2 у 2 + у 4) z 3

,

z , F a cto r]

(-5+х) 2 (2 + х) (-1 + 2 х) z + (х - у) 2 (x + y)2 z3

В функции C o llect можно использовать шаблоны. В приведенном ниже примере они используются для того, чтобы собрать члены с одинаковыми степенями х и у.

C o l l e c t [a3 - d 3 + 3 a 2 x + 3 a x 3 + x 3 + 3 a 2 c y +

3 a 2 d y + 6 а с х у + 6 a d x y + 3 c x 2 y + 3 d x 2 y + 3 а с 2 у 2 + б а с d y 2 + 3 a d2 у 2 + 3 с 2 х у 2 +

б с d х у 2 + 3 d2 х у 2 + с 3 у 3 + 3 с 2 d у 3 + 3 с d2 у 3 + d3 y 3 , {х —*1 у —*1 / х—*1 г у - :1}]

а3 - d3 + 3 а2 х + (1 + 3 а) х3 +

(3 а2 с + 3 a2 d) у + (6 а с + 6 a d) х у +

(3 с + 3 d) х2 у + (3ac2 + 6 a c d + 3 a d 2) у2 +

(3 с2 + б с d + 3 d2) х у2 + (с3 + 3 с2 d + 3 с d2 + d3) у3

Заметьте, что полученное выражение отличается от

C o l l e c t [a3 - d 3 + 3 a 2 x + 3 a x 3 + x 3 + 3 a 2 c y +

3 a 2 d y + 6 a c x y + 6 a d x y + 3 c x 2 y + 3 d x 2 y + 3 а с 2 у 2 + б а с d у 2 + 3 a d2 у 2 + 3 с 2 х у 2 +

б с d х у 2 + 3 d2 х у 2 + с 3 у 3 + 3 с 2 d у 3 + 3 с d2 у 3 + d3 у 3 , {х , у }]

338

Гпава Ю

а3 - d3 + (1 + 3 а) х3 + (3 а2 с + 3 a2 d) у +

(3 с + 3 d) х2 у + (3ac2 + 6 a c d + 3 a d 2) у2 + (с3 + 3 с2 d + 3 с d2 + d3) у3 +

х (3 а2 + (бас + 6 ad) у + (3 с2 + б с d + 3 d2) у2)

хотя и равно ему тождественно.

Ниже показано применение шаблона для того, чтобы собрать члены, содержащие производные функции z одинакового порядка.

Collect [z[x] +u[x] z'[x] + u' [x] z'[x] +

U[x] z "[x ], Z<-> [X]]

z[x] + (U[x] + u'[x]) z'[X] + u [X] z" [x]

Многочлены

Чтобы проверить, что выражение ехрг есть многочлен по некоторой переменной vагу нужно вызвать функцию PolynomialQ [axpr, var]. Результат будет True, если ехргявляется многочленом по переменной var, и False — в противном случае.

PolynamialQ [— , х]

True

PolynamialQ[— , у]

False

В случае нескольких переменных при проверке необходимо указать список пере­ менных: PolynomialQ [ехрг, {varl, var2,...}].

PolynomialQ [ху, {х,у}]

True

Выражение PolynomialQ [ехрг] равно True, если ехрг является полиномом относи­ тельно каких-либо переменных. В противном случае результат равен False.

PolynomialQ [ху, {х,у}]

True

PolynomialQ[(Pi+x)y]

True

PolynomialQ [1/z+xy]

False

Чтобы узнать общее число слагаемых в многочлене poly, можно вычислить выра­ жение Length [poly] . Но не забудьте перед этим раскрыть скобки.

PolynomialQ [(a+b+c+d) Л100] True Length[(a+b+c+d)Л100]

2

Length!Expand[(a+b+c+d) л10 0]]

176851

Функция Variables, примененная к poly, дает список всех независимых перемен­ ных в полиноме poly.

Variables [ (a+b+c+d) А100)

U,b,c,d)

Алгебра и анализ

339

Коэффициенты

Выражение Coefficient [poly, form] имеет своим значением коэффициент при выражении form в полиноме poly.

C o e f f i c i e n t ! (x+y+z)Л15,хЛ5]

3003 у10 + 30030 у9 z + 135135 у8 z2 + 360360 у7 z3 +

630630 у6 z4 + 756756 у5 z5 + 630630 у4 z6 +

360360 у3 z7 + 135135 у2 z8 + 30030 у z9 + 3003 z10

Выражение Coefficient [poly, form^n] эквивалентно Coefficient [poly, form, n}.

Coefficient[(x+y+z)Л15,x,8]

6435 y7 + 45045 y6 z + 135135 y5 z2 + 225225 y4 z3 + 225225 y3 z4 + 135135 y2 z5 + 45045 у z6 + 6435 z7

Результат вычисления выражения CoefficientList [poly, form] представляет собой список коэффициентов при степенях form в полиноме poly. Список составляется в порядке возрастания степеней.

C o e f f i c i e n t L i s t [хЛ2+хЛ18,х]

{0,0,1 ,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }

C o e f f i c i e n t L i s t [(x+y+z)Л3,х] {у3 + 3 у2 z + 3 у z2 + z3,

3y2 + 6 yz + 3z2, 3 у + 3 z, 1 }

Список коэффициентов можно привести по определенному модулю.

{C oef f i c i e n t L i s t [z

= x 4 + 2 x 3 у + 5 x у 2 + 13 у 4 ,

x , Modulus -> 3] ,

 

C o e f f i c i e n t L i s t [ z ,

x , Modulus -*■4] }

{{y4, 2 y2, 0, 2 у, 1 }, {y\ y2, 0, 2 у, 1 }}

Приведение к каноническому виду

Приведение многочленов к каноническому виду выполняется путем раскрытия скобок и приведения подобных.

Разложение на множители

Разложение многочленов на множители над полем рациональных чисел выполняет функция Factor.

Factor[хЛ1000+1]

( 1 + х8) (1 - х8 + :к1 6 - X24

+ X 3 2 )

( 1

-

X 40

+ X80 - X L20

X1 6

0 )

( 1

-

X 200

+ х400 - х6°о + X8 00)

Factor[хЛ1244+4]

+ 2 х311 + х

( 2 -

 

2 х311 + х622) ( 2

Factor[хЛ3+уЛ3+гЛ3-3*х*у*г]

(x+y+z) (х2 - xy + y2 - x z - y z + z2)

Разложение на множители выполняет не только функция Factor, но и функции

FactorList и FactorTerms. В результате вычисления выражения FactorList [poly]

получается список множителей полинома poly вместе с показателями степеней, с ко­ торыми множители входят в разложение poly на множители. Первый элемент списка

340

Гпава Ю