Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
posobie_Maple.pdf
Скачиваний:
74
Добавлен:
17.05.2015
Размер:
948.67 Кб
Скачать

Глава 1

Основные правила работы в Maple. Элементарная математика

Окно Maple имеет обычный вид для предложения Windows:

Раскладка клавиатуры в Maple английская (En). Все вычисления выполняются в рабочем документе(так называемом “worksheet”). Работа производится по секциям, каждая секция обозначается левой квадратной скобкой, объединяющей строку ввода(командную) и полученный результат. Правила редактирований командной строки стандартные, как в любом текстовом редакторе.

Работа в Maple проходит в режиме сессии– пользователь вводит предложения (команды, выражения, процедуры), которые воспринимаются условно и обрабатываются Maple. Рабочее поле разделяется на три части:

1)область ввода - состоит из командных строк. Каждая командная строка начинается с символа > и имеет красный цвет;

2)область вывода - содержит результаты обработки введенных команд в виде аналитических выражений, графических объектов или сообщений об ошибке, результаты автоматически выравниваются по центру и окрашиваются в синий цвет;

3)область текстовых комментариевсодержит любую текстовую

информацию,

которая

может

пояснить

выполняемые

процедуры.

Текстовые

строки

не

воспринимаютсяMaple

и

никак

не

обрабатываются.

 

 

 

 

 

 

Для переключения командной строки в текстовую,

 

 

следует на Панели инструментов нажать

мышью

на

 

 

кнопку

 

 

 

 

 

 

 

Обратное переключение текстовой строки в командную осуществляется нажатием на Панели инструментов на кнопку

5

Обнаружив ошибку, Maple печатает в следующей строке сообщение о ней. Если ошибка синтаксическая, то первый неправильный символ отмечается символом “^”. Самый распространенный вид ошибки – отсутствие скобки; в этом случае после нажатия<Enter> курсор останавливается перед оператором вывода результата(;), в остальных – перед неверным символом.

Результаты работы могут быть сохранены в файлах различных форматов. По умолчанию все результаты работы(области ввода и вывода, комментарии) сохраняются в файле с расширением‘ms’. Если задан режим сохранения сессии(‘Save Kernel’), то в файле с расширением‘m’ сохранятся значения переменных и коды введенных процедур. При записи в файлы с другим расширением сохраняются только области ввода и тексты комментариев.

Оператор “;” (точка с запятой) – оператор вывода результата на рабочий лист. При его наличии после нажатия клавиши<Enter> (в каком бы месте строки не находился курсор) или щелчка левой кнопки мыши по

кнопке на панели инструментов проводятся вычисления и результат выводится на рабочий лист. Например:

> 8+2;

10

> x:=2;(x^3-x^2)/2;

x:= 2 2

> cos(Pi/2);

0

Последний, предпоследний и предпредпоследний результаты Maple сохраняет под именами %, %% и %%% соответственно. Действительно:

> %+%%+%%%;

4

Особое внимание необходимо обратить на, что система различает строчное и заглавное написание букв.

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

> z:=(x+3-sin(x^2));

z := x + 3 - sin( x2 )

> restart; z;

6

z

Maple выдает в качестве результата имя самой переменной, т. . идентификатору z не присвоено никакое значение.

Переменная Digits устанавливает количество значащих цифр (точность), которыми будет оперировать Maple при работе. По умолчанию значение этой переменной равно 10. Пример:

> evalf(Pi);

3.141592654

> Digits:=40:evalf(Pi);evalf(Pi,20);

3.14159265358979323846264338327950288419

3.1415926535897932385

Вычисление числовых выражений производится при помощи стандартной функции evalf(x,n), где x – числовое выражение, n – необязательный параметр, его значение определяется переменной Digits.

Комплексное число записывается в алгебраической форме z=x+iy, и в командной строке такая запись должна выглядеть так:

> z:=x+I*y;

z := x + y I

Если z=x+iy, то комплексно сопряженное ему выражениеw=z*=xiy можно найти с помощью команды conjugate(z):

