Warning: include(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/wp-cache-base.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 65

Warning: include_once(/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php): failed to open stream: No such file or directory in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82

Warning: include_once(): Failed opening '/var/www/iill7773/data/www/wiselab.ru/wp-content/plugins/wp-super-cache/ossdl-cdn.php' for inclusion (include_path='.:/opt/alt/php55/usr/share/pear:/opt/alt/php55/usr/share/php') in /home/u7426dd0/domains/wiselab.ru/public_html/wp-content/plugins/wp-super-cache/wp-cache.php on line 82
запись | Учебники

Записи с меткой «запись»

Решение уравнений в целочисленном виде — isolve

Решение уравнений в целочисленном виде — isolve
Иногда бывает нужен результат в форме только целых чисел. Для этого используется функция isolve(eqns, vans), дающая решение в виде целых чисел. Приведем примеры ее применения:
> iso1ve({2*x-5=3*y}):
{x = 4 + 3_Zl,y= + 2_Z1] 
> iso1ve(y^4-z^2*y^2-3*x*z*y*2-x^3*z);
Во втором из приведенных примеров в выводе появилась вспомогательная переменная %1, которая упрощает запись результата при текстовом формате его вывода (Character Notation). Напоминаем, что в стандартной математической нотации вспомогательная переменная вида %N не формируется. В этом случае упомянутый пример будет выглядеть следующим образом:

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

Функция msolve
Функция msolve(eqns,vars.m) или msolve(eqns,m) обеспечивает решение вида Z mod m (то есть при подстановке решения левая часть4 при делении нат дает остаток, равный правой части уравнения). При отсутствии решения возвращается объект NULL (пустой список). далее…

Решение систем линейных уравнений

Решение систем линейных уравнений
Для решения систем линейных уравнений созданы мощные матричные методы, которые будут описаны отдельно. Однако функция solve также может с успехом решать системы линейных уравнений. Такое решение в силу простоты записи функции может быть предпочтительным. Для решения система уравнений и перечень неизвестных задаются в виде множеств (см. приведенные ниже примеры). далее…

Интегралы с переменными пределами интегрирования

Интегралы с переменными пределами интегрирования
К интересному классу интегралов относятся определенные интегралы с переменными пределами интегрирования. Если обычный определенный интеграл представлен числом (или площадью в геометрической интерпретации), то интегралы с переменными пределами являются функциями этих пределов.
показано два примера задания простых определенных интегралов с переменным верхним пределом (сверху) и обоими пределами интегрирования (снизу).
На этом рисунке построены также графики подынтегральной функции (это наклонная прямая) и функции, которую задает интеграл.
Вычисление кратных интегралов
Функции int и Int могут использоваться для вычисления кратных интегралов, например двойных и тройных. Для этого функции записываются многократно:

Обратите внимание на нечеткую работу функции evalf в последнем примере. далее…

Двойные суммы

Двойные суммы
Могут встречаться множественные суммы по типу «сумма в сумме». Ограничимся приведением примера двойной суммы, имеющей аналитическое значение:

При конкретном значении N такую сумму нетрудно вычислить подстановкой: 
> subs( N = 100, %); 
  8670850
Как видно из приведенных примеров, средства вычисления сумм последовательностей Maple 15 позволяют  получать как численные, так и аналитические значения сумм, в том числе представляемые специальными математическими функциями.

Вычисление произведений членов последовательностей
Основные формулы для произведения членов последовательностей
Аналогичным образом для произведений членов f(i) некоторой последовательности, например вида:

используются следующие функции:
product(f,k);    product(f,k=m..n):    product (f,k=alpha):
Product(f,k);    Product(f,k=m..n):    Product(f,k=alpha).
Обозначения параметров этих функций и их назначение соответствуют приведенным для функций вычисления сумм. Это относится, в частности, и к применению одиночных кавычек для f и k.

Примеры вычисления произведений членов последовательностей
Примеры применения функций вычисления произведений даны ниже:

Как и в случае вычисления сумм, вычисление произведений возможно как в численной, так и в аналитической форме — разумеется, если таковая существует. Это показывает следующий пример:

Нетрудно понять, что при i, стремящемся к бесконечности, перемножаемые члены последовательности стремятся к нулю, а потому к нулю стремится и их произведение. Вопросы доказательства подобных утверждений находятся за рамками данного учебного курса, ибо он посвящен не математике как таковой, а конкретной программе для математики — Maple 15.
От перемены места сомножителей произведение меняется!
Хотя произведение не зависит от порядка расположения сомножителей, их перестановка в Maple 15 недопустима. далее…

Внешние вызовы

Внешние вызовы
Maple 15 имеет команду system(string), с помощью которой можно исполнить любую команду MS-DOS, записанную в виде строки string. Например, для форматирования гибкого диска из среды Maple 15 можно использовать стандартную команду MS-DOS:
> system(`format a:`);
На экране появится окно MS-DOS с начальным диалогом форматирования диска А. Это окно показано.
При работе в операционной системе Windows эта возможность практически бесполезна, поскольку форматирование диска с большими удобствами можно выполнить средствами Windows.
Внешние вызовы командой system куда более полезны для MS-DOS-реализаций Maple, которые кое-где используются и по сей день. Но поскольку данная книга посвящена самым современным Windows-реализациям системы Maple 15, более подробное рассмотрение операций внешних вызовов не имеет особого смысла.
Вызов внешних процедур, написанных на языке С
Maple 15 имеет средства для вызова внешних откомпилированных процедур, написанных на языке С. Такая необходимость для подавляющего числа пользователей Maple 15 вызывает большие сомнения в силу следующих причин:

  •  вся идеология системы Maple 15 основана на максимальном исключении программирования на других языках, помимо Maple-языка;
  •  язык С сложен для большинства пользователей Maple 7, которых трудно отнести к «путным» программистам;
  •  отладка комплекса Maple 15 + компилятор С (например, фирмы Microsoft) вряд ли под силу обычным пользователям, тем более что на практике такой комплекс реально не работает без кропотливой отладки.

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

Модули

Модули
Модули придают языку программирования Maple 15 некоторые свойства языков объектно-ориентированного программирования. Они служат для реализации абстрактного типа данных на основе инкапсуляции — объединения данных и процедур их обработки. Модули задаются ключевым словом module с пустыми скобками () и завершаются словами end module или просто end:
name := module()
export eseq; local Iseq; global gseq:
option optseq: description desc:
Тело модуля 
end module (или просто end)
Хотя структура модуля во многом напоминает структуру процедуры, включая объявление локальных и глобальных переменных, параметров и описаний, между ними есть существенная разница:

  •  модуль не имеет списка входных параметров; О в модуле могут размещаться данные;
  •  модули могут использоваться для создания пакетов процедур, доступ к которым обеспечивается командой with;
  •  модули имеют свойства в виде локальных переменных и методы в виде процедур интерфейса модулей;
  •  реализация абстрактных типов данных с помощью модулей скрыта от пользователя;
  •  модули могут содержать оператор export eseq, объявляющий экспортируемые переменные модуля;
  •  для доступа к экспортируемым переменным модуля может использоваться специальный оператор «:-» (двоеточие и минус);
  •  модули и процедуры могут вкладываться друг в друга без ограничения уровня вложенности;
  •  модули могут иметь специальные конструкторы объектов.

Следующий пример демонстрирует создание модуля pt, в котором заданы две операции (сложения plus и умножения times) и показан доступ к ним:
> pt:= module()
export plus, times;
plus := (a.b) -> a + b;
times := (a.b) -> a * b: end module:
pt := module () export plus, times; end module
 > pt:-p1us(3,5);
8
> pt:=times(3,7); 
21
Детальную информацию о модулях и о конструкторах объектов можно найти в справках по ним. Некоторые пакеты Maple 15 (в основном сравнительно новые) реализованы уже не в виде процедур, а в виде модулей (например, в виде модуля сделан пакет LinearAlgebra). В простейшем виде модули могут использоваться всеми пользователями системы Maple 15, но их серьезное применение (например, с целью создания полноценных пакетов Maple 15) требует серьезного знакомства с техникой объектно-ориентированного программирования. Такое знакомство выходит за рамки данной книги.

далее…