Категории
Самые читаемые
onlinekniga.com » Научные и научно-популярные книги » Математика » Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Читать онлайн Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов

Шрифт:

-
+

Интервал:

-
+

Закладка:

Сделать
1 ... 34 35 36 37 38 39 40 41 42 ... 125
Перейти на страницу:

> seq(sin(х),х=0..5);

0, sin(1), sin(2), sin(3), sin(4), sin(5)

> seq(sin(x*1.),x=0..5);

0., .8414709848, .9092974268, .1411200081, -.7568024953, -.9589242747

> seq(f1(1.),f1=[sin,cos,tan]);

.8414709848, .5403023059, 1.557407725

> sin(1.0), cos(1.0), tan(1.0);

.8414709848, .5403023059, 1.557407725

3.5.4. Вывод выражений

При выполнении порой даже простых операций результаты получаются чрезвычайно громоздкими. Для повышения наглядности выражений Maple выводит их с выделением общих частей выражений и с присваиванием им соответствующих меток. Метки представлены символами %N, где N — номер метки.

Помимо меток при выводе результатов вычислений могут появляться и другие специальные объекты вывода, например корни RootOf, члены вида O(x^n), учитывающие погрешность при разложении функций в ряд, и обозначения различных специальных функций, таких как интегральный синус, гамма-функция и др. Примеры такого вывода приведены ниже:

> solve(х^7-х^2-1,х);

½+½I√3, ½-½I√3, RootOf(_Z5 + _Z4  - _Z2 - _Z - 1, index = 1), RootOf(_Z5 + _Z4 - _Z2 - _Z - 1, index = 2), RootOf(_Z5 + _Z4 - _Z2 - _Z - 1, index = 3 ), RootOf(_Z5 + _Z4 - _Z2 - _Z - 1, index = 4), RootOf(_Z5 + _Z4 - _Z2 - _Z - 1, index = 5)

> taylor(sin(x),x,5);

Часто встречаются также знаки ~ для отметки предполагаемых переменных, постоянные интегрирования и другие специальные обозначения. По мере упоминания в тексте таких объектов вывода они будут описаны.

3.5.5. Работа с частями выражений

Выражения (expr) или уравнения (eqn) обычно используются как сами по себе, так и в виде равенств или неравенств. В последнем случае объекты с выражениями имеют левую и правую части. Для простейших манипуляций с выражениями полезны следующие функции:

• cost(a) — возвращает число сложений и умножений в выражении а (функция пакета codegen);

• lhs(eqn) — выделяет левую часть eqn;

• rhs(eqn) — выделяет правую часть eqn;

• normal(expr) — дает нормализацию (сокращение) expr в виде дроби;

• numer(expr) — выделяет числитель expr;

• denom(expr) — выделяет знаменатель expr.

Ввиду очевидности действия этих функций ограничимся наглядными примерами их применения:

> with(codegen,cost):

> cost(х^3+b^2-х);

2 additions + 3 multiplications

> lhs(sin(x)^2+cos(x)^2=1);

sin(x)² + cos(x)²

> rhs(sin(x)^2+cos(x)^2=1);

1

> normal(2/4+3/6+6/12);

> f:=5*(a-b)^2/(а^2-2*а*b-b^2);

> numer(f);

5 (a-b)²

> denom(f);

a²-2ab-b²

Обратите внимание на то, что в старых версиях (до Maple 7) загрузка библиотечной функции cost выполнялась иначе — командой readlib(cost). Это обстоятельство может служить причиной неверной работы документов, созданных в старых версиях Maple, в среде последующих версий Maple.

3.5.6. Работа с уровнями вложенности выражений

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

• nops(expr) — возвращает число объектов первого уровня (операндов) в выражении expr;

• op(expr) — возвращает список объектов первого уровня в выражении expr;

• op(n,expr) — возвращает n-й объект первого уровня в выражении expr. Ниже представлены примеры применения этих функций:

> nops(а+b/с);

2

> op(a+b/c);

> op(1,a+b/c);

а

> op(2,a+b/c);

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

3.5.7. Преобразование выражений в тождественные формы

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

Основной функцией для такого преобразования является функция