> w:=conjugate(z);

w := ( x + y I )

Константы, арифметические операции и функции

Для записи выражений используются следующие математические константы:

Pi

число p

I

мнимая единица i

infinity

бесконечность

Gamma

константа Эйлера

true, false

логические константы, обозначающие

 

истинность и ложность высказывания

Знаки арифметических операций:

+” - сложение; “” - вычитание; “*” - умножение; “/” - деление; “^” , “**” - возведение в степень; “!” – факториал, “:=- присваивание. Пример:

> y:=4!/((x^2+5*x-12)**(x-5));

24

y :=

( x - 5 )

( x 2 + 5 x - 12 )

В частности при помощи оператора присваивания определяются функции. Самый простой способ задания функцииf:=<аналитическое выражение>. Но этот способ неудобен тем, что при таком заданииMaple игнорирует запись f(a) и значение f(a) приходится вычислять встроенной функцией подстановки subs(x=a,f) – подставить х=а в f:

> f:=x^2+2*x+1;

f := x2 + 2 x + 1

> subs(x=2,f);

9

Более длинный способ, не имеющий этого недостатка и называемый основным, выглядит так:

> f:=x->x^2+2*x+1;

f := x ® x2 + 2 x + 1

> f(2);

9

Присваивание отменяется при помощи оператораf:=’f’, а все

предыдущие присваивания – команда restart, как

мы уже оговаривали

выше. Пример:

 

> x:=5:x;

 

5

 

> x:='x':x;

 

x

 

Имеется также изящный способ задания функции, как процедуры

программирования, завершаемый нажатием <Enter>:

 

<имя функции>:=proc(переменные)

 

аналитическое выражение

 

end;

 

Например, введем функцию y = x2 + 2x +1

последним указанным

способом:

>y:=proc(x)

>x^2+2*x+1

>end;

y := proc (x) x^2 + 2´x + 1 end proc

> y(2);

9

7

8

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

1) if <условие> then <следствие> fi;

Если выполнено условие, то выполняется следствие, в противном случае ничего не выполняется.

2) if <условие1> then <следствие1>

| elif <условие2> then <следствие2>| | else <следствие3>|

end if;

Если выполнено условие1, то выполняется следствие1, в противном случае проверяется условие2. Если условие2 истинно, то выполняется следствие2, иначе выполняется следствие3. Необходимо отметить, что эта конструкция включает в себя первую, т.к. текст в прямых скобках можно опустить.

3) `if`( условие, следствие1, следствие2);

Если выполнено условие1, то выполняется следствие1, иначе – следствие2. Это задание условного оператора в компактном виде.

Пример. Пусть необходимо задать функцию:

ìx2 , x £ 0,

f (x )= ïí2x, 0<x £ 1,

ïî1, x > 1.

Конструкция вида 3) по ее описанию будет иметь вид: > f:=`if`(x<=0,x^2,`if`(x>1,1,2*x));

f := if( x £ 0, x 2, if( 1 < x, 1, 2 x ) )

> subs(x=0.5,f);

if( 0.5 £ 0, 0.25, if( 1 < 0.5, 1, 1.0 ) )

> evalf(%);

1.0

Тот же принцип конструкции вида3) используется во встроенной функции piecewise:

> f:=piecewise(x<=0,x^2,x<=1,2*x,x>1,1);

ì x2

x £ 0

ï

 

 

ï

2 x

x £ 1

f := ïí

ï

 

 

ï

1

1 < x

î

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

abs

модуль

Re

действительная часть

 

9

Im

мнимая часть

factorial

факториал

log[b](x)

логарифм по основанию b

log10

десятичный логарифм

sqrt

квадратный корень

exp

экспонента

argument

аргумент комплексного числа

binomial

биноминальный коэффициент

round

округление

trunc

отсечение дробной части

Тригонометрические

функции

записываются

в , формене

требующей детального описания: sin, cos, tan, sec, csc, cot, sinh, cosh, tanh,

