Записи с меткой «представлено»

Разложение в ряды Тейлора и Маклорена

Разложение в ряды Тейлора и Маклорена
Для разложения в ряд Тейлора используется функция taylor(expr, eq/nm, n). Здесь ехрr — разлагаемое в ряд выражение, eq/nm — равенство (в виде х=а) или имя переменной (например, х), n — необязательный параметр, указывающий на порядок разложения и представленный целым положительным числом (при отсутствии указания порядка он по умолчанию принимается равным 6). При задании eq/nm в виде х=а разложение производится относительно точки х =а. При указании eq/nm в виде просто имени переменной разложение ищется в окрестности нулевой точки, то есть фактически вычисляется ряд Маклорена.
Ниже представлены примеры применения функции taylor:

Не все выражения (функции) имеют разложение в ряд Тейлора. Ниже дан пример такого рода:
> taylor(l/x+x^2,x,5):
Error, does not have a taylor expansion, try seriesQ 
> series(l/x+x^2,x,10);
je-4*2 
> taylor(l/x+x*2,x=l,5);
2 +x — 1 + 2(x — 1f — (x — 1 )3 +(x — 1 )4 +O((x- 1 )5)
Здесь Maple 15 отказалась от вычисления ряда Тейлора в окрестности точки х = 0 (по умолчанию) и предложил воспользоваться функцией series. Однако эта функция просто повторяет исходное разложение. В то же время в окрестности точки х = 1 ряд Тейлора вычисляется.
Для разложения в ряд Тейлора функций нескольких переменных используется библиотечная функция mtaylor:
mtaylor(f. v)
mtaylorCf. v. n)
mtaylor(f. v, n, w)
Здесь f — алгебраическое выражение, v — список имен или равенств, n — необязательное число, задающее порядок разложения, w — необязательный список целых чисел, задающих «вес» каждой из переменных списка v. Эта функция должна вызываться из библиотеки Maple 15 с помощью команды readlib:

Для получения только коэффициента при k=м члене ряда Тейлора можно использовать функцию coeftayl (expr,var,k). Если ехрr — функция нескольких переменных, то k должен задаваться списком порядков коэффициентов.

Пример документа — разложение синуса в ряд
Полезно сочетать разложение выражений (функций) в ряд Тейлора с графической визуализацией такого разложения. далее…

Математический анализ

Математический анализ.

Вычисление сумм последовательностей
Основные формулы для вычисления сумм последовательностей
Применение систем символьной математики особенно эффективно при решении задач математического анализа. Maple 15 обладает богатейшей базой данных по формулам математического анализа и может полноценно заменять тома книг со справочными данными. При этом важно, что Maple не только «знает» многие формулы, но и может успешно использовать их при решении достаточно сложных задач в аналитическом (символьном) виде.
Начнем рассмотрение таких операций с вычисления сумм последовательностей. Вычисление суммы членов некоторой последовательности f(k) при изменении целочисленного индекса k от значения m до значения n с шагом +1, то есть выражения:

является достаточно распространенной операцией математического анализа. Для вычисляемой и инертной форм сумм последовательностей служат следующие функции:
sum(f.k):     sum(f,k=m..n);         sum(f,k=alpha): 
Sum(f.k);     Sum(f,k=m..n);         Sum(f,k=a1pha);
Здесь f — функция, задающая члены суммируемого ряда, k — индекс суммирования, тип — целочисленные пределы изменения k, alpha — RootOf-выражение. далее…

Операции ввода и вывода

Операции ввода и вывода
Считывание и запись программных модулей
В уроке 2 рассматривалась работа с файлами документов. Вводимые в текущий документ программные модули хранятся вместе с ним, так что при отказе от загрузки какого-либо документа все его программные блоки не могут использоваться в других документах. Кроме того, порой неудобно загружать объемный документ ради использования одного или нескольких модулей, например процедур. Поэтому в Maple 7 введены средства, позволяющие записывать нужные модули (в том числе результаты вычислений) на диск и считывать их в случае необходимости.
Для записи на диск используется оператор save:

  •  save filename — запись всех определений текущего файла под именем filename;
  • save name_l, name_2, …. name_k, filename — запись избранных модулей с именами name_l, name_2, …, name_k под именем filename.

Считывание имеющегося на диске файла filename осуществляется оператором read:
read <filename>
При считывании все имеющиеся в файле определения становятся доступными для рабочих документов Maple. При записи файлов отдельных определений используется специальный внутренний Maple-формат файлов. Для загрузки файлов типа *.m из стандартной библиотеки используется функция readlib. А для записи файлов в качестве библиотечных достаточно в имени filename оператора save указать расширение .т. Разумеется, можно считывать такие файлы и оператором read, указав в имени файла расширение .m:
> save my_proc,4myJib.nT: # запись файла пу_ргос и
 > # библиотечного файла my_lib.m:
