Как запустить расчет в maple
Научное программное обеспечение
Система компьютерной алгебры Maple
Система Maple позволяет пользователям решать математические задачи любой сложности. Она содержит более 5000 встроенных функций, покрывающих почти все разделы математики, включая математический анализ, линейную алгебру, дифференциальные уравнения, статистику, геометрию и многое другое. В Maple есть символьные, численные и гибридные алгоритмы, алгоритмическое ядро системы содержит методы недоступные другим платформам. Помимо этого, система обладает функционалом для создания 2D- и 3D- визуализации и анимации, и также предлагает пользователям эффективные алгоритмы для высокопроизводительных вычислений. Вне зависимости от того, делаете ли вы простой расчет или разрабатываете сложный алгоритм, иллюстрируете концепцию или создаете интерактивный технический документ, система Maple поможет легко справиться с работой. Она предлагает пользователю интеллектуальное контекстное меню, которое позволяет решать математические задачи исключительно с помощью мышки без знания синтаксиса системы. Maple основана на собственном языке программирования, ориентированном на математику, и предлагает специальные образовательные инструменты для преподавания всех основных математических курсов.
На протяжении многих версий система Maple позволяла пользователям импортировать данные из большого числа форматов, взаимодействовать с различными системами, например, САПР или MATLAB, а также генерировать код на всех современных языках программирования. На сегодняшний день Maple позволяет не только генерировать код, но и, например, запускать интерпретатор Python внутри системы, таким образом выполняя скрипты и получая результаты не покидая Maple. Новый пакет DeepLearning предлагает API для доступа к нейронным сетям ресурса TensorFlow.
Скачать бесплатную брошюру: Maple — неотъемлемый инструмент для математики.
Новые возможности Maple 2023
Новый релиз уникальной системы компьютерной алгебры Maple 2023 предлагает множество полезных функциональных возможностей как для новых пользователей, так и для тех, кто работает с системой уже долгие годы! Обновленное алгоритмическое ядро позволяет решать еще больше математических задач, включая улучшенные инструменты интегрирования, решения дифференциальных уравнений, инструменты теории графов, работу с единицами измерения, а также новую библиотеку примеров классической механики. Также в версии Maple 2023 улучшены инструменты программирования и визуализации, полностью переработан доступ ко встроенной документации и многое другое!
Maple 2023 представляет большое число новшеств, направленных на усиление математического ядра системы и расширение класса решаемых задач. Были усовершенствованы алгоритмы вычисления неопределенных интегралов и пределов, улучшена работа функций для решения интегральных уравнений и уравнений с комплексными корнями и др. Особое внимание было уделено преобразованиям и упрощениям тригонометрических выражений, а также дополнительно расширены возможности библиотек по работе с многогранниками.
Инструмент Plot Builder теперь позволяет создавать 2D и 3D графики с интерактивным управлением. Всего с помощью нескольких кликов мышкой можно задать диапазоны изменения параметров, а также выбрать интерактивные элементы управления и все это без знания специального синтаксиса внутреннего языка Maple. Помимо этого, была оптимизирована работа многих графиков с целью ускорения отрисовки и поддержки большего числа глобальных цветовых настроек. Отдельно следует отметить 14 новых цветовых схем, включая специальные схемы для людей с цветовой слепотой.
В Maple 2023 стало возможно открывать сразу несколько страниц документации в рамках одной сессии, каждая страница открывается в отдельной вкладке, как и другие рабочие документы, что существенно ускоряет поиск нужной информации и упрощает ее использование. Также был усовершенствован интерфейс разработки и написания программного кода, в котором теперь можно работать с любыми документами на языке Maple (.mpl), а также я программами, написанными на языке Python.
В новой версии появилась возможность использовать Maple в качестве вычислительного ядра при работе с языком программирования Python. В рамках сессии пользователи из Python могут получать доступ к функциям системы Maple, отправлять и получать данные, а также результаты вычислений. Также данный API позволяет создавать собственные библиотеки Maple с учетом архитектуры REST API, которые будут доступны через HTTP запросы.
Релиз Maple 2023 предоставляет новые интерактивные инструменты для обучения. Добавлены возможности получения пошаговых решений для задач выделения полного квадрата и дифференцирования неявно заданных функций. В новой библиотеке примеров из области классической механики присутствуют задачи на законы движения, законы сохранения, движения твердых тел и др. Новый инструмент Quiz Builder помогает генерировать интерактивные тесты для студентов на основе доступных примеров и шаблонов. В библиотеке интерактивных обучающих приложений появилось 44 новых примера, которые можно использовать для демонстрации или модификаций под собственные задачи.
В Maple 2023 улучшена производительность многих базовых команд, что существенно повышает эффективность работы практически в любой области знаний. Теперь намного быстрее работает функция solve при решении систем линейных уравнений, ускорены расчеты с базовыми единицами измерения, а также импорт данных в формате CSV, повышена эффективность функций библиотеки Thermophysical Data и многое другое.
Maple Learn — онлайн среда, предназначенная для преподавания математики в средней школе и на первых курсах университетов. Maple 2023 предлагает новые инструменты для создания интерактивных учебных материалов, которые могут использоваться как в Maple, так и в Maple Learn. Подробнее о Maple Learn.
Приложение Maple Calculator — бесплатное приложение для перевода математических задач из книг или тетрадей напрямую в Maple с использованием камеры смартфона. Это позволяет быстро исследовать задачу благодаря мощному вычислительному ядру Maple. Как самостоятельный инструмент, Calculator помогает студентам в работе над домашними заданиями — с помощью встроенного функционала они могут выполнять базовый анализ и проверять правильность своего решения, строить графики, вычислять интегралы и производные, выполнять матричный операции, решать системы уравнений и многое другое. Приложение доступно на iOS и Android на русском языке!
Помимо всего вышеперечисленного, в Maple 2023 также представлено множество других модификаций и нововведений, включая обновления библиотек физики и обработки сигналов, модуля квантовой химии и многое другое!
Как посчитать интеграл в maple
MAple 13 не может посчитать инетграл просто выдает в ответ сам интеграл , но Вольфрам считает!» Почему.
Очень надо посчитать но 400 значений в вольфраме это нереально .
2 ответа к вопросу “MAple 13 не может посчитать инетграл просто выдает в ответ сам интеграл , но Вольфрам считает!» Почему. ”
Это всегда так было — мапловское ядро интегралы считает чуть хуже, чем вольфрамовское, зато решает дифференциальные уравнения чуть лучше. Если Математика считает, ею и пользуйтесь. Там тоже циклы есть и все, что полагается, — принципиального отличия от мапла по программируемости нет.
Вычисление интегралов/суммы в Maple, Mathcad и др.
Есть интегралы, где интегрирование производится по одной переменной, а под интегралом есть еще 2 переменные, которые надо при интегрировании рассматривать как константы. Как такие интегралы взять в Maple или Mathcad или wolfram mathematica или Microsoft Maths? Или хоть где-то?
Пример
f(x,y)=интеграл от — бесконечности до бесконечности от cos(x*y*z) d z
Когда забиваешь его, Mathcad пишет на x и y — this variable is undefined.
cos(x*y*z) — это лишь пример. на самом деле там повеселее всё)
Отображение интегралов в MathCad`е
Здравствуйте, у меня есть задание в котором не обойтись без интегрирования. Часть примера работы.
Решение интегралов в Mathcad методом центральных прямоугольников и трапеций
Просьба объяснить или дать ссылку по решению интегралов в маткаде методом центральных.
Запуск программ для Windows (Mathcad, Maple) на Linux Lite
Нужно запустить на Linux Lite следующие программы: Matchad и Maple, Wine вроде как запустит Mathcad.
вычисление интегралов
Здравствуйте уважаемые программисты! мне очень нужна помощь по написанию программы на с++/с#. у.
Сообщение от lkezmanl
Есть интегралы, где интегрирование производится по одной переменной, а под интегралом есть еще 2 переменные, которые надо при интегрировании рассматривать как константы. Как такие интегралы взять в Maple или Mathcad или wolfram mathematica или Microsoft Maths? Или хоть где-то?
Пример
f(x,y)=интеграл от — бесконечности до бесконечности от cos(x*y*z) d z
Когда забиваешь его, Mathcad пишет на x и y — this variable is undefined.
cos(x*y*z) — это лишь пример. на самом деле там повеселее всё)
Когда Вы решили интеграл, то программа считает результат функцией нескольких переменных. Соответственно что бы получить числовой результат необходимо определить эти самые переменные.
Интегрирование в Maple.
Компьютеры, несомненно, весьма полезны для численного интегрирования, т.е. для нахождения определенных интегралов. Системы символьных вычислений позволяют выполнять и формальное интегрирование, т.е. нахождение интегралов в виде формул. Заметим сразу, что алгоритмы решения дифференциальных уравнений в основном используют теорию интегрирования. Все эти вычисления, которые невозможно выполнить численно, составляют одно из главных достижений компьютерной алгебры.
Если формальное дифференцирование было реализовано в 1953 году, то первые шаги в области формального интегрирования были сделаны только в 1961 году [см. Davenport 1987]. Чем обусловлена эта задержка?
Причину следует искать в существенном различии между этими операциями. В отличии от алгоритмической процедуры дифференцирования, интегрирование выглядит случайным набором правил. Кажется, что существует только одно общее правило:
«Интеграл от суммы функций равен сумме интегралов слагаемых» (да и это правило не всегда справедливо, если мы фиксируем пространства, которым должны принадлежать функции). Для операций, отличных от сложения и вычитания, общих правил не существует. Например, из того, что мы знаем, как интегрировать
x2 и ex, вовсе не следует, что мы знаем, как интегрировать их композицию. Таким образом, обычно все мы изучаем несколько «методов», таких, как интегрирование по частям, интегрирование с помощью подстановки и т.д. Кроме того, априори мы не знаем, какой метод или комбинация методов сработает для данного интеграла. Так что первые шаги основывались на той же эвристике, которую использует человек. Однако, этот способ был весьма скоро вытеснен (1967-1971) истинно алгоритмическими методами. К настоящему времени существует развитая теория интегрирования, и мы можем дать только совсем краткий ее обзор.
Практически наилучший алгоритм интегрирования на 1997 год реализован в системе Macsyma , решающей 95% примеров из справочника Камке.
Поскольку дифференцирование, несомненно, проще, чем интегрирование, имеет смысл переформулировать проблему интегрирования как «обратную задачу» для дифференцирования, т.е. для данной функции f вместо отыскания ее интеграла g мы ищем функцию g , такую, что g’=f . Определение: Для двух данных классов функций F и G задача интегрирования из F в G состоит в том, чтобы найти алгоритм, который для любого элемента f из F либо выдает элемент g из G , такой, что f=g’ , либо доказывает, что в G не существует такого элемента g , что f=g’ .
В 1968 году Ричардсон доказал теорему, утверждающую, что проблема интегрирования для F=G=Q неразрешима, где Q поле рациональных функций от функций i, Pi , exp , log , и || -абсолютная величина. Но это не должно разочаровывать, в действительности в этом поле не может быть решена уже проблема определения, является ли данная константа нулем (и, как следствие, не может быть реализован даже алгоритм деления). Реально, вводят понятия неопределимой константы, поля эффективных констант и множество других достаточно сложных конструкций.
Только в 1989 году удалось доказать, что интегрирование является алгоритмической процедурой для весьма ограниченного класса функций. Однако, остается еще задача о построении достаточно эффективных алгоритмов интегрирования. Фактически эта задача остается на переднем крае и математики и возможностей систем компьютерной алгебры.
Задачу интегрирования можно рассматривать как решение простейшего дифференциального уравнения diff(y,x)=f . Замечания, сделанные выше об алгоритме интегрирования остаются справедливыми и для алгоритма решения дифференциальных уравнений. Например, рассмотрим уравнение y’ + f y = g . Хорошо известен метод решения уравнения данного типа — надо воспользоваться подстановкой y = z exp ( — Int ( f,x) ) .
Получаем g = y’ + f y = z’ exp( — Int f ) таким образом решение равно y = exp ( -Int f ) Int g exp ( Int f ) . Здесь Int обозначает интеграл по х.
В общем случае этот метод решения алгоритмически неудовлетворителен, поскольку алгоритм интегрирования переформулирует этот интеграл опять в виде уравнения, с которого мы начинали.
В силу этого, задача опять формулируется следующим образом: для двух данных функций f и g (какого-то фиксированного класса) найти функцию y , такую что y’ + f y = g или доказать, что такой функции в данном классе нет.
Современные алгоритмы решения дифференциальных уравнений достаточно сложны, и, вероятно, наиболее полно реализованны в системе Macsyma, Maple и Mathematica .
Решения дифференциального уравнения в конечном виде, если они существуют, очень полезны. Но у большинства дифференциальных уравнений в физике таких решений нет. Именно поэтому в системах символьных вычислений реализованны алгоритмы не только численного решения уравнений, но и алгоритмы решений в виде рядов (например, асимптотические решения). Математическое обоснование существующих алгоритмов является целой отдельной областью математики, которую мы не будем затрагивать в данной статье.
Встроенные команды интегрирования Maple.
В стандартной (загруженной по умолчанию) библиотеке находяться процедуры
Int ( expr, options ) и int ( expr,options ) , т.е. символ и значение.
Синтаксис и опции можно найти в справочнике int.
Пример 1 (определенные и неопределенные интегралы)
f:=sin(x):
g:=Int(f,x);
value(g);
int(f,x);
Таким образом, мы видим. что обозначения максимально приближены к обычной математической записи. Для вычисления определенного интеграла надо дополнительно указать пределы интегрирования:
f:=x*exp(x):
g:=Int(f,x=0..1);
value(g);
int(f,x=0..1);
Рассмотрим более сложные интегралы
f:=sin(x^3):
g:=int(f,x=0..Pi);
h:=evalf(g);
или
g:=Int(x/(x^3-x^2+1),x);
value(g);
Иногда, при интегрировании получаются многозначные функции, при этом, по умолчанию, Maple использует только одно значение. Список многозначных функций и их принципиальные ветви можно посмотреть следующей командой
restart: readlib(branches):
branches(ln);
Рассмотрим интегралы с параметрами
f:=exp(-a*x)*ln(x)*sqrt(x);
int(f,x=0..infinity);
Как видим, этот интеграл неопределен при всех значениях параметра. Сделаем дополнительные предположения
assume(a>0): int(f,x=0..infinity);
Полученные при интегрировании эллиптические функции, зависящие от радикалов можно упростить
answer := int( 1/sqrt( sin(x) ), x=0..Pi/2 );
radnormal(answer);
Интегралы, которые не выражаются через алгебраические функции, можно представить как ряд
int(exp(x^3), x );
series(%, x=0);
В общем случае синтаксис для численного интегрирования имеет вид
evalf ( Int ( f, x = a..b , digits , flag ) ),
где digits- точность вычисления, и flag- код численного метода, см. int[numerical]
int( exp(v-v^2/2)/(1+1/2*exp(v)), v = -infinity..infinity );
evalf(«, 20);
Здесь digits равно 20. Другой пример — интегрирование гамма функции с использованием алгоритма Ньютона-Котеса:
evalf(Int(1/GAMMA(x), x = 0..2, 10, _NCrule));
Более сложные опции позволяют вычислять главное значение интеграла и реализуют некоторые дополнительные возможности
int(1/x^3, x=-1..2, ‘CauchyPrincipalValue’);
int( 1/(x+a)^2, x=0..2, ‘continuous’ );
В принципе, различные эвристические методы, такие как интегрирование по частям и замены переменных, не используются явно, например
Пример 2 (интегрирование по частям и другие методы)
Рассмотрим несколько интегралов, которые берутся по частям или с использованием различных замен переменных
int(x*ln(x),x);
int(x*sin(x^2),x);
Int(x^2/(sqrt(1-x^2))^(3/2),x):
value(«);
Тем не менее, для обучения, мы можем использовать подобные команды явно. Эти команды содержатся в пакете student
Пример 3 (интегрирование с пакетом student)
Для начала мы очистим рабочую память и загрузим данный пакет.
restart:
with(student);
При загрузке любого пакета Maple выдает список всех загружаемых команд.
f:=Int(sqrt(1-x^2),x=a..b);
g:=changevar(x=sin(u),f,u);
Здесь мы вводим новую независимую переменную интегрирования u, связанную со старой переменной уравнением x=sin(u) (пределы интегрирования изменились автоматически!) Посмотрим на результат
value(g);
В двойных интегралах интегралах это позволяет, например, перейти к полярным координатам:
Интегрирование по частям:
напомним, что правило интегрирования по частям записывается следующим образом
f:=Int (u,v)=u*v-Int(v,u);
Синтаксис данной команды intparts(f,u)
a:=Int(x^2*exp(x),x);
Проинтегрируем по частям
b:=intparts(a,x^2);
проинтегрируем по частям второй раз
c:=intparts(b,2*x);
и получим результат
d:=value(c);
Другие полезные команды для интегрирования из данного пакета
integrand(Int(h(x),x)); и
Doubleint(h(x,y),x,y);
Tripleint(h,x=1..n,y=2..4,z=w..u);
Кроме этого, в пакете student реализовано несколько численных методов: leftbox, leftsum , rightbox, rightsum, middlebox, middlesum simpson, trapezoid.
Синтаксис для всех команд одинаков, рассмотрим только один пример
Пример 4 (численное интегрирование)
restart: with(student):
f:=x^5*ln(x);
Явное интегрирование данной функции можно посмотреть в справочнике, мы же сравним численные значения
ex:=evalf(int(f,x=1..3));
s:=evalf(simpson(f,x=1..3,16));
t:=evalf(trapezoid(f,x=1..3,16));
ls:=evalf(leftsum(f,x=1..3,16));
Покажем это на рисунке
leftbox(f,x=1..3,16,color=red,shading=BLUE);
Аналогично и для других команд
rs:=evalf(rightsum(f,x=1..3,16));
rightbox(f,x=1..3,16,color=red,shading=BLUE); и
ms:=evalf(middletsum(f,x=1..3,16)));
middlebox(f,x=1..3,16,color=red,shading=BLUE);
Как говорил Козьма Прутков:-«Нельзя объять необятное». В силу этого, тяжело загруженный универсальностью грузовик Maple иногда довольно долго и мучительно пробирается по стандартным наезженым дорогам математики. В этом случае полезно пожертвовать универсальностью, вспомнить что Maple является языком программирования и написать свою собственную программу. Приведем пример:
Пример 5 (численное интегрирование — метод Гаусса)
Напомним, что интегрирование с помощью замены переменной приводится к интегрированию на отрезке [0,1], а затем используется квадратурная формула Гаусса. Мы зададим руками соответствующие абциссы и веса (8 или 16 точек) и перепишем стандартную программу в виде
restart:
dg2:=proc(f,a,b,tol)
local X,W,co,aa,bb,c1,c2,s8,s16,i,u,res,ndig;
W:=[.1012285362903763,
.2223810344533745,
.3137066458778873,
.3626837833783619,
.02715245941175409,
.06225352393864789,
.09515851168249278,
.1246289712555339,
.1495959888165767,
.1691565193950025,
.1826034150449236,
.1894506104550685]:
X:=[.9602898564975362,
.7966664774136267,
.5255324099163289,
.1834346424956498,
.9894009349916499,
.9445750230732326,
.8656312023878317,
.7554044083550030,
.6178762444026437,
.4580167776572274,
.2816035507792589,
.09501250983763744]:
if b=a then RETURN(0) fi;
res:=0: ndig:=16; #Заметим если ndig>16 требуются совсем другие X,W!
co:=evalf(0.005/(b-a),ndig);
bb:=a;
aa:=bb;
bb:=b;
while true do
c1:=(bb+aa)/2;
c2:=(bb-aa)/2;
if evalf(1+abs(co*c2),ndig) = evalf(1,ndig) then
RETURN(`Exceeded accuracy limit`,res);
fi;
s8:=0;
for i from 1 to 4 do
u:=evalf(c2*X[i],ndig);
s8:=evalf(s8+W[i]*(f(c1+u)+f(c1-u)),ndig);
od:
s8:=evalf(c2*s8,ndig);
s16:=0;
for i from 5 to 12 do
u:=evalf(c2*X[i],ndig);
s16:=evalf(s16+W[i]*(f(c1+u)+f(c1-u)),ndig);
od:
s16:=evalf(c2*s16,ndig);
then break fi;
bb:=c1;
od:
res:=evalf(res+s16,ndig);
od:
res;
end:
Мы не будем вдаваться в подробности численного интегрирования. На данном этапе нашей целью является сравнение скорости работы данной программы и встроеной универсальной Maple-программы. Для примера проинтегрируем функцию
fun:=x->x^31;
В переведенной нами программе последний аргумент задает точность вычислений
dg2(fun,0,5,0.000000000001);
Теперь сравним с точным значением
evalf(%-(5^32)/32,16); и посмотрим как быстро произведет вычисления Maple-программа. Для оценки времени выполнения программ воспользуемся встроенной функцией Maple: time(e), где е — некоторое выражение или функция.
time(evalf(Int(fun(x),x=0..5),20));
time(dg2(sin,0,19*Pi,0.001));
Если у Вас не суперкомпьютер, то Вы сами убедитесь в медлитольности универсальной Maple-программы. На моем собственном компьютере приведенная выше программа работает почти в 6 раз быстрее стандартной программы Maple.
Посмотрим еще несколько примеров и убедимся как от задаваемой точности зависит скорость работы и приближение к точному значению
dg2(f,1,50,0.1);
evalf(%-ln(50),16);
dg2(f,1,50,0.001);
evalf(%-ln(50),16);
dg2(f,1,50,0.0001);
evalf(%-ln(50),16);
dg2(f,1,50,0.000001);
evalf(%-ln(50),16);
dg2(x->1/x,1,50,0.0000000000000001);
evalf(«-ln(50),16);
Двойные и тройные интегралы в Maple. Для примера рассмотрим несколько задач с первого курса.
Пример 6 (метод Монте-Карло для вычисления определенных интегралов) .
В данном примере мы рассмотрим на простейшем примере основную идею метода Монте-Карло.
Рассмотрим единичную окружность внутри квадрата с вершинами (-1,-1), (1,-1), (1,1), (-1,1)
restart:
with(plots):
P1 := polygonplot([[-1,-1],[1,-1],[1,1],[-1,1]],color=green):
P2 := polarplot(1,color=gold):
display([P1,P2],scaling=constrained);
Предположим, что это мишень в которую мы стреляем. Некоторые наши стрелы попадут внутрь круга, некоторые остануться вне круга. Далее мы можем преположить, что отношение числа стрел попавших внутрь круга NR к общему числу выпущенных нами стрел N будет пропорционально отношению площадей круга и квадрата. Так как площадь квадрата нам известна S=4, то можно оценить площадь круга как S=4*NR/N.
Грубо говоря, в приведенном выше рассуждении содержиться основная идея метода Монте-Карло.
Посмотрим теперь как эту идею можно воплотить с помощью Maple. Итак, мы стреляем и попадаем в точку с координатами (x,y) которые создает генератор случайных чисел
x := evalf(rand(10001)/5000-1):
y := evalf(rand(10001)/5000-1):
После тысячи выстрелов
N := 1000;
NR := 0;
подсчитаем количество попаданий внутрь круга
for i from 1 to N do
od:
и вычислим приближение к площади единичного круга, равной числу
pi=3,14;
4*evalf(NR/N);
Конечно, увеличивая число выстрелов мы получим более точное приближение.
Найти объем тела ограниченного поверхностями
f=x^2+2y^2 — снизу, и
g=6-2x^2-y^2 — сверху,
restart:
with(plots):
f:=x^2/8+y^2/4: g:=1-x^2/4-y^2/8:
surf:=plot3d( ,x=0..1.2,y=0..1.2,lightmodel=light1):
planes:=plot3d( ,u=0..1,z=0..1, grid=[20,20],orientation=[-65,67],style=patch,lightmodel=light1,axes=boxed):
Выведем их на экран
Полный объем единичного куба равен V=1. Генератором случайных чисел зададим координаты внутри куба
X :=proc() evalf(rand(10000)/9999): end;
Y :=proc() evalf(rand(10000)/9999): end;
Z :=proc() evalf(rand(10000)/9999): end;
Теперь сделам тысячу выстрелов
N := 1000:
NR := 0:
и подсчитаем число попаданий
for i from 1 to N do
if Z() > (X()^2/8+Y()^2/4) then
fi:
font color=»#ff0000″>od:
Итого, объем тела примерно равен
evalf(NR/N);
Теперь сравним с точным значением
Int(Int(g-f,y=0..1),x=0..1):
evalf(value(%));
Примеры решения задач на интегрирование
Задача 1. Найти площадь ограниченную параболой x=2y^2 и линией x=y+3.
Нарисуем эту область
restart:
x1:=2*y^2: x2:=y+3:
plot([x1,x2],y=-2..2);
Найдем точки пересечения кривых (пределы интегрирования)
s:=Int(Int(1,x=2*y^2..y+3),y=-1..3/2);
value(s);
Задача 2. Найти среднее значение функции f=y ch (x) над областью, ограниченной кривыми x=0 , y=2 , y=sqrt(x).
Посмотрим на эту область
restart:
s:=Int(Int(y*cosh(x),x=0..y^2),y=0..2)/Int(Int(1,x=0..y^2),y=0..2);
value(s); evalf(%);
Задача 3. Найти объем тела ограниченного поверхностями f=x^2+2y^2 — сверху, и g=6-2x^2-y^2 — снизу, над кругом единичного радиуса x^2+y^2
Нам необходимо найти объем следующей фигуры.
restart: with(plots):
f:=x^2+2*y^2:
g:=6-2*x^2-y^2:
surf:=plot3d( ,x=-1.2..1.2,y=-1.2..1.2):
и цилиндр единичного радиуса
cyl:=plot3d([cos(t),sin(t),z],t=0..2*Pi,z=0..6):
Выведем их на экран
display3d( );
Чтобы найти объем данной фигуры необходимо вычислить интеграл
Int(Int(g-f,y=-sqrt(1-x^2)..sqrt(1-x^2)),x=-1..1);
value(%);
Задача 4. Используя сферические координаты найти объем тела, ограниченного сферой с x^2+y^2+z^2=4вырезанным в ней цилиндром x^2+y^2=1.
В сферических координатах сфера задается как r=2, цилиндр как r sin(f)=1 . Нам надо выразить декартовы координаты x,y,z через сферические, подставив данные значения r для сферы и для цилиндра
restart: with(plots):
rs:=2; rc:=1/sin(phi);
x:=sin(phi)*cos(theta);
y:=sin(phi)*sin(theta);
z:=cos(phi);
Зададим точку на сфере и цилиндре
sf:=[rs*x,rs*y,rs*z]:
cyl:=[rc*x,rc*y,2*phi-Pi]:
Нарисуем сферу и цилиндр
plot3d( ,theta=0..2*Pi,phi=0..Pi);
Вычислим пределы интегрирования, решив систему уравнений
_EnvAllSolutions := true:
здесь B1 и Z1 целые числа. Таким образом, наша фигура может быть получена вращением следующего сегмента вокруг оси Z
«Применение пакета Mathematica для вычисления интегралов»

1 чел. помогло.
Выпускная работа по
«Основам информационных технологий»
Магистрант кафедры теории функций ММФ БГУ
Бойко Евгений Вячеславович
Кандидат физико-математических наук,
доцент Долгополова О.Б.
Старший преподаватель Кожич Павел Павлович
ОГЛАВЛЕНИЕ
Список обозначений ко всей выпускной работе 3
Реферат на тему «Применение пакета Mathematica для вычисления интегралов» 4
Глава 1. Обзор литературы 5
^ Глава 2. Основные возможности пакета Mathematica 6
Глава 3. Применение пакета Mathematica для вычисления интегралов 12
3.1. Функция z-преобразований 14
3.2. Вычисление несобственных интегралов 15
3.3. Интеграл от комплексного переменного 19
3.4. Вычисление интеграла с помощью теоремы о вычетах. 22
^ Глава 4. Анализ полученных результатов 25
Предметный указатель 28
Список литературы к реферату 29
Интернет ресурсы 30
Граф научных интересов 32
Тестовые вопросы по Основам информационных технологий 33
Презентация магистерской диссертации 34
Список использованной литературы 35
Приложение А 36
Список обозначений ко всей выпускной работе
ИТ Информационные технологии
ОДУ Обыкновенные дифференциальные уравнения
Реферат на тему «Применение пакета Mathematica для вычисления интегралов»
Введение
Сегодня компьютеры берут на себя огромную долю вычислительной и аналитической нагрузки современного математика. Поэтому перед сегодняшними исследователями стоят и, главное, представляются разрешимыми совсем другие задачи, нежели пол столетия назад.
Благодаря огромной мощи компьютеров становится возможным моделирование и изучение сложных и динамичных систем, которые возникают при изучении космоса, поиске новых источников энергии, создании новых технических изобретений и многих других проблем, затрагивающих сферу научно-технического прогресса. Решение любой задачи подобного рода можно свести к выполнению следующей совокупности действий:
математическое моделирование системы;
построение вычислительного алгоритма;
сбор и анализ полученных результатов.
Использование компьютерных математических пакетов позволяет:
расширить диапазон реальных приложений;
сочетать профессиональную направленность, научность, системность, наглядность, интерактивность;
для наглядного анализа строить графики сложных функций и поверхностей, с помощью которых, например, оцениваются решения ОДУ, что существенно облегчает их анализ;
мгновенно обмениваться информацией с человеком, физический контакт с которым невозможен, или трудно осуществим;
исследовать более сложные модели, так как громоздкие вычисления можно осуществить с помощью соответствующих компьютерных систем.
Данный реферат посвящен использованию информационных технологий для вычисления различных видов интегралов на примере пакета Mathematica версии 5.2. Как пример для иллюстрации выбрано вычисление интегралов через вычеты, расчет несобственных интегралов, интегралов в комплексной плоскости, и сравнение полученных результатов с аналитическим решением, которое строит Mathematica.
^
Глава 1. Обзор литературы
Основным литературным источником для изучения функциональных возможностей пакета Mathematica, как ни странно, является встроенная справочная система. Она обширна по своему содержанию, наглядна, поскольку в ней демонстрируются множество примеров эффективного использования пакета и удобна, поскольку обеспечивает пользователю удобный поиск и интеграцию с текущими рабочими задачами. Однако произвести изучение самостоятельно, что, естественно, возможно лишь при знании одного из языков локализации пакета достаточно сложно, не представляя всей той полной гаммы функций и задач, с которыми может справиться пакет.
Когда пользователь решает начать использование пакета, ему необходимы набор минимальных, общих знаний о том, как пользоваться пакетам, как вводить данные, как получать результаты, какое окружение необходимо для стабильной работы пакета и какие есть у самого пакета системные требования. Здесь стоит выделить работу В. З. Аладьева и М. Л. Шишакова [1] по введению в среду пакета, его инсталляции, разбор основных компонентов, особенности использования и основам применения. Ещё необходимо также выделить тему 1 и тему 2 из работы Л. Л. Голубевой, А. Э. Малевича, Н.Л. Щеголовой [2], которые освещают основные логические компоненты среды и гарантирует плодотворное знакомство с пакетом, а также с такими базовым объектами как:
программирование и функциональное программирование;
Вычисление интегралов – это одна из наиболее часто встречающихся математических операций. Умение правильно их выполнять – это то, что нужно практически любому математику в той или иной форме для эффективной научной деятельности.
Работа содержит многочисленные примеры, показывающие, что при объединении теории функции комплексного переменного и математического анализа с возможностями пакета Mathematica удаётся легко вычислить различные интегралы.
^
Глава 2. Основные возможности пакета Mathematica
Немного истории для тех, кто недостаточно хорошо знаком с рассматри-ваемым в данной работе средой символьных вычислений Mathematica.
Она разработана компанией Wolfram Research Inc, основанной известным математиком и физиком Стефаном Вольфрамом, одним из создателей теории сложных систем. Первая версия программы, появившаяся в 1988 г, стала новым словом в автоматизации математических расчетов.
Mathematica отличается охватом широкого круга задач, так как ее разработчики задались целью объединить все известные математические методы, использующиеся для решения научных задач, в унифицированном и согласованном виде, включая аналитические и численные расчеты.
За основу был взят специально разработанный язык символьного программирования, который способен оперировать очень широким спектром различных объектов с применением небольшого числа базисных конструкций. Однако программа не приобрела большой популярности из-за того, что ее сложно было освоить и невозможно работать без использования объемной документации. Только в 1991 г., после выхода в свет второй версии, в которой разработчики устранили многие ошибки предыдущей версии, а также применили более дружелюбный интерфейс и включили подсказки по встроенным функциям, программа начала быстро завоевывать популярность. А к моменту выхода Mathematica 3.0 уже было зарегистрировано более миллиона постоянных пользователей программы.
Программа состоит из двух частей — ядра, которое, собственно, и производит вычисления, выполняя заданные команды, и интерфейсного процессора, который определяет внешнее оформление и характер взаимодействия с пользователем и системой. Основной рабочий документ программы — тетрадь, в которой пользователь записывает все выкладки. Вид рабочей тетради на экране монитора зависит от интерфейсного процессора, реализация которого для разных платформ несколько отличается.
Пользовательский интерфейс программы Mathematica 5.2 сначала кажется несколько примитивным: инструментальная панель — это просто строка меню, а отдельное окно документа выглядит как бы подвешенным. Кроме того, на инструментальной панели отсутствуют кнопки для выполнения часто повторяемых операций, которые были в предыдущей версии.
Однако впечатление примитивности интерфейса сразу же исчезает, когда выясняется, что можно подключать настраиваемые кнопочные палитры, которых в программе имеется больше десятка. С их помощью можно выполнять различные функции, а часть кнопок соответствует специальным символам. Всего в программе более 700 математических, языковых и других символов. При нажатии на кнопки с символом последний переносится в рабочий документ на указанное курсором мести. Другие кнопки палитры соответствуют наименованиям ряда функций программы, которые при выборе вводятся в командную строку. При нажатии кнопки алгебраических преобразований предварительно выделенное алгебраическое выражение трансформируется в соответствии с названием выбранной команды, например упрощается командой simplify.
Программа дает возможность отображать математические символы с достаточно высоким полиграфическим качеством в тексте на экране, в командах, а также при выводе на печать. Увеличено количество опций. Возможно создание гипертекстовых связей.
Рабочую тетрадь можно сохранять в HTML-формате, а также в формате полиграфического языка LaTex и некоторых других.
Усовершенствована и расширена система подсказок, имеется интерактивный доступ к полному тексту электронной версии документации, которая состоит из инструкции пользователя, справочника по стандартным дополнениям, учебника для начинающих и демонстрационных файлов.
Меню окна справки очень хорошо продумано, что позволяет получить информацию различными путями. Можно получить справку по интересующей теме или функции, а также просмотреть текст всех документов, содержащих введенное ключевое слово.
^ Аналитические расчеты .
Умение проводить аналитические расчеты — одно из главных достоинств этой программы, автоматизирующей математические расчеты. Mathematica умеет преобразовывать и упрощать алгебраические выражения, дифференцировать и вычислять определенные и неопределенные интегралы, вычислять конечные и бесконечные суммы и произведения, решать алгебраические и дифференциальные уравнения и системы, а также разлагать функции в ряды и находить пределы. Кроме того, Mathematica имеет стандартные дополнения для аналитических расчетов.
Следует заметить, что возможности каждой новой версии программы качественно возрастают. В версии 5.2 программы команда упрощения алгебраических выражений Simplify дополнена значительно более мощной командой FullSimplify, которая позволяет обрабатывать математические выражения, включающие специальные функции.
Расширен спектр математических выражений, для которых аналитически находятся неопределенные и определенные интегралы. Появилась также возможность задавать область изменения параметров в подынтегральных выражениях, что позволяет интегрировать многие выражения, которые в общем случае не имеют первообразной.
Значительно возросло число различных (конечных и бесконечных) сумм и произведений, вычисляемых аналитически, а также аналитически решаемых обыкновенных дифференциальных уравнений и уравнений в частных производных.
Из числа других улучшений можно выделить повышение скорости решения задач линейной алгебры.
^ Численные методы .
Для тех задач, которые невозможно решить аналитически, Mathematica 5.2 предлагает большое количество эффективных алгоритмов для проведения численных расчетов. Она позволяет находить конечные и бесконечные суммы и произведения, вычислять интегралы, решать алгебраические и дифференциальные уравнения и системы, задачи оптимизации (линейного программирования, нахождения экстремумов функций), а также задачи математической статистики. При численном решении математических задач наряду с правильностью алгоритмов расчета особую роль играет точность вычислений.
В Mathematica 5.2 реализован адаптивный контроль точности, основанный на выборе внутренних алгоритмов, позволяющих ее максимизировать. В этой версии программы повышена эффективность многомерной интерполяции, оптимизированы алгоритмы численного решения дифференциальных уравнений. Оптимизированы алгоритмы нахождения экстремумов. Поддерживается арифметика интервалов.
Осуществлен независимый от конкретной компьютерной платформы механизм ввода и вывода числовых данных без потери точности.
^ Математические функции .
Мathernatica 5.2 позволяет включать в расчеты все известные элементарные функции, а также сотни специальных встроенных функций. Разумеется, пользователь программы может вводить и свои функции как для применения в течение одного сеанса работы так и для постоянного использования. В новой версии 5.2 добавлены интегралы Френеля интегральные гиперболические синус и косинус, обратная функция ошибок, гаммa и бета функции, дополнительная функция Вейерштрасса, эллиптические и родственные с ними функции. Введены числа и полиномы Фибоначчи.
^ Графика и звук .
Mathernatica позволяет строить двух и трехмерные графики различных типов в виде точек и линии на плоскости, поверхностей, а также контурные, градиентные (dencity plot), параметрические. Имеется большое количество опций оформления и настройки, например изменение подсветки, цвета, размеров и точки наблюдения. Mathematica выполняет построение графика в три этапа. На первом создается множество графических примитивов, на втором они преобразуются в независимое от вычислительной платформы описание на языке PostScript, а на третьем это описание переводится в графический формат для той системы, на которой установлена Mathematicа. Если первые два этапа осуществляет ядро программы, то последний — интерфейсный процессор. Mathematica позволяет также строить серии картинок, которые могут быть воспроизведены как анимация. Программа содержит функции, позволяющие создавать и воспроизводить различные звуки, а также воспринимает и может анализировать некоторые типы стандартных звуковых файлов.
Программирование.
- основанный на операциях со списками – этот метод использует особенности универсального объекта программы — списка выражений, с которыми можно производить математические операции, как с алгебраическими выражениями, при этом заданные операции выполняются всеми элементами списка;
- основанный на операциях над строками (string-based);
- функционального программирования (functional programming), позволяющий создавать сложные функции и последовательности вложенных функций;
- на базе правил преобразования выражений (rule-based); объектно-ориентированный (object-oriented).
^ Стандартные дополнения .
Mathematica 5.2 содержит множество стандартных дополнений, включающих подпрограммы (пакеты), значительно расширяющие функциональные возможности в таких областях, как алгебра, аналитические и численные расчеты, графика, дискретная математика, теория чисел и статистика. Стандартные дополнения могут загружаться по мере надобности. Для загрузки пакета используется соответствующее название, включающее имя дополнения и имя пакета из данного дополнения. Рассмотрим подробнее стандартные дополнения.
В это дополнение входят пакеты, позволяющие задавать различные алгебраические поля и оперировать в них, а также несколько пакетов, расширяющих функциональность программы при оперировании с полиномами и нахождении их корней. В новой версии оно пополнилось пакетами для решения некоторых типов алгебраических неравенств и симметричных полиномов и, кроме того, добавлена Гамильтонова алгебра кватернионов и элементы полей Пигуа.
Это дополнение содержит пакеты, позволяющие расширять возможности программы при вычислении интегралов, нахождении пределов, решении дифференциальных уравнений и задач линейной алгебры в различных системах координат, а также включает команды преобразования Фурье и Лапласа, обобщенные функции, вариационные методы. В новой версии оно пополнилось пакетом для нахождения полных интегралов и дифференциальных инвариантов нелинейных уравнений в частных производных.
^ Дискретная математика.
Дополнение предлагает примерно 200 функций для проведения исследований в области комбинаторики и теории графов; вычислительную геометрию, которая содержит несколько геометрических функций для непараметрического анализа данных; пакеты для оперирования с функциями от целых чисел, в частности для решения рекуррентных уравнений, выполнения преобразований.
Дополнение включает 21 пакет. Оно значительно расширяет возможности программы при построении графиков и анимации. Введены новые типы: логарифмические графики, графики тел вращения, полярные, контурные, матричные графики, трехмерные параметрические, двух- и трехмерные графики векторных полей, графики неявно заданных функций и др. Появилась возможность отображать ортогональные проекции трехмерных графических объектов на координатные плоскости. Добавлены также функции для графического представления комплексных функций.
Геометрия.
Геометрическое дополнение содержит пакеты, включающие функции для задания параметров правильных многоугольников и многогранников, а также функции, обеспечивающие вращение на плоскости и в пространстве.
^ Линейная алгебра .
В это дополнение входят функции для создания ортогональных векторных базисов, решения матричных уравнений, разложения матриц и выполнения других операций с матрицами.
^ Теория чисел.
Функции, относящиеся к теории чисел, широко представлены в ядре программы Mathematica. Дополнение теории чисел расширяет этот список функций. В нее включены пакеты для доказательства простоты чисел, разложения целых чисел на множители. Имеются функции для аппроксимации действительных чисел рациональными и полиномов с действительными корнями полиномами с целыми коэффициентами. Пользуясь дополнениями, можно найти разложение действительного числа в бесконечную дробь. В новой версии появились возможности для нахождения базисных элементов для произвольных алгебраических расширений рациональных чисел.
^ Приближенные вычисления .
Это дополнение расширяет список встроенных функций программы Mathematica для приближенных численных расчетов. Оно содержит средства подгонки функциями (полиномом, сплайнами, тригонометрическими), численные версии некоторых аналитических функций ядра (ND, NLiunit, NResldue, NSencs), функции численного интегрирования (CauchyPrincipalValue, Listintegrate, IntegrateInterpolationFunction), аппроксимации отношением полиномов, поддержки численного решения дифференциальных уравнений (BesscIZeros, Butcher, Order-Star), а также альтернативный способ нахождения корней (FindRout) с использованием методов интервалов или интерполяции. В последнюю версию введены пакеты для численного нахождения вычетов и разложений комплексных функций.
Это дополнение включает методы статистической обработки данных. В нем содержатся функции известных непрерывных и дискретных статистических распределений. В новую версию добавлены пакеты подгонки и сглаживания данных, классической и робастной описательной статистики, линейной и нелинейной регрессии с диагностикой.
^ Профессиональные приложения .
Для программы Mathematica помимо стандартных дополнений разработано большое количество профессиональных приложений – пакетов, расширяющих возможности программы в специальных областях. Библиотека приложений в настоящее время содержит 23 различных пакета, из которых 18 разработано корпорацией, а остальные – другими разработчиками. Причем эта библиотека очень быстро пополняется.
^
Глава 3. Применение пакета Mathematica для вычисления интегралов
Для иллюстрации возможностей рассматриваемого пакета обратимся к следующей теории и примерам:
Многие математические операции базируются на понятии комплексных чисел. Они задаются в форме: z=Re(z)+I*Im(z) или z=Re(z)+i Im(z), где знак I – мнимая единица (квадратный корень из –1), Re(z) – действительная часть комплексного числа, а Im(z) – мнимая часть комплексного числа.
Пример задания комплексного числа: 2 + I 3 или 2 + 3*I
Мнимая часть задается умножением ее значения на символ мнимой единицы I. При этом знак умножения «*» можно указывать явно или заменить его пробелом, в последнем случае комплексное число выглядит более естественным. Функции Re[z] и Im[z] выделяют соответственно действительную и мнимую части комплексного числа z.
Большинство операторов и функций системы Mathematica работают с комплексными числами. Разумеется, это расширяет сферу применения системы и позволяет решать на ней различные специальные задачи – например, относящиеся к теории функций комплексного аргумента.
Элементарные функции в системе Mathematica могут иметь аргумент в виде комплексного числа z. Аргументы указываются как параметры функций в квадратных скобках.
Прежде всего, отметим функции для работы с комплексными числами z.
Abs[z] – возвращает модуль комплексного числа.
Arg[z] – возвращает аргумент комплексного числа z.
Conjugate[z] – возвращает комплексно сопряженное с z число.
Im[z] – возвращает мнимую часть комплексного числа z.
Re[z] – возвращает вещественную часть числа z.
ArcCos[z] – возвращает арккосинус комплексного числа z.
ArcCosh[z] – возвращает значение обратного гиперболического косинуса комплексного аргумента z.
ArcCot[z] – возвращает значение арккотангенса комплексного аргумента z.
ArcCoth[z] – возвращает обратный гиперболический котангенс комплексного аргумента z.
ArcCsc[z] – возвращает арккосеканс комплексного аргумента z.
ArcCsch[z] – возвращает обратный гиперболический косеканс комплексного аргумента z.
ArcSec[z] – возвращает арксеканс комплексного аргумента z.
ArcSech[z] – возвращает обратный гиперболический секанс комплексного аргумента z.
ArcSin[z] – возвращает арксинус комплексного аргумента z.
ArcSinh[z] – возвращает обратный гиперболический синус комплексного аргумента z.
ArcTan[z] – возвращает арктангенс аргумента z.
ArcTanh[z] – возвращает обратный гиперболический тангенс комплексного аргумента z.
Ниже приведены примеры операций в непосредственном режиме с комплексными числами (см. рисунок 3.1):

Рисунок 3.1 – Пример операций с комплексными числами
Если ввести N[z1/0], то система выдаст следующее сообщение:

Итак, в этом случае система выдает сообщение об ошибке, но после него возвращает константу ComplexInfinity, означающую комплексную бесконечность.

Из последних примеров видно, что система Mathematica знает и использует основные соотношения между элементарными функциями. В двух последних примерах используются символьные преобразования с применением функции ComplexExpand (расширение выражений с комплексным аргументом).
^
3.1. Функция z-преобразований
Прямое и обратное z-преобразования функций широко используются при решении задач автоматического управления и обработке дискретных сигналов. Прямое z-преобразование последовательности f(n) в функцию комплексной переменной z задается выражением
Обратное z-преобразование сводится к преобразованию комплексной функции f(z) в функцию f(z).
Поэтому в системе Mathematica 5.2 для осуществления z-преобразований в ядро включены следующие функции:
ZTransform[expr,n,z] — возвращает результат прямого z-преобразования для выражения expr, представленного как функция целочисленного аргумента n;
InverseZTransform[expr,n,z] — возвращает результат обратного z-преобразования для выражения expr, представленного как функция целочисленного аргумента n.
Приведем примеры выполнения z-преобразований в системе Mathematica 5.2 (см. рисунок 3.2):

Рисунок 3.2 – Пример выполнения z-преобразований
Обратите внимание на то, что для первой функции (Cos[n]) результат получен через комплексные экспоненты, и лишь упрощение функцией FullSimplify позволило получить его без «фокусов».
^
3.2. Вычисление несобственных интегралов
Пусть R(x,y) – рациональная функция двух действительных переменных. Тогда справедливы равенства
Действительно, замена переводит отрезок [0, 2π] в окружность .
В результате имеем формулу, сопоставляющую интеграл от действительной переменной с интегралом по замкнутой кривой от функции комплексного переменного:
Утверждение: Пусть R(x) – рациональная функция, не имеющая особых точек на действительной оси, для которой точка z, равная бесконечности, — нуль порядка не ниже первого (т.е. (m-n) больше или равно 1). Тогда справедливы формулы:
Пример 1. Вычислить интеграл .
Положим , тогда . Вычислим , откуда , а исходный интеграл запишется в виде:
Так как при , подинтегральная функция внутри круга имеет один полюс первого порядка в точке z=a.
Поскольку , будем иметь .
В пакете Mathematica (см. рисунок 3.3):

Рисунок 3.3 – Пример вычисления интеграла
Пример 2. Вычислить интеграл .
Она является аналитической функцией, имеющей полюсы второго порядка в точках и в бесконечности имеет нуль второго порядка.
Согласно формуле (1.1) имеем:
В пакете Mathematica (см. рисунок 3.4):

Рисунок 3.4 – Пример вычисления интеграла
Пример 3. Вычислить интеграл:
Функция в точке z, равной бесконечности, имеет нуль первого порядка и на действительной оси не имеет особых точек.
Особые точки функции:
Поскольку , вычисляем вычет в точке — просто полюсе функции :
Для заданного интеграла по формуле (2.1) получаем результат:
В пакете Mathematica (см. рисунок 3.5):

Рисунок 3.5 – Пример вычисления интеграла
^
3.3. Интеграл от комплексного переменного
Интегралом от функции комплексного переменного называется предел последовательности интегральных сумм; функция при этом определена на некоторой кривой l, кривая предполагается гладкой или кусочно-гладкой:
, где — точка, произвольно выбранная на дуге разбиения кривой, — приращение аргумента функции на этом участке разбиения, — шаг разбиения, — длина хорды, соединяющей концы дуги , кривая l разбивается произвольным образом на n частей , k=1,2…n.
В случае замкнутой кривой l=C:
Интегрирование происходит в положительном направлении, т.е. в направлении обхода, оставляющем слева конечную область, ограниченную контуром C.
Существует несколько способов вычисления интегралов в комплексной области.
Способ 1. Интеграл вычисляется сведением к криволинейному интегралу от функции действительных переменных, применяются формулы:
Пример 1. Вычислить интеграл , где:
а). l – прямая, соединяющая точки
б). l – ломаная ОВА, О(0,0), В(1,0), А(1,1).
а). Путь интегрирования l – прямая, соединяющая точки
Применяем к вычислению интеграла формулу (1). Подинтегральное выражение имеет вид .
Уравнение отрезка прямой, соединяющей точки имеет вид .
б). Путь интегрирования l – ломаная ОВА, О(0,0), В(1,0), А(1,1).
Так как путь интегрирования состоит из 2 отрезков, то:
Каждый из этих двух интегралов вычисляем для ОВ (), и для ВА ().
В пакете Mathematica (см. рисунок 3.6):

Рисунок 3.6 – Пример вычисления интеграла
Способ 2. Интеграл вычисляется приведением к определенному интегралу (путь интегрирования f задается в параметрической форме z=z(t)) – применяется формула:
Пример 2. Вычислить интеграл , l –верхняя полуокружность , обход l против часовой стрелки. Подинтегральная функция здесь непрерывная, но не аналитическая. Применим формулу (2) , поскольку кривая l имеет простое параметрическое представление: . Тогда .
Подставляем в подинтегральное выражение:
В пакете Mathematica (см. рисунок 3.7):

Рисунок 3.7 – Пример вычисления интеграла
Способ 3. Вычисление интегралов от аналитических функций в односвязных областях – применяется формула:
, где F(z) первообразная для f(z).
Пример 3. Вычислить интеграл от аналитической функции .
Применяем формулу (3), находим первообразную, используя методы интегрирования действительного анализа:
В пакете Mathematica (см. рисунок 3.8):

Рисунок 3.8 – Пример вычисления интеграла
^
3.4. Вычисление интеграла с помощью теоремы о вычетах.
Теорема (основная теорема о вычетах):
Если функция f(z) – аналитична в за исключением конечного числа особых точек ,то справедливо равенство:
, где D – односвязная область в комплексной плоскости, — граница D, — вычет функции f(z) в точке .
Пример 1. Вычислить интеграл .
Особыми точками подинтегральной функции являются нули знаменателя – корни уравнения exp(z) – i =0, т.е. точки
Кругу принадлежит только одна из этих точек, точка .
Эта точка — простой полюс функции , т.к. она является простым нулем знаменателя. Вычислим вычет в простом полюсе f(z):
В пакете Mathematica (см. рисунок 3.9):

Рисунок 3.9 – Пример вычисления интеграла
Пример 2. Вычислить интеграл .
Единственная особая точка подинтегральной функции – существенно особая точка z=0. Она принадлежит области, ограниченной контуром интегрирования.
Вычислим вычет в существенно особой точке функции f(z): , поскольку . Тогда .
В пакете Mathematica (см. рисунок 3.10):

Рисунок 3.10 – Пример вычисления интеграла
Пример 3. Вычислить интеграл .
Особыми точками подинтегральной функции являются нули знаменателя – корни уравнения , т.е. точки
Все эти точки – простые полюсы подинтегральной функции, кругу принадлежит только две из них: .
Вычислим вычеты в этих точках:
В пакете Mathematica (см. пример 3.11):


Рисунок 3.11 – Пример вычисления интеграла
^
Глава 4. Анализ полученных результатов
Мы убедились, что пакет Mathematiсa 5.2 существенно облегчает вычисление различных видов интегралов. С помощью этой программы затрачивается меньше времени на расчеты, а также появляются новые возможности для развития многих областей математики.
Как уже отмечалось, Mathematica – мощная программа аналитических и численных расчетов, которые использует идеологию интерактивных документов, включающих собственно программы, текст и графику. Так же этот символьный пакет имеет удобный графический интерфейс и развитую помощь, включающую помимо примеров, полное описание программы в гипертекстовом формате. Огромное количество заложенных разработчиками функций, а также открытая среда, позволяющая дополнять пакет своими собственными расширениями, делает их возможности воистину безграничными.
Mathematicа дает возможность специалистам решать большое количество достаточно сложных задач, не вдаваясь в тонкости программирования. Благодаря этому программа получила широкое распространение в таких областях, как физика, биология, экономика. Программа также применяется как для выполнения, так и для оформления инженерных проектов.
Mathematica является важным инструментом при разработке программного обеспечения. Она может быть модернизирована самим пользователем, так как относится к открытым программным продуктам.
К единственным недостаткам системы Mathematica следует отнести разве что весьма необычный язык программирования, обращение к которому, впрочем, облегчает подробная система помощи.
Программа Mathematica наряду с программами Maple, MatLab и MathCad применяется в качестве базисной для построения курса математики во многих высших как технических, так и гуманитарных учебных заведениях. Несколько периодических изданий и сотни книг посвящено этой программе.
Заключение
Данный реферат был посвящен применению пакета Mathematica в современных математических приложениях и исследованиях. Был дан краткий обзор основных возможностей, предоставляемых пользователям данной программы.
В качестве иллюстрации актуальности и идее применения пакета в науке был рассмотрены примеры вычислений различных видов интегралов.
Но как показывает практика, возможности данного пакета все время увеличиваются. Кроме того, ядро Mathematica стало поддерживать многопроцессорные конфигурации и научилось распараллеливать вычислительные потоки, в связи с чем существенно возрастает скорость расчетов на некоторых алгоритмах.
Естественно, в Mathematica развивается не только базовая (математическая) функциональность, но и вспомогательная, во многих случаях также играющая весьма важную роль. Так, реализована поддержка новых внешних форматов (Excel, Matlab, DIF и др.) в функциях импорта/экспорта. Появились дополнительные операторы построения диаграмм новых типов (скажем, ArrayPlot предоставляет довольно гибкие средства для визуализации массивов и некоторых типов специальных статистических графиков), расширена интеграция с базами данных.
Имеется еще ряд небольших усовершенствований, касающихся самых разных сторон функционирования Mathematica, и особенно ее интеграции с внешними системами – к ним можно отнести средства взаимодействия с интернет-поисковиками, возможность использования ядра в удаленном режиме. Это одна из наиболее заметных тенденций развития пакета.
^
Предметный указатель
Список литературы к реферату
- Аладьев В. З., Шишаков М. Л. Введение в среду пакета Mathematica 2.2. – М.: Информационно-издательский дом «Филинъ», 1997. — 368с.
- Голубева Л. Л., Малевич А. Э., Щеглова Н.Л. Компьютерная математика. Символьный пакет Mathematica. – Мн.: БГУ, 2005. — 103с.
- Антамошин А. Н., Близнова О. В., Бобов А. В., Большаков А. А., Лобанов В. В., Кузнецова И. Н. Интеллектуальные системы управления организационно-техническими системами. – М.: Горячая линия – Телеком, 2006. – 160с.
- http://www.exponenta.ru
- http://library.wolfram.com/tutorials/
Интернет ресурсы
- http://www.exponenta.ru/ – посвящен решению математических задач при помощи современных математических пакетов, таких как Mathematica, Mathcad, MATLAB, Maple.
- http://www.wikipedia.org/ — сайт свободной энциклопедии, содержащей более 300.000 статей на русском и более 2.400.000 статей на английском языках в том числе и о научных направлениях, таких как математика, физика, информатика.
- http://wolfram.com – официальный сайт компании Wolfram Reseach Ltd. Представлены программные продукты, события в жизни компании. Содержит несколько разделов в которых собраны примеры использование программных продуктов компании и т.д.
- http://www.library.bsu.by – электронный каталог фундаментальной библиотеки БГУ. Наиболее ценным разделом с точки зрения автора является электронный каталог, содержащий 9 библиографических баз данных, сформированных по различным видам изданий: книги, периодика, статьи, электронные издания.
- http://vac.org.by – сайт Высшей аттестационной комиссии Республики Беларусь. Содержит все нормативные акты, касающиеся оформления и защиты диссертаций.
- http://elibrary.ru – научная электронная библиотека.
- http://novamedium.infolib.mexmat.ru – здесь представлены исследования и разработки в естественных науках и образовательных технологиях. Решение типовых задач по различным разделам высшей и элементарной математики с помощью пакета Mathematica.
- http://documents.wolfram.com/flash/ – здесь собраны анимации, которые графически иллюстрируют некоторые встроенные функции программы Mathematica.
Личный сайт
На сайте размещены граф научных интересов, гостевая книга, презентация магистерской работы, а также данная работа.
Граф научных интересов
магистранта Бойко Е.В. механико-математического факультета
Физические задачи, приводящие к дифференциальным уравнениям в частных производных
Похожие публикации:
- Какие способы отображения массивов существуют в mathcad
- Какой мессенджер нельзя подключить в геткурс wechat
- Куда сохраняет snapchat
- Почему windows movie maker вылетает
Как запустить скрипт на Python
Каждый разработчик на Python должен знать, как запускать скрипты, потому что это единственный способ проверить работоспособность написанного кода. Чтобы запустить скрипт, программист может использовать:
- Командную строку (терминал).
- Интерактивный режим Python.
- Текстовый редактор или полноценную IDE.
- Менеджер файлов операционной системы (запуск через графический интерфейс).
Каждый способ имеет свои особенности, поэтому его выбор зависит не только от предпочтений или привычек, но и от того, в какой степени программист хочет контролировать параметры запуска скрипта.
Не нужно путать скрипты и модули, хотя различия между ними не велики. Скрипты — это файлы с исполняемым кодом, а модули — файлы, код которых импортируется в скрипты, проще говоря, библиотеки.
Интерпретатор и его установка
Интерпретатор — это программное обеспечение, которое позволяет запускать скрипты Python. С технической точки зрения интерпретатор является связующим слоем между кодом на Python и машинным кодом.
Интерпретатор используется каждый раз, когда программист запускает код: в интерактивном режиме, через командную строку, всегда.
Установить интерпретатор на Windows не сложно, достаточно найти Python в Microsoft Store и установить.
Если же у вас старая версия Windows и предыдущий вариант не работает, то надо зайти на официальный сайт Python, скачать и запустить установочный файл и следовать инструкциям по установке. Не забудьте при установке выставить галку, чтобы Python был добавлен в Windows PATH.
В Linux обычно ничего устанавливать не требуется, так как Pyton включают в его дистрибутив.
Интерактивный запуск кода Python
Для работы с маленькими кусками кода программисты часто используют режим интерактивного сеанса. В этом режиме введенный код на Python сразу интерпретируется и исполняется. То есть не нужно создавать файл и запускать его.
Чтобы войти в интерактивный режим в Windows, можно использовать один из нескольких способов:
- Из меню пуск запустите командную строку «cmd». Затем выполните в ней команду «python». После этого должная отобразиться версия интерпретатора, дата, время и другая информация. Также должны появится несколько символов «>», которые показывают, что можно вводить команды.
- Нажмите сочетание клавиш +, откроется окно «Выполнить». Введите «python». Должна открыться командная строка с запущенным интерактивным сеансом. В ней также должна быть отображена информация о версии, дате и времени, а также символы «>».
- Возможность работы в интерактивном сеансе также встроена в IDLE. Её можно запустить из меню пуск, набрав в поиске «IDLE» и кликнув по найденному значку. После этого сразу откроется интерактивный сеанс. Преимуществом использования IDLE является подсветка синтаксиса.
Чтобы запустить интерактивный сеанс в Linux, необходимо выполнить в терминале команду «python3» или «python2».
Для выхода из интерактивного режима используются комбинации клавиш: + и после этого нажмите . Или можно просто прописать в командной строке quit() или exit().
Работать в интерактивном режиме в IDLE можно не только в Windows, но и в Linux, однако в этом нет смысла, потому что терминал Linux достаточно удобен и предоставляет все необходимые инструменты, в отличии от командной строки Windows.
Примеры работы в интерактивном сеансе
Интерактивный сеанс является необходимым и важным инструментом. С его помощью программист может быстро проверить код, в работе которого он не уверен.
Код исполняется сразу после ввода, однако это не значит, что в терминале можно использовать только однострочные операции, например:
>>> a = 2 >>> b = 3 >>> a + b 5 >>> 2 + 3 5 >>> quit()
Обратите внимание, что для вывода результата выражения в терминал в интерактивном сеансе не нужно использовать функцию print().
В командной строке также можно писать функции, циклы, условия. Кроме того, в интерактивном сеансе можно импортировать модули.
Командная строка автоматически определяет, когда нужно написать многострочную инструкцию, например, если программист хочет объявить функцию, он пишет:
>>> def a(): . for x in range(5): . print(x, end = " ") . >>>
«>>>» — это просто отображаемый в командной строке символ, свидетельствующий о возможности ввода. Многоточие показывает, что ввод не закончен, тем самым разрешая программисту писать сложные конструкции в несколько строк.
Не забудьте после того как отобразилось «…» ввести нужное количество пробелов после него! Для выхода из этого режима нажимаем ещё один .
Следующая команда вызывает только что созданную функцию:
>>> a() 0 1 2 3 4 >>>
Индикаторы ввода остались на этой же строке, потому что мы установили разделитесь функции print с помощью аргумента end = » » .
Запуск скрипта Python через командную строку
Интерактивный сеанс позволяет тестировать код, но как только он завершится, весь код потеряется.
Поэтому большая часть кода пишется с использованием текстовых файлов, которые имеют расширение «.py». Они могут быть созданы с помощью любого текстового редактора, подойдет даже обычный блокнот.
Предположим, что наш скрипт выводит на экран надпись «Hello World!», то есть код будет следующим:
print("Hello World!")
Запишем его в файл world.py. Запустить его через командную строку можно несколькими способами.
Команда «python» и запуск по имени
Самый простой и практичный запуск скриптов — использовать команду «python». Нужно открыть командную строку и написать «python имя_скрипта». Важно, чтобы скрипт находился либо в директории, из которой запущена командная строка, либо в каталоге, прописанном в переменной среды PATH. Тогда запуск пройдет успешно:
D:\python>python world.py Hello World!
Если на компьютере установлены две версии Python, (а на Linux обычно так и есть) следует использовать команды «python3» и «python2» для вызова соответствующей версии.
В последних версиях Windows можно запустить скрипт Python просто введя его имя:
D:\python>world.py
В этом случае запустится новая консоль, выведется в неё сообщение и закроется. Мы ничего не успеем увидеть. Чтобы этого не было, можно в конец файла добавить input(), чтобы скрипт ожидал ввода пользователя.
Такой запуск возможен благодаря тому, что Windows автоматически определяет, какую программу (в данном случае интерпретатор Python) использовать для запуска файла.
В Linux также можно воспользоваться этим способом, но в начале скрипта Python в первой строке должен быть указан полный путь к интерпретатору:
#!/usr/bin/python3
#!/usr/bin/env python3
После этого нужно разрешить запуск файла (сделать его исполняемым).
chmod u+x world.py
Теперь достаточно просто запустить скрипт, введя в терминал его имя, перед которым добавить «./»:
./world.py Hello World!
Запуск модуля
Иногда возникает необходимость запустить модуль, как скрипт. Однако при использовании обычного способа командная строка выдает предупреждение о том, что файл нельзя открыть.
Чтобы запустить модуль, как исполняемый файл, нужно воспользоваться командой:
D:\python>python -m world.py Hello World!
Перенаправление вывода
Если результаты выполнения скрипта нужно где-то сохранить, чтобы использовать их в последующих операциях, программист может перенаправить вывод из консоли в, например, файл. Для этого используется оператор «>». Вернём содержимое нашего файла world.py в изначальный вариант:
print("Hello World!")
Теперь запустим. Полная команда выглядит так:
D:\python>python world.py > output.txt
Здесь output.txt – это текстовый файл, в который записывается результат выполнения скрипта.
Операция может использоваться как в операционной системе Windows, так и в Unix-подобных системах. Если файла, в который должен вывестись результат, не существует, система создаст его автоматически.
При использовании оператора «>» содержимое файла, в который выводятся данные, полностью перезаписывается. Если уже имеющиеся данные нужно сохранить, используют оператор «>>».
Например, у нас уже есть файл output.txt со строкой приветствия (после того как мы его создали предыдущей командой). Теперь допишем в него ещё одну строку:
D:\python>python world.py >> output.txt
Таким образом можно последовательно запустить несколько раз этот скрипт и в файл будут дописываться всё новые строки приветствия.
Использование IDLE
IDLE – это официальная интегрированная среда разработки, поставляемая вместе с интерпретатором Python.
Она позволяет работать в интерактивном режиме, писать и запускать скрипты. Кроме того, IDLE поддерживает подсветку синтаксиса и отладку.
Работа в интерактивном режиме не отличается от того, что было описано для командной строки Windows и терминала Linux. Программист пишет код, который сразу исполняется интерпретатором.
Запуск скрипта
Чтобы запустить скрипт в IDLE, сначала нужно открыть его с помощью «File – Open» или с помощью клавиш +. Затем его необходимо запустить с помощью «Run – Run Module» или с помощью клавиши .

При запуске скрипта можно указать пользовательский параметры, для этого используйте «Run – Run… Customized» или комбинация клавиш +. В поле «Command Line Arguments for sys.argv» прописываются нужные аргументы.
Запуск скрипта из интерактивного режима
Иногда при работе в интерактивном режиме возникает необходимость проверить код какого-либо скрипта. Не обязательно использовать терминал или отдельно открывать скрипт в IDLE, его можно запустить прямо из интерактивного сеанса различными способами.
import
При импорте модуля в скрипт выполняется весь содержащийся в нём код. Если модуль содержит только объявления функций и классов и присвоение значений, программист ничего не увидит. Но если модуль выводит что-то на экран, работает с файлами, то это отобразится при импорте.
Таким образом можно импортировать модуль в интерактивном режиме, чтобы увидеть результаты его выполнения, однако сделать это можно только один раз, потому что при последующих импортах в пределах одного сеанса ничего не произойдет, так как при каждом новом импорте интерпретатор обращается к модулю, записанному в кэш, а не к реальному файлу.

Здесь импортировал библиотеку sys для того чтобы в пути прописать полный путь до моего модуля. Видно, что приветствие отображается только после первой попытки импорта моего модуля.
exec()
Оператор exec() сначала читает содержимое модуля, затем отправляет его в функцию, которая выполняет код.
Синтаксис выглядит так:
>>> exec(open('D:\\python\\world.py').read())
Запуск скриптов из текстового редактора или IDE
Если программист работает над крупным проектом, ему не достаточно стандартной IDLE и блокнота. В этом случае используется либо текстовый редактор, либо полноценная среда разработки IDE.
Для большинства текстовых редакторов разработаны плагины, позволяющие запускать скрипты Python одним кликом мыши. Сейчас очень популярен текстовый редактор VS Code. Вот здесь можно описано как с ним работать.
Большинство IDE поддерживают запуск скриптов по умолчанию. Обычно это делается с помощью встроенной в панель инструментов кнопки «Запуск/отладка». Эту функцию поддерживают такие IDE, как Eclipse, PyCharm, Eric, NetBeans и другие.
Запуск скриптов через менеджер файлов
В любой операционной системе с графическим интерфейсом можно запустить скрипт Python двойным кликом по файлу. Однако здесь есть свои нюансы, во-первых, система должна связывать расширение «.py» с интерпретатором Python, во-вторых, такой способ ограничивает программиста, не позволяя указать дополнительные параметры.
Этот способ можно использовать не только в Windows, но и Unix-подобных системах. Однако после запуска окно консоли будет сразу закрываться. Чтобы решить эту проблему, в конце скрипта добавляется оператор input(), таким образом консоль не закроется, пока не получит ввод от пользователя.
Ещё одной проблемой является невозможность обнаружения и отладки ошибок. Даже если программист добавил оператор input(), при возникновении ошибки в процессе выполнения скрипта консоль закроется.
Это самый ненадёжный способ, который накладывает на программиста много ограничений. Лучше отказаться от идеи пользоваться файловым менеджером во время отладки скриптов и вернуться к стандартным способам запуска через командную строку.
Видео-туториалы запуска вычислительных задач на Python, R, С++, Octave и Blender во FlyElephant
Пару недель назад, наша команда выпустила свежий релиз FlyElephant — платформа для ученых, которая предоставляет готовую вычислительную инфраструктуру для проведения расчетов, помогает находить партнеров и совместно работать над проектами, а также управлять всеми данными из одного места.
В качестве вычислительного ресурса сейчас используется облако Azure, а пользователи могут запускать вычислительные задачи, написанные с помощью С++ (с поддержкой OpenMP), R, Python, Octave, Scilab, Java, Julia, OpenFOAM, GROMACS, Blender на серверах с количеством ядер от 1 до 32 и оперативной памятью до 448 ГБ.
Сегодня мы хотим поделиться видео-туториалсами запуска задач во FlyElephant. Под катом вы найдете видео, как запускать вычислительные задачи, написанные с помощью С++, R, Python, Octave и рендерить изображения с помощью Blender, а также промо-код для получения бесплатных дополнительных часов работы ваших задач.
Как запустить расчет с помощью C/C++
Как запустить расчет с помощью R
Как запустить расчет с помощью Python
Как запустить расчет с помощью Octave
Как запустить рендеринг изображения с помощью Blender (upload file)
Зарегистрироваться во FlyElephant можно здесь. После регистрации на вашем счету будет 500 часов; воспользовавшись промо-кодом 118687121372 и введя его в Личном кабинете, вы можете пополнить счет еще на 300 часов.
Мы будем благодарны за отзывы и предложения по улучшению платформы, а также с радостью проведем для вас 30-и минутную демо-презентацию о работе с ней. Забронировать время для демо-презентации можно здесь.