sech, csch, coth, arcsin, arccos, arctan, arcsec, arccsc, arccot, arcsinh, arccosh,

arctanh, arcsech, arccsch, arccoth, arctan.

 

 

Если комплексное выражение очень сложное

или содержит

параметры, то команды Re(z)

и Im(z) не дают требуемого результата.

Получить вещественную и мнимую части комплексного

выраженияz

можно, если

использовать

команду

преобразования

комплексных

выражений evalc(z). Например:

> z:=ln(1-I*sqrt(3))^2;

z := ln( 1 - 3 I )2

> evalc(Re(z)); evalc(Im(z));

ln( 2 )2 - p2 9

2

-3 ln( 2 ) p

С полным списком математических функций, входящих в Maple, можно ознакомиться при помощи справки. Для этого достаточно набрать inifcn , выделить и нажать <F1>.

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

Для ввода греческих букв, математических символов, работы с матрицами и векторами также можно использовать специальные панели, которые вызываются последовательным раскрытием пунктов меню(View /

10

Palettes / Symbol Palette), (View / Palettes / Expression Palette), (View / Palettes / Matrix Palette), (View / Palettes / Vector Palette) соответственно.

Например, панель для ввода математических символов имеет вид:

 

 

Синтаксис команд

 

Когда

 

Maple запускается, нет ни одной команды, полностью

загруженной

в

память. Большая часть команд

имеют указатели их

нахождения,

и

при вызове они загружаются

автоматически. Другие

команды находятся в стандартной библиотеке и перед выполнением обязательно должны быть вызваны командойreadlib(command), где command – имя вызываемой команды. Остальная часть процедурMaple содержится в специальных библиотеках подпрограмм, называемых пакетами. Пакеты необходимо подгружать при каждом запуске файла с командами из этих библиотек. Имеется два способа вызова команды из пакета:

1.можно загрузить весь пакет командойwith(package) где package – имя пакета;

2.вызов какой-нибудь одной командыcommand из любого пакета package можно осуществить, если набрать команду в специальном формате:

>package[command](options);

где вначале записывается название пакетаpackage, из которого надо вызвать команду, а затем в квадратных скобках набирается имя самой команды command, и после чего в круглых скобках следуют параметры options данной команды.

 

Последовательности, списки

 

 

В

Maple

существует

несколько

способов

задания

последовательностей.

Для обозначения

последовательности чисел

можно

использовать символ “$”:

 

 

 

> x!$x=1..4;

1, 2, 6, 24

Эту же последовательность можно задать при помощи команды

seq:

> seq(x!,x=1..4);

 

1, 2, 6, 24

 

 

 

 

Бесконечные

последовательности

вводятся

в

виде

seq(f(i),i=1..infinity).

 

 

 

 

 

 

Большую роль в Maple играют списки – пронумерованные начиная

 

с единицы символы. Причем необходимо подчеркнуть разницу между

 

последовательностями и списками: последовательности не являются

 

пронумерованными и поэтому они не являются списками. Команда

 

нумерации отдается

посредством

заключения

последовательности

в

квадратные скобки:

 

 

 

 

 

 

> [seq(x!,x=1..4)];

[ 1, 2, 6, 24 ]

 

 

 

 

 

 

 

 

 

К элементам списка можно обращаться по номеру , указав его в

 

квадратных скобках:

 

 

 

 

 

 

> t:=[a,b,c,d,e,f];

t := [ a, b, c, d, e, f ]

 

 

 

> t[3];

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

Последовательность значений

f (n) , n =

 

можно получить

 

1, k

 

циклическим оператором for, используя его простейшую конструкцию:

 

 

for n from 1 | by h | to k do

 

 

 

 

 

f (n)

 

 

 

 

 

 

end do; (или od;)

by h | может

 

 

 

 

 

(указатель шага |

быть опущен,

по умолчанию

его

 

значение равно 1). Пример:

> for n from 1 by 3 to 8 do 3*n od;

