My-library.info
Все категории

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

На электронном книжном портале my-library.info можно читать бесплатно книги онлайн без регистрации, в том числе Владимир Дьяконов - Maple 9.5/10 в математике, физике и образовании. Жанр: Математика издательство -, год 2004. В онлайн доступе вы получите полную версию книги с кратким содержанием для ознакомления, сможете читать аннотацию к книге (предисловие), увидеть рецензии тех, кто произведение уже прочитал и их экспертное мнение о прочитанном.
Кроме того, в библиотеке онлайн my-library.info вы найдете много новинок, которые заслуживают вашего внимания.

Название:
Maple 9.5/10 в математике, физике и образовании
Издательство:
-
ISBN:
-
Год:
-
Дата добавления:
13 февраль 2019
Количество просмотров:
223
Текст:
Ознакомительная версия
Читать онлайн
Владимир Дьяконов - Maple 9.5/10 в математике, физике и образовании

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

Владимир Дьяконов - Maple 9.5/10 в математике, физике и образовании - описание и краткое содержание, автор Владимир Дьяконов, читайте бесплатно онлайн на сайте электронной библиотеки My-Library.Info
Книга является справочником и руководством пользователя по новейшим системам символьной (аналитической) математики — Maple 9.5 и Maple 10. Это признанные мировые лидеры в области аналитических вычислений, прошедшие серьезную сертификацию в этой области. Кратко описан интерфейс систем и подробно их обширные возможности в математике, физике и образовании. Особое внимание уделено технике практических вычислений и визуализации их результатов, а также решению дифференциальных уравнений различного типа. Описаны средства символьных и численных вычислений, графические и программные возможности систем, пакеты их расширения, маплеты и практика применения Maple в математических и физических расчетах. Прилагаемый CD-ROM содержит более 340 файлов с примерами вычислений. Для научно-технических работников, студентов и преподавателей университетов и вузов.

Maple 9.5/10 в математике, физике и образовании читать онлайн бесплатно

Maple 9.5/10 в математике, физике и образовании - читать книгу онлайн бесплатно, автор Владимир Дьяконов
Конец ознакомительного отрывкаКупить книгу

Ознакомительная версия.

<stateq> # выражения — тело процедуры

end; (или end:) # объявление конца процедуры

Эта форма охватывает все описанные выше частные формы и позволяет готовить самые сложные и надежно работающие процедуры. Читателям-программистам стоит детально изучить по справке возможности этой формы задания процедур, а также возможности конструкции use … in … end use.

10.4. Средства отладки программ

10.4.1. Средства контроля и отладки процедур

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

print(name);

где name — имя процедуры.

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

> interface(verboseproc=2,prettyprint=1,version);

1, 3, Classic Worksheet Interface, Maple 9.50, Windows, Aug 9 2004 Build ID 163356

Ее смысл детально будет пояснен ниже. Пока же отметим, что эта команда обеспечивает полный вывод текста процедур библиотеки. Встроенные в ядро процедуры, написанные не на Maple-языке, в полном тексте не представляются. Поясним это следующими примерами:

> print(evalf);

proc() option builtin, remember; 171 end proc

> print(erf);

proc(x::algebraic)

local Re_x, Im_x, sr, si, xr, xi;

option `Copyright (c) 1994 by the University of Waterloo. All rights reserved.`;

 if nargs <> 1 then error "expecting 1 argument, got %1", nargs

 elif type(x, 'complex(float)') then evalf('erf'(x))

 elif x = 0 then 0

 elif type(x, 'infinity') then

  if type(x, ' cx_infinity') then undefined + undefined*I

  elif type(x, 'undefined') then NumericTools:-ThrowUndefined(x)

  elif type(Re(x), 'infinity') then CopySign(1, Re(x))

  elif type(x, 'imaginary') then x

  else infinity + infinity*I

  end if

 elif type(x, 'undefined') then NumericTools:-ThrowUndefined(x, 'preserve' = 'axes')

 elif `Symbolic/Sign`(x) = -1 then -erf(-x)

 else 'erf'(x)

 end if

end proc

Здесь вначале выполнен вывод сокращенного листинга встроенной в ядро процедуры evalf, а затем выведен полный листинг процедуры вычисления функции ошибок erf. Эта функция имеет довольно короткую процедуру — многие важные функции и операторы задаются гораздо более сложными и большими процедурами. Их просмотр очень полезен читателям, которые занимаются программированием — листинги процедур на языке Maple являются наглядными примерами профессионально выполненных программ.

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

interface(arg1, arg2, …)

где аргументы задаются в виде равенств вида name=value и слов-указателей:

ansi          autoassign   echo        errorbreak  errorcursor

imaginaryunit indentamount labelling   labelwidth  latexwidth

longdelim     patchlevel   plotdevice  plotoptions plotoutput