> load ‘myjlib.m’: # считывание библиотечного файла 
> # myjib.m.
Создание своей библиотеки процедур
Если приведенные выше примеры составления процедур кажутся вам простыми, значит, вы неплохо знаете программирование и, скорее всего, уже имеете несколько полезных процедур, которые вы хотели бы сохранить — если не для потомков, то хотя бы для своей повседневной, работы. Сделать это в Maple 15 довольно просто. далее…

Ключ system

Ключ system
Этот ключ придает процедуре статус системной. У таких процедур таблица памяти может быть удалена. У обычных процедур таблица памяти не удаляется и входит в так называемый «мусорный ящик» (garbage collector).
Ключи operator и arrow
Эта пара ключей задает процедуре статус оператора в «стрелочной» нотации (->). Это достаточно пояснить следующими примерами:

 

Ключ trace
Ключ trace задает вывод отладочной информации:
> о:=ргос(х,у) option trace, arrow; x-sqrt(y) end:  
о := proc (x, y) option trace, arrow, x — sqrt(y) end proc
> o(4,2.);
{—> enter o, args = 4,2.
2.585786438
<— exit о (now at top level) = 2.585786438}
 2.585786438
 
Ключ copyright
Этот ключ защищает тело процедуры от просмотра. Это поясняют следующие два примера:
> o:=proc(x,y) x-sqrt(y) end: 
о := proc (x, у) х- sqii(y) end proc
> oo:=proc(x.y) option Copyright; x-sqrt(y) end;
oo := proc(x,y) … endproc 
> oo(4.2);
2.585786438
Нетрудно заметить, что во втором примере тело процедуры уже не просматривается. Для отмены защиты от просмотра можно использовать оператор interfасе(verboseproc=2).
Общая форма задания процедуры
Выше мы рассмотрели основные частные формы задания процедур. Все они могут быть объединены в общую форму задания процедуры:
name:-proc(<argseq>) # объявление процедуры
local<nseq>; # объявление локальных переменных 
g1oba1<nseq>; # объявление глобальных переменных 
options<nseq>; # объявление расширяющих ключей 
description<stringseq>; # объявление комментарий 
<stateq> # выражения — тело процедуры
end; (или end:) # объявление конца процедуры
Эта форма охватывает все описанные выше частные формы и позволяет готовить самые сложные и надежно работающие процедуры.
Средства контроля и отладки процедур
Большая часть функций и операторов системы Maple 15 реализована в виде процедур, написанных на Maple-языке программирования. Благодаря возможности их просмотра пользователь получает неисчерпаемый источник примеров программирования на этом языке. далее…

Обработка строк

Обработка строк
Имеется ряд функций для работы со строками. Из них наиболее важны следующие:

  •  lenght(str) — возвращает число символов, содержащихся в строке str;
  •  substring(str,a. .b) — возвращает подстроку строки str от а-го символа до b-го;
  •  cat(strl,str2….) — возвращает строку, полученную объединением строк strl, str2,… (альтернатива — оператор конкатенации в виде точки .);
  •  SearchText(s.str) — производит поиск подстроки s в строке str и при его успехе возвращает номер позиции s в строке str (при отсутствии s в str функция возвращает 0).

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

Эти функции дают достаточно средств для обработки данных строкового типа, которые можно применять не только для создания текстовых комментариев, но и для управления вычислительным процессом в программах.
Преобразование строки в математическое выражение
Часто возникает необходимость в интерактивном вводе математических выражений. Для ввода с запросом выражения используется функция readstat(promt), где promt — строка с текстовым комментарием. Пример ее применения дан ниже:

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

Обратите внимание на то, что функция evaln не смогла вычислить строковое выражение `2+3` поскольку оно не является числовым типом данных. Однако функция parse преобразовала это выражение в числовое, что и привело к его вычислению.

Операции с векторами

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

В этих примерах используется функция evalm(M), осуществляющая вычисление матрицы или вектора М.
 ПРИМЕЧАНИЕ 
Рекомендуется перед проведением символьных операций с векторами и матрицами очистить память от предшествующих определений с помощью команды restart. Если какие-то элементы векторов или матриц были ранее определены, это может привести к очень сильным искажениям вида конечных результатов. Очистка памяти устраняет возможность ошибок такого рода.
Операции над матрицами с численными элементами
Над матрицами с численными элементами можно выполнять разнообразные операции. Ниже приведены основные из них:
 
ПРИМЕЧАНИЕ
Рекомендуется внимательно изучить эти примеры и попробовать свои силы в реализации простых матричных операций. далее…