3

12

21

Также можно использовать циклы “while”: > for n from 1 while n<=3 do 3*n od;

3

6

11

12

9

 

Алгебраические и тригонометрические преобразования

 

 

При

работе с

математическими

выражениями

почти

всегда

приходится выполнять множество таких операций, как раскрытие скобок,

 

разложение

на

множители, приведение

подобных

членов, которые

 

отнимают массу времени. Maple позволяет избежать этой рутинной работы

 

при помощи следующих основных команд этого класса:

 

 

 

в

 

collect(w,x)

 

 

 

приведение

 

подобных

 

членов

 

 

 

 

 

 

выражении w относительно переменной x

 

 

 

combine(w,x)

 

 

объединение членов

 

 

 

 

 

 

denom(d)

 

 

 

выделение знаменателя дроби d

 

 

 

 

expand(w)

 

 

 

раскрытие скобок выражения w

 

 

 

 

factor(w)

 

 

 

факторизация (разложение на множители)

 

 

 

 

 

 

 

выражения w

 

 

 

 

 

 

 

 

lhs(ur)

 

 

 

выделение левой части уравнения ur

 

 

 

normal(w)

 

 

 

нормализация (сокращение) дроби w

 

 

 

numer(w)

 

 

 

выделение числителя дроби d

 

 

 

 

 

op(i..j,e)

 

 

 

выделение подвыражения из выражения e

 

 

 

rhs(ur)

 

 

 

выделение правой части уравнения ur

 

 

 

simplify(w)

 

 

 

упрощение выражения w

 

 

 

 

 

subs(x=t,w)

 

 

 

подстановка

в

выражениеw

вместо

 

 

 

 

 

 

 

выражения х выражение t

 

 

 

 

 

subsop(eq1,…,eqN,expr)

 

замена некоторого операнда в выражении

 

 

 

 

 

 

 

expr

 

 

 

 

 

 

 

 

 

trigsub(w)

 

 

 

определение

всех

тригонометрических

 

 

 

 

 

 

 

эквивалентов выражения w

 

 

 

 

 

После

 

ключевого

 

слова

в скобках вводится аналитическое

выражение или его имя– идентификатор, а также параметры, часть из

 

которых не являются обязательными. Например,

для

функции collect

 

обязательно указать переменную, по степеням которой нужно привести

подобные. В simplify может

быть добавлена встроенная функцияassume

 

(принять) – необязательный

параметр,

задающая

условия, при которых

 

происходит упрощение. Установив курсор (или выделив слово) и нажав <F1>, можно получить справку, по которой можно ознакомиться с соответствующим списком параметров и подробными примерами, которые в некоторой степени компенсируют изложение содержимого на английском языке.

13

> simplify(3*x/sqrt(x^2),assume(x<0));

-3

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

>simplify((x^3-y^3)/(x-y));

x2 + y x + y2

>simplify((x-y)/(sqrt(x)+sqrt(y)));

x- y

x + y

Поэтому перед упрощением дробного выражения, содержащего степени с дробными показателями, необходимо при помощи функцииsubs (подстановка) перейти к алгебраическому выражению, содержащему целые показатели:

>f:=(x-y)/(sqrt(x)+sqrt(y));

x- y

f :=

x+ y

>g:=subs(sqrt(x)=a,x=a^2,sqrt(y)=b,y=b^2,f);

 

g :=

a2 - b2

 

 

> simplify(g);

a + b

 

 

 

a - b

 

 

 

 

 

Достаточно

хорошо

упрощает

алгебраические

выражения,

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

разложения в рядseries(выражение, переменная), применяемая

по

каждой переменной:

 

 

 

 

 

> (x-y)/(sqrt(x)+sqrt(y));

 

 

 

 

x- y

x+ y

> series(%,x);

-y + x

ВMaple заложены основные тригонометрические формулы,

например:

>expand(cos(2*x));

2cos ( x ) 2 - 1

>combine(sin(x)*sin(y));

14

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]