postplot      preplot      prettyprint prompt      quiet

rtablesize    screenheight screenwidth showassumed verboseproc

version       warnlevel

Рассмотрим только некоторые, наиболее важные возможности этой функции.

Указание verboseproc=n задает степень детальности вывода листинга процедур. При n=0 текст не выводится, при n=1 выводится текст только заданных пользователем процедур, а при n=2 — всех процедур на Maple-языке. Пример этого был дан выше. Указание prettyprint=0 или 1 управляет выводом стандартных сообщений. Указание plotdevice=string управляет выводом графики, например plotdevice=gif указывает на то, что запись графиков в виде файлов будет происходить в формате .gif.

Одним из основных средств отладки процедур является функция трассировки trace(name). Детальность ее работы задается системной переменной printlevel (уровень вывода). При printlevel:=n (значение n=1 по умолчанию) выводится результат только непосредственно исполняемой функции или оператора. Для вывода информации о выполнении k-го уровня вложенности надо использовать значение этой переменной от 5*k до 5*(k+1). Так, при n от 1 до 5 выводятся результаты трассировки первого уровня, при n от 6 до 10 второго и т.д. Максимальное значение n — 100 обеспечивает трассировку по всем уровням вложенности процедуры name.

Следующий пример показывает осуществление трассировки для функции int(x^n,x):

> printlevel:=5;

printlevel := 5

> trace(int);

{--> enter trace, args = int

<-- exit trace (now at top level) = int}

                                    int

> int(x^n,x);

Действие функции трассировки отменяется командой untrace:

> untrace(int);

{--> enter untrace, args = int

<-- exit untrace (now at top level) = int}

                                      int

> int(х^n,x);

> enter int, args = x^n, x <-- exit int (row at top level) = x^(n+1)/(n+1)}

> printlevel:=1;

printlevel := 1

> int(x^n,x);

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

> 2/0;

Error, numeric exception: division by zero

> 2/4;

1/2

> 2/.3;

6.666666667

> lasterror;

"division by zero"

> traperror(3/4);

3/4

> lasterror;

lasterror

> traperror(5/0);

Error, numeric exeption: division by zero

> lasterror;

"numeric exception: division by zero"

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

10.4.2. Преобразование программных кодов

В пакете расширения CodeGenetarion определены функции преобразования Maple-кодов в коды других языков программирования:

> with(CodeGeneration);

Warning, the protected name Matlab has been redefined and unprotected

[C, Fortran, IntermediateCode, Java, LanguageDefinition, Matlab, Names, Save, Translate, VisualBasic]

Например, преобразовать Maple-коды процедуры mode в коды языка MATLAB можно следующим образом:

> Matlab(mode);

Warning, the function names {Im, Re} are not recognized in the target

language

function modcreturn = modc(z)

 modcreturn = (sqrt(Re(z) ^ 2 + Im(z) ^ 2));

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

10.4.3. Работа с отладчиком программ

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

Допустим, мы составили некоторую процедуру demo, вычисляющую сумму квадратов чисел (1^2+2^2+...+n^2):

> demo:=proc(n::integer) local y,i:

> у:=3:

> for i to n do y:=y+i^2 od

> end;

demo := proc(n::integer) local y,i; y: = 0; for i to n do у:=i^2 end do end proc

> demo(3);

14

Чтобы включить отладчик в работу, надо исполнить команду stopat:

> stopat(demo);

[demo]

> demo(3); demo:

 1* y := 0;

DBG>

Признаком, указывающим на работу отладчика, является изменение приглашения к вводу со знака > на DBG> (как нетрудно догадаться, DBG означает debugger). Теперь, подавая команды next (следующий), step (шаг) и stop (остановка), можно проследить выполнение процедуры:

DBG> next

0

demo:

 2 for i to n do

    ...

   end do

DBG> step

0

demo:

 3 y := y+i^2

DBG> step

1

demo:

 3 y := y+i^2

DB3> step

5

demo:

 3 y := y+i^2

DBG> step

14

В последнем случае процедура по шагам дошла до конца вычислений; на этом работа отладчика завершается сама собой.

Можно также вывести листинг процедуры с помощью команды showstat:

Ознакомительная версия.


Владимир Дьяконов читать все книги автора по порядку

Владимир Дьяконов - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки My-Library.Info.


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

Отзывы читателей о книге Maple 9.5/10 в математике, физике и образовании, автор: Владимир Дьяконов. Читайте комментарии и мнения людей о произведении.

Прокомментировать
Подтвердите что вы не робот:*
Подтвердите что вы не робот:*
Все материалы на сайте размещаются его пользователями.
Администратор сайта не несёт ответственности за действия пользователей сайта..
Вы можете направить вашу жалобу на почту librarybook.ru@gmail.com или заполнить форму обратной связи.