Мониторинг обменных курсов валют
18c0693f

Раскрытие и расширение выражений — функции класса Expand


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

(а -b)2 = (а - b) (а - b)

можно представить как

a2-2ab + b2

Разумеется, такое соответствие существует далеко не всегда. К примеру, выражение в виде числа 1 вовсе не является представлением только выражения sin(X) 2 + cos(x) 2 .

Ниже представлены основные функции, производящие раскрытие и расширение выражений:

Приведем примеры операций расширения выражений с помощью функции Expand:

Expand[(х - а)*(х - b)*(х - с)]

-abc+ abx + acx+bcx-ax2- bx2-cx2 + x3

Simplify[%]

-(а-х) (-b+х) (-с + х)

Expand!(Sin[x]+Cos[x])/(Cos[x]*Sin[x])]


Csc[x] + Secfx]

Simplify[%]

Sirrplfy[Csc[x] + Sec[x] ]

Expand[2*Cos[x]^2,Trig-> True]

2Cos[x]2

Simplify[%]

l+Cos[2x]

Expand[Sin[x]^2+Cos[x]^2]

Cos[y]2+Sin[x]2

Expand[Sin[x]^2+Cos[x]^2,Trig-> True]

1- Cos[x]2/2 +Cos [у]2/2 +Sin[x]2/2 -Sin[y]2/2

Simplify[%]

1/2 (2-Cos[2x] + Cos[2y])

В этих примерах полезно обратить внимание на то, что далеко не всегда последовательное применение функций Expand и Simplify дает исходное выражение. Гораздо чаще получается новое выражение, порой представляющее ценность. При операциях с тригонометрическими выражениями нередко нужно использовать опцию Trig->True, намечая тригонометрический путь решения. В противном случае может быть просто выдан отказ от выполнения операции Expand с заданным выражением, которое будет просто повторено в ячейке вывода.

Приведем примеры использования других функций расширения выражений:

ExpandAll[Sin[2*Cos[x]], Trig -> True]

Cos [Cos [x] + ISin[x] ] Sin[Cos[x] - ISin[x] ] +

Cos [Costx] - ISintx] ] Sin[Cos[x] + ISin[x] ] Simplify[%]

Sin [ 2 Cos [x]]

ExpandNumerator[(1 + x)^2/х]

1 + 2 x + x2/x

ExpandDenominator[(1 - x)^2/(l + x)^2]

(1-х)2/1 + 2 x + x2

ComplexExpand[Sin[a + I*b]]

Cosh[b] Sin [a] + I Cos [a] Sirihfb]

ComplexExpand[ (a. + b I) / (x + d I) ]

-lad/Abs[Id+x]2+bd/Abs[Id+x]2 + ax/Abs[Id + x]2 +Ibx/Abs[Id+x]2

Simplify[%]

(-Ia + b) (d + Ix)/^bstld+x]2

PowerExpand[Sqrt[a^2*b*c]]

aSQRT(b)SQRT(c)

FunctionExpand[Gamma[4, x]]

E-xx3+ 3 (Fxx2+ 2 (E-x+ E-xx))

FunctionExpand[Beta[4, 2 + x]]

6/(2 + x) (3+x) (4 + x) (5 + x)

FunctionExpand[Zeta[3, 2 + x] ]

Разумеется, этими примерами далеко не исчерпываются возможности данной группы функций. Рекомендуется опробовать примеры из справочной системы данных Mathemaca и свои собственные примеры.

Функция приведения Collect

К операциям, расширяющим выражения, относится также функция Collect:

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


Проиллюстрируем это следующими примерами.

Ввод (In)

Вывод (Out)

Collect [%, x]

-5x+5x 2 -x 3 + x 4

expr = (5 + x ^ 2) * (x- 1) *x (-1 + x) x(5 + x 2 )
Collect [a *x ^ 2 +b*x*y+c*y+d*y ^ 2, y] ax + (c+ bx) y+ dy 2
Collect [a *x ^ 2+b*x*y + c*y+d*y ^ 2, x] ax + cy+ bxy+ dy 2
Collect[ (x - 1) * (x - 2) * (х^2 - 9) , x] -18-27х-7х 2 -Зх 3 + х 4
Следующий пример показывает применение функции Collect к выражению с двумя переменными:

Collect[(х-1)*(у-3)*(х-2)*(у-2)*(х-1),у,х]

-12.+ 30х-24х2+ 6х3 + (10-25х + 20Х2- Sx3) y+

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

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






Самый выгодный курс обмена валюты