convert: convert(expr, form, arg3,...)

Здесь expr — любое выражение, form — наименование формы, arg3, … — необязательные дополнительные аргументы.

convert — простая и вместе с тем очень мощная функция. Ее мощь заключается в возможности задания множества параметров. Их полный перечень (около восьмидесяти наименований) можно найти в справке по функции convert. Многие из этих параметров очевидны с первого взгляда, поскольку повторяют наименования типов чисел, данных или функций. Например, опции binary, decimal, hex и octal преобразуют заданные числа в их двоичное, десятичное, шестнадцатиричное и восьмеричное представление. Параметр vector задает преобразование списка в вектор (напоминаем, что список и вектор — разные типы данных), а параметр matrix — в матрицу. Приведем примеры применения функции convert (файл expr1):

> convert(123,binary);

1111011

> convert([a,b,с,d],`+`);

a + b + c + d

> f:=seq(x[i]^n,i=1..4);

f:=x1n, x2n, x3n, x4n

> x:='x'; convert(sinh(x),ехр);

x:= x

> convert(1.234567,fraction);

> convert(1/7,float);

.1428571429

> convert(sin(I*x),exp);

> convert(sinh(x),exp);

> convert(arcsinh(x),ln);

> convert(12345,list);

[12345]

> convert(binomial(m,n),factorial);

> convert([[1,2],[3,4],[5,6]],table);

table([(1, 1) = 1, (2, 1) = 3, (2, 2) = 4, (3, 1) = 5, (3, 2) = 6, (1, 2) = 2])

> convert(-Pi,signum);

> s:=taylor(sin(x),x,8);

> p:=convert(s,polynom);

> convert(p,float);

x-.1666666667x3 +.008333333333x5 -.0001984126984x7

> f:=(х^4+х)/(x^2-1);

> convert(f, parfrac, x);

> s:=series(f,x,5);

s:= -x - x3 -x4 + O(x5)

> convert(s,polynom);# Удаление члена ряда, описывающего погрешность

-х - х3 - х4

Из этих примеров (их список читатель может пополнить самостоятельно) следует, что функция преобразования convert является одной из самых мощных функций Maple. С ее помощью можно получить множество различных форм одного и того же выражения.

3.5.8. Преобразование выражений

Еще одним мощным средством преобразования выражений является функция combine. Она обеспечивает объединение показателей степенных функций и преобразование тригонометрических и некоторых иных функций. Эта функция может записываться в трех формах:

combine(f)

combine(f, n)

combine(f, n, opt1, opt2,...)

Здесь f — любое выражение, множество или список выражений; n — имя, список или множество имен; opt1, opt2, … — имена параметров. Во втором аргументе можно использовать следующие функции:

@@  abs       arctan  conjugate ехр

ln  piecewise polylog power     product

Psi radical   range   signum    trig

Примеры применения функции combine представлены ниже (файл expr1):

> combine(ехр(2*х)^2,ехр);

е(4x)

> combine(2*sin(х)^2+2*cos(х)^2);

2

> combine(sin(х)*cos(х));

½sin(2x)

> combine(Int(х,x=a..b)-Int(х^2,x=a..b));

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

3.5.9. Контроль за типами объектов

Выражения и их части в Maple рассматриваются как объекты. В ходе манипуляций с ними важное значение имеет контроль за типом объектов. Одной из основных функций, обеспечивающих такой контроль, является функция whattype(object), возвращающая тип объекта, например string, integer, float, fraction, function и т.д. Могут также возвращаться данные об операторах. Примеры применения этой функции даны ниже (файл control):

> whattype(2+3);

integer

> whattype(Pi);

symbol

> whattype(123./5);

float

> whattype(1/3);

fraction

> whattype(sin(x));

function

> whattype([1, 2, 3, a, b, c]);

list

> whattype(a+b+c);

+

> whattype(a*b/c);

*

> whattype(a^b);

^

> whattype(1+2+3=4);

1 ... 34 35 36 37 38 39 40 41 42 ... 125
Перейти на страницу:
На этой странице вы можете бесплатно читать книгу Maple 9.5/10 в математике, физике и образовании - Владимир Дьяконов.
Комментарии