Чтение онлайн

ЖАНРЫ

Maple 9.5/10 в математике, физике и образовании

Дьяконов Владимир Павлович

Шрифт:

> е := <х^2, -sqrt(16-х^2), 5>;

Примеры на работу с выражениями, имеющими множители Лагранжа можно найти в файле демонстрационным L4lagra.mse.

3.6.3. Подстановки с помощью функций add, mul и seq

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

> add(i,i=[a,b,c]);

a + b + c

> addi=[a,b,c]);

a² + b² + c²

> add(i^2,i=[1,2,3]);

14

> mul(x-i,i=0..4);

x(x - 1)(x - 2)(x - 3)(x - 4)

> mul(х^i,i=0..4);

x10

> seq(w(i),i={a,b,c});

w(a), w(b), w(c)

> seq(w(x, y, z), i={1,2,3});

w(x, y, z), w(x, y, z), w(x, y, z)

> seq(int(x^i,x),i={1,2,3,4});

3.6.4.

Подстановки с помощью функций subs и subsop

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

• subs(x=a,e) — в выражении е заменяет подвыражение х на подвыражение а;

• subs(s1,…,sn,e) — в выражении е заменяет одни подвыражения на другие, выбирая их из списков s1, sn вида х=а;

• subsop(eq1, eq2, …, eqi, …, eqn, e) — в выражении e заменяет указанные в eqi операнды другими, указанными в правой части равенств eqi вида ni=ei, где ni — номер операнда, ei — выражение для замены.

Все эти функции возвращают измененное после подстановки выражение. Ниже показаны примеры применения функций подстановок:

> subs(а=b,b^2-2*а*b-b^2);

– 2 b²

> subs (а=2,b=1,b^2-2*а*b-b^2);

> normal(%);

a-b

> subs(a=x,b=y,c=z,[a,b,с]);

[x, y, z]

> subs({x=y,y=x),[x,y]);

[y, х]

> subs(a=sin(x),b=cos(x),а^2+b*b);

sin(x)² + cos(x)²

> simplify(%);

1

> subsop(1=x,a+b+c);

x + b + c

> subsop(2=x,a+b+c);

a + x + c

> subsop(3=x,a+b+c);

a + b + x

> subsop(3=x,a+b/c);

Error, improper op or subscript selector

> subsop(1=sin(x),(1+cos(x))/b);

> subsop(2=sin(x),(1+cos(x))/b);

(1 +cos(x))sin(x)

> subsop(1=sin(x),2=sin(x),(1+cos(x))/b);

sin(x)²

Следует

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

Одним из важных применений подстановок является проверка правильности решений уравнений и систем уравнений. Ниже дан пример такой проверки:

> eqs:={x+y+z=6,y/x=z-1,z-x=2};

> res:=solve(eqs,{х,у,z});

res: = {z = -2, у = 12, x = -4}, {y = 2, z = 3, x = 1}

> subs(res,eqs);

{2 = 2, 6 = 6, -3 = -3}

> subs(c=a-b,(а^2-2*а*b+b^2)/с);

Здесь задана система из трех нелинейных уравнений, которая затем решена функцией solve. В конце примера с помощью функции подстановки выполнена проверка правильности решения. Оно верно, поскольку у всех уравнений значение левой части совпадает со значением правой части.

3.6.5. Подстановки правил и подвыражений

Для применения некоторого правила или списка правил rule к некоторому выражению expr используется функция applyrule(rule, expr). Применение этой функции достаточно очевидно:

> restart:applyrule(f(а::integer*х)=a*f(х),f(2*х)+g(х)-p*f(х));

2f(x)+g(x)-pf(x)

> applyrule(х^2=у,f(x^2,ln(cos(x)+2*x^2)));

f(y, ln(cos(x) + 2y))

> applyrule(b+c=x,f(a+b+c+d));

f(x + a + d)

Эта функция более мощная, чем subs, но она не выполняет математические вычисления, подобно тому, как это делает функция algsubs(a=b, f, v, options) с необязательными двумя последними параметрами. Проанализируйте следующие примеры

> algsubs(а^2=0, ехр(2-а+а^2/2-а^3/6));

e(2-a)

> applyrule(а^2=0, ехр(2-a+a^2/2-a^3/6));

e(2-a-1/6a³)

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

3.6.6. Функции сортировки и селекции

Сортировка и селекция выражений широко используются в практике символьных преобразований. Нередко она важна в статистических расчетах, обеспечивая повышение их точности.

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

sort(L)

sort(L, F)

sort(A)

sort(A, V)

Здесь L — список сортируемых значений, F — необязательная булева процедура с двумя аргументами, А — алгебраическое выражение, V — необязательные дополнительные переменные.

Поделиться с друзьями: