Как записать последовательность в maple

REDMOND

Образовать последовательности элементов в Maple

Помогите выполнить задания. Образовать последовательности элементов (выражений):

Как это в Maple7 реализовать, помогите пожалуйста.

Дано число и две последовательности. Образовать последовательность, состоящую из элементов 1-й последовательности, которых нет во 2-й
Здравствуйте! Дано число M и две последовательности А1. АM и В1. ВM. Образовать.

Дано число и две последовательности. Образовать последовательность, состоящую из элементов 1-й последовательности, которых нет во 2-й
Дано число M и две последовательности А1. АM и B1. BM. Образовать последовательность чисел С.

Дано число и две последовательности. Образовать последовательность, состоящую из элементов, которые есть одновременно в обоих последовательностях
Дано число M и две последовательности А1. АM и В1. ВM. Образовать последовательность С.

Образовать по рекуррентным формулам последовательности A и B
Нужно образовать по рекуррентным формулам a=F(a;b) и b=G(a;b); две последовательности чисел A и B(в.

Образовать массив B (N, M) путем деления элементов массива A (N, M) на сумму его положительных элементов
помогите пожалуйста. Дан двумерный массив A(N,M). образовать массив B(N,M) путем деления.

Вычислить сумму тех элементов последовательности, номера которых совпадают со значениями элементов последовательности
Пожалуйста, помогите! Нифига не шарю в программировании. Тут такая задачка: "Дана.

Глава 4

Математический анализ — одна из самых благодатных областей применения систем компьютерной алгебры [36–46]. В этой главе описано решение с помощью СКА Maple наиболее важных задач математического анализа. Особое внимание в этой главе уделено визуализации записи исходных выражений и результатов вычислений, а также проверке последних.

4.1. Вычисление сумм последовательностей

4.1.1. Основные функции для вычисления сумм последовательностей

Начнем рассмотрение задач математического анализа с вычисления сумм последовательностей. Вычисление суммы членов некоторой последовательности f(k) при изменении целочисленного индекса k от значения m до значения n с шагом +1, то есть выражения

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

Здесь f — функция, задающая члены суммируемого ряда, k — индекс суммирования, тип — целочисленные пределы изменения k, alpha — RootOf-выражение. Значение n может быть равно бесконечности. В этом случае для n используется обозначение ∞ или infinity. Допустимо (а зачастую рекомендуется с целью исключения преждевременной оценки суммы) заключение f и k в прямые кавычки — например, sum(‘f’, ‘k’=m..n). Рекомендуется все примеры проверять после команды restart, убирающей предыдущие определения f и k.

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

4.1.2. Последовательности с заданным числом членов

Простейшими являются суммы последовательностей с фиксированным числом членов. Ниже даны примеры применения этих функций (файл sum):

Обратите внимание, что во втором примере система отказалась от вычисления, а в третьем даже выдала сообщение об ошибке, связанную с тем, что переменной k перед вычислением сумм было присвоено численное значение 2. После заключения выражения и переменной индекса k в прямые кавычки ошибка исчезла, поскольку такая операция означает, что переменной придается неопределенное значение.

4.1.3. Суммы с известным пределом

Особый класс образуют последовательности, у которых существует их предел в аналитическом виде. Ниже представлен ряд последовательностей, у которых переменная индекса задается как 0..n или 1..n (файл sum):

Некоторые из таких сумм выражаются через специальные математические функции.

4.1.4. Суммы бесконечных рядов

Многие суммы бесконечных рядов сходятся к определенным численным или символьным значениям, и система Maple способна их вычислять. Это поясняют следующие примеры (файл sum):

1.718282828 = 1.718281828

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

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

При конкретном значении N такую сумму нетрудно вычислить подстановкой:

Как видно из приведенных примеров, средства вычисления сумм последовательностей Maple 9.5/10 позволяют получать как численные, так и аналитические значения сумм, в том числе представляемые специальными математическими функциями.

4.1.6. Пакет вычисления специальных сумм sumtools

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

[Hypersum, Sumtohyper, extended_gosper, gosper, hyperrecursion, hypersum, hyperterm, simpcomb, sumrecursion, sumtohyper]

Назначение функций данного пакета перечислено ниже:

hypersum(U, L, z, n) и Hypersum(U, L, z, n) — вычисление гиперсумм;

sumtohyper(f, k) и Sumtohyper(f, k) — преобразование сумм в гиперсуммы;

extended_gosper(f, k), extended_gosper(f, k=m..n) и extended_gosper(f, k, j) — реализация расширенного алгоритма Госпера;

gosper(f, k) и gosper(f, k=m..n) — реализация алгоритма Госпера;

hyperrecursion(U, L, z, s(n)) — реализация гиперрекурсионного алгоритма;

hyperterm(U, L, z, k) и Hyperterm(U, L, z, k) — ввод гипергеометрического терма.

4.1.7. Примеры вычисления специальных сумм

Приведем примеры на вычисление специальных сумм с помощью функций пакета sumtools (файл sumtools):

(-n + a = b + 1)f(n — 1) + (n + b — 1)f(w)

Hyperterm([1, 1+a, a-d-c+1, a+1-d-b, a-с+1-b], [1+a-d, 1+a-c, 1+a-b, a-b-c-d+1, 1, n])

-8(n — 1)²f(n — 2) — (7n² — 7n + 2)f(n — 1) + f(n)n²

Из этих примеров применение функций данного пакета достаточно очевидно.

4.2. Вычисление произведений членов последовательностей

4.2.1. Основные функции для произведения членов последовательностей

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

используются следующие функции:

Обозначения параметров этих функций и их назначение соответствуют приведенным для функций вычисления сумм. Это относится, в частности, и к применению одиночных кавычек для f и k.

4.2.2. Примеры вычисления произведений членов последовательностей

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

(n + 1)(n + 2)(n + 3)(n +4)

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

Нетрудно понять, что при i, стремящемся к бесконечности, перемножаемые члены последовательности стремятся к нулю, а потому к нулю стремится и их произведение.

4.3. Вычисление производных

4.3.1. Определение производной и полного дифференциала

Если f(x) непрерывная функция аргумента х, то производная этой функции

(4.1)

Как известно, значение производной геометрически характеризуется наклоном касательной к графику f(х) в точке x=0. Простейший способ наблюдать построение касательной к заданной точке функции заключается в применении функции showtangent из пакета student. Например, команды

строят график синусоиды и касательной к ней в точке х=1.7.

Помимо производной, часто встречается понятие дифференциала

то есть произведения производной функции на приращение ее аргумента Δx→0.

Производная от производной f(x), то есть функция f»(x) называется производной второго порядка. Могут быть производные третьего, четвертого и так далее, словом производные высшего порядка. Все математические системы способны вычислять такие производные, как и первую производную f'(x) от функции f(x).

Довольно часто встречаются функции ряда переменных, например f(x, у, z, …). В этом случае может идти речь о частных производных по переменным х, у, z, …. Например, частной производной по переменной х будет выражение:

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

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

Выражение (4.1) показывает, что производная f'(x) может быть найдена путем вычисления предела, записанного в (4.1). Этот популярный у математиков метод получил название Δ-метода. В СКМ он используется редко, поскольку они имеют прямые операторы или функции для вычисления производных.

4.3.2. Функции дифференцирования diff и Diff

Для вычисления производных Maple имеет следующие основные функции:

Здесь а — дифференцируемое алгебраическое выражение, в частности, функция f(x1, х2, хn) ряда переменных, по которым производится дифференцирование. Функция Diff является инертной формой вычисляемой функции diff и может использоваться для естественного воспроизведения производных в документах.

Первая из этих функций (в вычисляемой и в инертной форме) вычисляет частные производные для выражения а по переменным х1, х2, …, хn. В простейшем случае diff(f(x),x) вычисляет первую производную функции f(x) по переменной х. При n, большем 1, вычисления производных выполняются рекурсивно, например, diff(f(x), х, у) эквивалентно diff(diff(f(x), х), у). Оператор $ можно использовать для вычисления производных высокого порядка. Для этого после имени соответствующей переменной ставится этот оператор и указывается порядок производной. Например, выражение diff(f(x),x$4) вычисляет производную 4-го порядка и эквивалентно записи diff(f(x),x,x,x,x). A diff(g(x,y),x$2,y$3) эквивалентно diff(g(x,y),x,x,y,y,y).

Примеры визуализации и вычисления производных (файл diff):

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

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

4.3.3. Дифференциальный оператор D

Для создания функций с производными может также использоваться дифференциальный оператор D. Порою он позволяет создавать более компактные выражения, чем функции diff и Diff. Дифференциальный оператор можно записывать в следующих формах: D(f) или D[i](f), где параметр f — выражение или имя функции, i — положительное целое число, выражение или последовательность. Оператор D(f) просто вычисляет имя производной от f, поскольку в этой форме он эквивалентен unnaply(diff(f(x),x),x). В форме D(f)(x) этот оператор подобен diff(f(x),x).

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

Следующий пример показывает дифференцирование функции пользователя fun с применением дифференциального оператора D и функции diff:

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

f: = (х, у, z) → х е у + ln(z)

Пример применения дифференциального оператора для функции f, заданной программным объектом-процедурой, представлен ниже:

for i from n by -1 to 0 do sx

Этот пример показывает реализацию схемы Горнера для полинома b степени n от переменной х. При этом применение оператора дифференцирования возвращает процедуру. Ряд интересных возможностей по вычислению производных предоставляет пакет расширения student.

4.3.4. Импликативное дифференцирование

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

Примеры применения импликативного дифференцирования приведены ниже (файл impldiff):

В справке по этой функции можно найти более сложные формы записи этой функции и дополнительные примеры ее применения.

4.3.5. Maplet-вычислитель производных Derivatives

При обучении основам математического анализа удобны обучающие средства на основе Maplet-технологии. Эти новые средства (их не было даже в Maple 9) размещены в позиции Tools меню системы Maple 9.5 при ее применении в стандартном виде. Команда Tools→Tutors Calculus-Single Variables→Derivatives… открывает окно Maple-вычислителя производных, показанное на рис. 4.1.

Рис. 4.1 Окно Maplet-вычислителя производных

В окне можно в интерактивном режиме задать выражение для функции f(x), вычислить производную f'(x) и, нажав кнопку Dispay, получить графики заданной функции и ее производной в заданных пределах изменения х от а до b. При закрытии окна графики появляются в текущей строке вывода системы Maple 9.5.

4.3.6. Maplet-инструмент по методам дифференцирования

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

Такую возможность обеспечивает инструмент Differentiate Methods… по методам аналитического дифференцирования производных. Для открытия его окна надо исполнить команду Tools→Tutors Calculus-Single Variables→Differentiate Methods…. Это окно показано на рис. 4.2.

Рис. 4.2. Окно Maplet-инструмента по методам дифференцирования

Окно имеет свое меню, область задания функции Function заданной переменной, область вывода функции и результатов ее преобразований и область с кнопками, позволяющими задавать правила дифференцирования и наблюдать результаты их выполнения. Можно задать выполнение всех шагов дифференцирования сразу по всем шагам (кнопка All Steps) или запустить дифференцирование раздельно по шагам (кнопка Start).

С помощью кнопки Hint можно вызвать советы по дифференцированию и применить их активизацией кнопки Apply Hint. В поле Differentiate Rules (Правила дифференцирования) имеется множество кнопок, позволяющих применить те или иные правила дифференцирования заданного выражения и опробовать их эффективность. Таким образом имеется возможность выполнить дифференцирование в аналитическом виде различными методами, задаваемыми пользователем. Пример на рис. 4.2 показывает дифференцирование функции f(x)=sin(x)*exp(-х). Представлены шаги дифференцирования и конечный результат.

4.4. Вычисление интегралов

4.4.1. Определение интегралов

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

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

Если f(x)dx есть дифференциал функции F(x), то

Функцию F(x) называют первообразной функции f(х). Наиболее общий вид первообразной функции f(x) называют неопределенным интегралом и обозначают как

Соответственно определенный интеграл определяется как:

В состав этого выражения включена некоторая постоянная интегрирования С, подчеркивающая, что для одной и той же f(х) существует масса первообразных, описываемых одной и той же линией, но смещенных по вертикали на произвольную постоянную. Например, для f(х)=sin(x) имеем

Определенный интеграл представляется числом, а неопределенный — функцией. Для их вычисления используются принципиально различные методы. Так, вычисление неопределенного интеграла возможно только в системах символьной математики. А вот для вычисления определенных интегралов используются как символьные, так и численные методы интегрирования.

Встречается ряд специальных видов интегралов. Один из них — интеграл с переменным верхним пределом, представленный в виде:

В данном случае верхний предел представлен функцией y(х).

Следует отметить, что Maple обычно стремиться вычислить определенный интеграл в аналитическом виде, даже если он представляется числом. Если нужно найти заведомо численное значение определенного интеграла, можно воспользоваться численными методами вычисления.

4.4.2. Вычисление неопределенных интегралов

Для вычисления неопределенных и определенных интегралов Maple предоставляет следующие функции:

Здесь f — подынтегральная функция, x — переменная, по которой выполняются вычисления, а и b — нижний и верхний пределы интегрирования, continuous — необязательное дополнительное условие.

Maple старается найти аналитическое значение интеграла с заданной подынтегральной функцией. Если это не удается (например, для «не берущихся» интегралов), то возвращается исходная запись интеграла. Ниже приведены примеры визуализации и вычисления неопределенных интегралов (файл intex):

ln(x)³x — 3х ln(x)² = 6х ln(x) — 6х

-х 5 е (-x) — 5х 4 е (-x) — 20х 3 е (-x) — 60х 2 е (-х) — 120хе (-x) — 120е (-x)

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

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

Р(х) := ax³ + bx² + сх + d

Maple 9.5 успешно берет большинство справочных интегралов. Но не всегда форма представления интеграла совпадает с приведенной в том или ином справочнике.

4.4.3. Конвертирование и преобразование интегралов

В некоторых случаях Maple не может вычислить интеграл. Тогда он просто повторяет его. С помощью функций taylor и convert можно попытаться получить аналитическое решение в виде полинома умеренной степени, что демонстрирует следующий характерный пример:

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

Система Maple непрерывно совершенствуется. Например, в Maple V R4 интеграл с подынтегральной функцией ехр(х^4) не брался, а системы Maple, начиная с версии Maple 7, с легкостью берут его:

Хотя полученный результат, выраженный через гамма-функцию, нельзя назвать очень простым, но он существует и с ним также можно работать. Например, можно попытаться несколько упростить его, используя функцию simplify:

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

4.4.4. Вычисление определенных интегралов

Для вычисления определенных интегралов используются те же функции int и Int, в которых надо указать пределы интегрирования, например. х=а..b, если интегрируется функция переменной х. Это поясняется приведенными ниже примерами:

Как видно из этих примеров, среди значений пределов может быть бесконечность, обозначаемая как infinity.

4.4.5. Каверзные интегралы и визуализация результатов интегрирования

Рассмотрим интеграл, который встречает трудности при вычислении с ограниченным числом верных знаков в процессе вычислений. Maple 8/9/9.5 (кстати, как и Mathematica 4/5), с легкостью берут этот интеграл и позволяют сразу и без какой-либо настройки вычислить для него как точное, так и приближенное значение:

.0183504676972562063261447542317 = .01835046770

Любопытно, что версия Maple 6 при задании погрешности по умолчанию вычисляла значение этого интеграла также как 0, тогда как Maple 9.5 «поумнел» уже настолько, что дает значение 0.01835046770 даже в этом, не очень удачном, случае. Более того Maple 9/9.5 позволяет наглядно проиллюстрировать характер промежуточных вычислений подобных интегралов:

½+½I√3, ½-½I√3, RootOf(_Z 5 + _Z 4 — _Z 2 — _Z — 1, index = 1), RoolOf(_Z 5 + _Z 4 — _Z 2 — _Z — 1, index = 2), RootOf(_Z 5 + _Z 4 – _Z 2 — _Z — 1, index = 3), RootOf(_Z 5 + _Z 4 — _Z 2 — _Z — 1, index = 4), RootOf(_Z 5 + _Z 4 — _Z 2 — _Z — 1, index = 5)

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

Продолжим изучение данного «каверзного» интеграла. Опробуем силы Maple на интеграле более общего вида, где конкретный показатель степени заменен на обобщенный — n. Здесь нас ожидает приятный сюрприз — Maple с легкостью выдает аналитическое решение для данного определенного интеграла:

-6613313319248080001 e (-1) + 2432902008176640000

.01835046770

Однако радоваться несколько преждевременно. Многие ли знают, что это за специальная функция — WhittakerM? Но хуже другое — Maple при конкретном n=20 дает грубо неверное решение — 0 (почему — уже объяснялось). Забавно, что при этом сама по себе функция WhittakerM вычисляется для n=20 без проблем:

А теперь присмотритесь к новому результату вычисления злополучного интеграла. Оказывается, он уже не содержит больших чисел, свойственных прямому решению! Зная значение WhittakerM с погрешностью по умолчанию, можно уверенно вычислить приближенное численное значение интеграла с той же погрешностью, уже не прибегая к арифметике высокой точности:

.01835046770

На рис. 4.3 приведен график зависимости значений данного интеграла от показателя степени n при его изменении от 0 до 50. Плавный ход графика показывает, что в вычислении данного интеграла нет никаких признаков неустойчивости решения при изменении n, если соблюдать правило выбора достаточно малой погрешности вычислений.

Рис. 4.3. Значение интеграла от х^nехр(-х) как функция n

Наличие у функции особых (сингулярных) точек нередко затрудняет выполнение с ней ряда операций, таких как численное интегрирование. В этом случае могут помочь соответствующие параметры. Например, вычисление в Maple 8/9 следующего интеграла дает явно неудобное выражение в виде набора значений, разных для разных интервалов изменения a:

Этот интеграл расходится, поскольку при x=-a подынтегральная функция устремляется в бесконечность, что и показывает приведенное выражение. График зависимости значения интеграла от параметра а имеет подозрительный вид.

Это как раз тот случай, когда надо обратить особое внимание на результаты полученные системой Maple. А теперь покажем, как выглядит этот пример при его решении в системе Maple 9.5 — рис. 4.4. Обратите внимание на «провал» графика в средней части.

Рис. 4.4. Построение графика зависимости значений интеграла с подынтегральной функцией 1/(х+а)^2 от параметра a

Интересно, что если в нашем случае, применить параметр continuous (в апострофах) при вычислении интеграла, можно получить более простое выражение:

Рис. 4.5 показывает это решение с двумя важными дополнениями — оно представляется функцией пользователя, а ее график строится при изменении а от -10 до 10. «Провал» в средней части графика уже отсутствует.

Рис. 4.5. Зависимость значения интеграла с подынтегральной функцией 1/(х+а)^2 и пределами от 0 до 2 от параметра а

Приведем еще один пример «каверзного» интеграла довольно простого вида:

Этот интеграл не берется вообще, так что Maple совершенно справедливо об этом и сообщает. Но введение параметра CauchyPrincipalValue позволяет получить численное значение интеграла:

Возьмем еще один наглядный пример — вычисление интеграла от синусоидальной функции при произвольно больших пределах, но кратных 2π! Очевидно, что при этом (учитывая равность площадей положительной и отрицательной полуволн синусоиды) значение интеграла будет равно 0. Например:

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

Во многих областях техники часто употребляются математически неточные выражения «затухающая синусоида» или «нарастающая синусоида». Возьмем, к примеру, широко распространенную функцию: у(t)=exp(-t)sin(2π). Построим ее график и вычислим определенный интеграл от этой функции с пределами от 0 до ∞ (рис. 4.6).

Рис. 4.6. График «затухающей синусоиды» и интеграл от нее с пределами от 0 до ∞

С первого взгляда на график видно, что каждая положительная полуволна функции (затухающей «синусоиды») явно больше последующей отрицательной полуволны. К тому же осцилляции функции быстро затухают и через десяток-другой периодов значение функции становится исчезающе малым. Вот почему Maple уверенно вычисляет интеграл с такой подынтегральной функцией. Ее свойство — неопределенность при t→∞ просто исчезает.

А теперь возьмем антипод этой функции — «синусоиду с экспоненциально нарастающей до стационарного значения 1 амплитудой». Такая функция записывается следующим образом:

Ее график и попытки вычисления интеграла с такой подынтегральной функцией приведены на рис. 4.7.

Рис. 4.7. График «экспоненциально нарастающей синусоиды» и интеграл от нее с пределами от 0 до ∞

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

4.4.6. Вычисление несобственных интегралов первого рода

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

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

sin(1) — Ci(1) 0.5040670619

0.0506523094

Для подавляющего большинства интегралов результат вычислений с применением функций Int и int оказывается абсолютно идентичным. Однако есть и исключения из этого правила. Например, следующий интеграл благополучно очень быстро вычисляется функцией Int с последующей evalf:

Однако в Maple 9 функция int вместо числа возвращает «страшное» выражение:

Увы, но функция evalf(%), примененная после него, к более простому выражению не приводит — она просто повторяет выражение в выходной строке. Maple 9.5 при вычислении этого интеграла просто «завис» и спустя минуту так и не выдал результат.

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

1.878983561 +0.I

На сей раз результат получен (Maple 9.5 затратил на это около секунды). Он очень близок к полученному функцией Int, но все же имеет подозрительную мнимую часть с вроде бы нулевым значением. Он показывает, что не все здесь благополучно и что «пенки» в вычислении некоторых интегралов в Maple 9.5 все же возможны.

4.4.7. Вычисление несобственных интегралов второго рода

К несобственным интегралам второго рода относятся интегралы, имеющие в пределах интегрирования особенности подынтегральной функции. При этом сами пределы могут быть и конечными. Некоторые интегралы не имеют в среде Maple 9.5 общего решения, но исправно вычисляются для частных случаев (см. ниже для n неопределенного и конкретного n=6):

Приведем тройку примеров, требующих для вычислений «вручную» заметных умственных усилий, но прекрасно выполняемых системой Maple:

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

Это наглядный пример, когда Maple 9.5 «нагло врет», несмотря на заверения его создателей о том, что эта система прошла полную сертификацию на вычисления интегралов. Выполнив некоторые преобразования, найдем интеграл в системе Maple 8:

Увы, Maple 9.5 вычислять данный интеграл не желает — он его просто повторяет. Но, и в Maple 8 и в Maple 9.5 нужное значение определяется пределом этого выражения при х, стремящемся к бесконечности:

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

Приведенные примеры говорят о том, что и новые реализации Maple не лишены отдельных недостатков, возможно и привнесенных в их доработанное ядро. В общем, как говорят у нас в армии «Доверяй, но — проверяй!». Интегралы, представляемые через специальные математические функции, Maple 9.5/10 нередко вычисляет хуже, чем система Mathematica 4.5/5.

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

К интересному классу интегралов относятся определенные интегралы с переменными пределами интегрирования. Если обычный определенный интеграл представлен числом (или площадью в геометрической интерпретации), то интегралы с переменными пределами являются функциями этих пределов.

На рис. 4.8 показано два примера задания простых определенных интегралов с переменным верхним пределом (сверху) и обоими пределами интегрирования (снизу).

Рис. 4.8. Примеры интегралов с переменными пределами интегрирования

На этом рисунке построены также графики подынтегральной функции (это наклонная прямая) и функции, которую задаёт интеграл.

4.4.9. Вычисление кратных интегралов

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

.02500598527

-2.666666667 cos(.2500000000 π) 4 + 2.666666667 π

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

4.4.10. О вычислении некоторых других интегралов

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

Пусть требуется вычислить объем фигуры, ограниченной координатными плоскостями и плоскостью х+у+z=1. Он, с учетом равенства z=1-х-у, задается интегралом:

который заменяется следующим интегралом:

Последний, как видно, легко вычисляется.

Теперь вычислим массу указанной фигуры, которая задается тройным интегралом:

Здесь k — константа, характеризующая удельную площадь вещества. Этот интеграл также сводится к легко решаемому в Maple 9.5:

Специальные средства для вычисления подобных интегралов имеет пакет расширения VectorCalculus, который описывается в конце этой главы.

4.4.11. Maplet-демонстрация построения графика первообразной

В составе самоучителей Maple 9.5 есть раздел Antiderivative, который иллюстрирует технику построения первообразной функции при интегрировании. Для доступа к окну этого инструмента (рис. 4.9) достаточно исполнить команду Tools→Tutors→Calculus-Single Variables→Antiderivative….

Рис. 4.9. Окно Maplet-демонстрации графиков функций и первообразных

Окно Maplet-демонстрэции интегрирования позволяет задать подынтегральную функцию и построить ее график и график первообразной функции, представляющей неопределенный интеграл. В окне а и b это не пределы интегрирования, а пределы изменения х при построении графиков. Опция Show class of antiderivatives позволяет построить графики множества первообразных, с выделением графика первообразной функции для заданного начального значения Initial Value. По завершении работы с окном демонстрации графики выводятся в документ Maple 9.5 — рис. 4.10.

Рис. 4.10. Графики исходной функции и первообразных в окне документа Maple 9 5

4.4.12. Maplet-демонстрация методов интегрирования

Для демонстрации методов пошагового интегрирования имеется Maplet-инст-румент Step-by-step Integration Tutor. Для вызова его окна (рис. 4.11) нужно исполнить команду (в стандартном варианте интерфейса): Tools→Tutors→Calculus-Single Variables→Antiderivative….

Рис. 4.11. Окно Maplet-демонстрации методов пошагового интегрирования

Нетрудно заметить, что это окно практически аналогично окну для демонстрации методов пошагового дифференцирования, описанному в разделе 4.3.4 (рис. 4.2). В связи с этим подробное описание средств этого инструмента можно опустить. Отметим лишь, что он позволяет задавать подынтегральную функцию и пределы интегрирования и по шагам (автоматически или вручную) вычислять интегралы. По окончании работы с окном соответствующий интеграл и результат его вычисления появляется в окне документа — рис. 4.12.

Рис. 4.12. Пример вывода результата работы с Maplet-инструментом по методам интегрирования

4.4.13. Численное вычисление определенных интегралов

Для численного вычисления определенных интегралов используется функция evalf в сочетании с функциями Int или int:

Вместо многоточия могут использоваться различные опции, например, для задания метода вычислений. Могут использоваться комбинированные методы (аналитический с численным), ряд Maple-методов повышенной точности, методы предложенные группой NAG, метод Монте-Карло и др. Детали задания методов можно найти в справке. Ограничимся несколькими примерами вычисления определенных интегралов в численном виде (файл intnum):

Digits := 15

В двух последних примерах показано вычисление интегралов с повышенной точностью в 15 и 40 верных знаков. Аналогичным образом могут вычисляться и кратные интегралы.

На время и возможность вычисления определенных интегралов большое значение оказывает выбранный метод вычислений. Нередко его стоит указывать явно. Ниже приведены примеры этого с оценкой времени интегрирования (файл intmet):

1.979213867 72.375

1.979213867 2.579

1.979213867 2.578

1.979213867 3.876

1.979213867 1.531

В данном случае лучшим оказался метод _Dexp (адаптивный двойной экспоненциальный метода). Разумеется, для других интегралов более целесообразным может оказаться применение другого метода. Приведенные значения времен интегрирования могут заметно отличаться при реализации вычислений на разных ПК. Данные выше приведены для ПК с процессором Pentium 4 НТ с рабочей частотой 2,6 ГГц.

4.5. Вычисление пределов функций

4.5.1. Определение предела функции

Пределом функции f(х) называют то ее значение b, к которому функция неограниченно приближается в точке х=а (предел в точке) или слева или справа от нее. Пределы обозначается как:

Предел в точке a Предел слева от точки a Предел справа от точки а

При этом подразумевается, что функция f(x) определена на некотором промежутке, включающем точку х=а и во всех точках, близких к ней слева и справа. В последнем случае предел вычисляется для х=а-h или x=a+h при h стремящемся к нулю. Пределом может быть число, математическое выражение и положительная или отрицательная бесконечность. Последнее соответствует расширенному представлению о пределах.

4.5.2. Функции вычисления пределов в Maple 9.5

Для вычисления пределов функции f в точке х=а используются следующие функции:

Здесь f — алгебраическое выражение, z — имя переменной, dir — параметр, указывающий на направление поиска предела (left — слева, right — справа, real — в области вещественных значений, complex — в области комплексных значений). Значением а может быть бесконечность (как положительная, так и отрицательная).

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

Обратите внимание на то, что в первом примере фактически дано обозначение предела в самом общем виде. Приведем еще пример вычисления предела функции в виде дроби, имеющей неопределенность 0/0:

Как видно из этого примера, Maple «понимает» особенности функций при вычислении пределов.

4.5.3. Вычисление пяти замечательных пределов

Проверим возможности Maple при вычислении пяти замечательных пределов (файл limit5 — второй предел дан в двух вариантах):

REDMOND

Все пять замечательных пределов вычислены верно.

4.5.4. Графическая иллюстрация вычисления пределов с двух сторон

Рисунок 4.13 показывает вычисление пределов функции tan(x) в точке x=π/2, а также слева и справа от нее. Для указания направления используются опции right (справа) и left (слева). Видно, что в самой точке предел не определен (значение undefined), а пределы справа и слева уходят в бесконечность.

Рис. 4.13 Пример вычисления пределов функции tan(x) и построение ее графика

Показанный на рис. 4.13 график функции tan(x) наглядно подтверждает существование пределов справа и слева от точки x=π/2 и отсутствие его в самой этой точке, где функция испытывает разрыв от значения +∞ до -∞.

4.5.5. Maplet-инструмент для иллюстрации методов вычисления пределов

Для демонстрации методов пошагового вычисления пределов имеется Maplet-инструмент Step-by-step Limit Tutor. Для вызова его окна (рис. 4.14) нужно исполнить команду (в стандартном варианте интерфейса): Tools→Tutors→Calculus-Single Variables→Limit….

Рис. 4.14. Окно Maplet-демонстрации методов пошагового вычисления пределов

Нетрудно заметить, что это окно практически аналогично окну для демонстрации методов пошагового дифференцирования, описанному в разделе 4.3.4 (рис. 4.2). В связи с этим подробное описание средств и этого инструмента можно опустить. Отметим лишь, что он позволяет задавать функцию и значение x и по шагам (автоматически или вручную) вычислять пределы. По окончании работы с окном соответствующий предел и результат его вычисления появляется в окне документа — рис. 4.15.

Рис. 4.15. Пример вывода результата работы с Maplet-инструментом по методам вычисления пределов

4.6. Разложение функций в ряды

4.6.1 Определение рядов Тейлора и Маклорена

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

Очень часто желательно представление тех или иных функций f(х) в достаточно простом и единообразном виде. Эта задача решается методами аппроксимации, которые мы рассмотрим позже. Пока же зададимся более простой задачей — представления функций в виде степенного многочлена F(x) в окрестности заданной на оси абсцисс точки х=х0. Такое разложение было впервые получено Тейлором и получило название ряда Тейлора [68, 69]:

Если разложение выполняется относительно точки х=0, его принято называть рядом Маклорена:

4.6.2. Разложение в степенной ряд

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

Здесь expr — разлагаемое выражение, eqn — условие (например, в виде х=а) или имя переменной (например, х) и n — необязательное и неотрицательное целое число, задающее число членов ряда (при его отсутствии оно по умолчанию берется равным 6, но может переустанавливаться системной переменной Order). Если в качестве eqn задано имя переменной, то это соответствует разложению по этой переменной в области точки с ее нулевым значением. Задав eqn в виде x=x0 можно получить разложение по переменной х в окрестности точки x=х0.

Разложение получается в форме степенного многочлена, коэффициенты которого задаются рациональными числами. Остаточная погрешность задается членом вида O(х)^n. При точном разложении этот член отсутствует. В общем случае для его удаления можно использовать функцию convert. Ниже представлены примеры разложения различных выражений в ряд (файл series):

1.175201193 + 1.543080635(х-1.0) + .5876005967(х-1.0)² + O((х-1.0)³)

-.3068528194 + .5000000000x — .1250000000(x-2.)² + .04166666667(x-2.)³

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

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

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

Ниже представлены примеры применения функции taylor (файл taylor):

Не все выражения (функции) имеют разложение в ряд Тейлора. Ниже дан пример такого рода:

2 + x-1 + 2(x-1) 2 — (x-1) 3 + (x-1) 4 +O((x-1) 5 )

Здесь Maple 9.5 отказался от вычисления ряда Тейлора в окрестности точки х=0 (по умолчанию) и предложил воспользоваться функцией series. Однако эта функция просто повторяет исходное разложение. В то же время в окрестности точки х=1 ряд Тейлора вычисляется.

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

Здесь f — алгебраическое выражение, v — список имен или равенств, n — необязательное число, задающее порядок разложения, w — необязательный список целых чисел, задающих «вес» каждой из переменных списка v. Эта функция должна вызываться из библиотеки Maple 9 с помощью команды readlib:

proc() . end proc x y — ⅙ x³ y³

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

4.6.4. Пример документа — разложения синуса в ряд

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

На рис. 4.16 показана первая часть документа. Она дает пример разложения в ряд Тейлора функции sin(x) с построением ее графика и графика по разложению в ряд.

Рис. 4.16. Разложение функции sin(x) в ряд Маклорена шестого порядка и построение ее графика

Поскольку выбрано разложение относительно точки х=0, то полученный ряд является рядом Маклорена. Это хороший пример визуализации результатов математических вычислений — здесь наглядно видно, что при малых значениях x график ряда практически повторяет разлагаемую функцию, но затем начинает сильно от нее отходить.

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

Можно буквально в считанные секунды попробовать изменить число членов ряда или диапазон изменения переменной х, что и показано на рис. 4.17 (вторая часть документа). При этом легко убедиться в том, что при больших x поведение ряда не имеет ничего общего с поведением разлагаемой в ряд функции — в частности, нет и намека на периодичность разложения, которая присуща тригонометрической функции sin(x).

Рис. 4.17. Разложение функции sin(x) в ряд Маклорена 12-го порядка и построение ее графика

В заключительной (третьей) части этого документа (рис. 4.18) представлено уже истинное разложение синуса в ряд Тейлора в окрестности смешенной от нуля точки х=1. При смещении точки, относительно которой ведется разложение, выражение для ряда Тейлора существенно изменяется. В нем, во-первых, появляются члены четных степеней, а во-вторых, фигурирует аргумент вида (х-1) n .

Рис. 4.18. Разложение функции sin(x) в ряд Тейлора 12-го порядка относительно точки x=1 и построение ее графика

Нетрудно заметить, что даже при представлении такой «простой» функции, как sin(x), приемлемая погрешность представления одного периода достигается при числе членов ряда Тейлора порядка 10 и более. Однако существенное повышение порядка ряда нецелесообразно из-за резкого возрастания вычислительных погрешностей. Впрочем, если задать достаточно большое число верных цифр результатов, то в Maple можно использовать ряды с гораздо большим числом членов.

Кроме того, серьезным недостатком аппроксимации рядом Тейлора является непредсказуемое поведение полинома вдали от точки, относительно которой задается представление. Это хорошо видно на всех трех приведенных примерах.

Помимо указанных выше разложений в ряд Maple имеет множество функций для иных разложений. Например, в пакете numapprox имеется функция laurent(expr,var,n), позволяющая получить разложение в ряд Лорана, функция chebyshev(expr, eq/nm, eps) дает разложение в форме полиномов Чебышева и т.д.

4.6.5. Пакет вычисление степенных разложений powseries

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

Ниже представлено определение функций этого пакета:

compose(a.b) — объединяет ряды а и b;

evalpow(expr) — вычисляет выражение expr и возвращает его в виде ряда;

inverse(p) — инвертирует ряд р;

multconst(p,const) — умножает ряд p на константу const;

multiply(a,b) — умножает ряд а на ряд b;

negative(p) — возвращает аддитивный обратный по отношению к р ряд;

powadd(a,b,…) — складывает ряды а, b, …;

powcreate(expr) — создает ряд для выражения expr;

powpoly(pol,var) — создает ряд для полинома pol по переменной var;

powsolve(sys) — создает ряд для решения дифференциальных уравнений sys;

quotient(a.b) — возвращает частное для а и b в виде ряда;

reversion(a) — дает обратное к композиции разложение ряда а;

subtract(a.b) — дает разность рядов а и b.

В выражении expr могут использоваться операторы +, -, *, / и ^. С ними могут комбинироваться встроенные функции и функции пользователя, например fig). Кроме того, могут использоваться следующие функции:

4.6.6. Примеры выполнения степенных разложений

Назначение большинства этих функций очевидно из их названий — они возвращают соответствующую функцию (указанную после слова pow в имени) в виде разложения в ряд или полинома. Например, powexp раскладывает выражения с экспоненциальными функциями в ряд.

Получаемые функциями ряды представляются в специальном формате. Поэтому для их применения в обычном виде необходимо использовать функцию tpsform в следующих видах:

tpsform(p, var, order) — преобразует ряд p в обычную форму с заданием порядка order;

tpsform(p, var) — преобразует ряд p в обычную форму с порядком, заданным переменной Order.

Здесь p — имя степенного ряда, var — переменная, относительно которой записан ряд, order — порядок ряда. Если параметр order не указан, используется значение глобальной переменной Order. Ниже даны примеры, иллюстрирующие технику работы со степенными разложениями (файл pseries):

p1:= proc(powparm) … end proc

p2 := proc(powparm) … end proc

4.6.7. Maplet-иллюстрэция аппроксимации рядом Тейлора в ряд

Для демонстрации разложения аналитической функции в ряд имеется Maplet-инструмент Taylor Approximation. Для вызова его окна (рис. 4.19) нужно исполнить команду (в стандартном варианте интерфейса): Tools→Tutors→Calculus-Single Variables→Taylor Approximation….

Рис. 4.19. Окно Maplet-демонстрации аппроксимации функции рядом Тейлора

Нетрудно заметить, что это окно практически аналогично окну для демонстрации методов пошагового дифференцирования, описанному в разделе 4.3.4 (рис. 4.2). В связи с этим подробное описание средств и этого инструмента можно опустить. Отметим лишь, что он позволяет задавать функцию и значение x в точке разложения. По окончании работы с окном соответствующий предел и результат его вычисления появляется в окне документа. Можно просматривать постепенное улучшение приближения по мере увеличения порядка метода в режиме анимации.

4.7. Визуализация приложений математического анализа

Любая СКМ имеет возможности для визуализации различных приложений математического анализа. Особое внимание этому уделено в системе Maple 9.5, где с помощью Maplet-средств созданы самоучители, обеспечивающие наглядное представление приложений математического анализа.

4.7.1. Суммы Римана и приближение интегралов

Есть два основных способа вычисления определенных интегралов в численном виде:

• на основе сумм Римана (варианты метода прямоугольников);

• на основе приближения подынтегральной функции той или иной зависимостью.

Оба метода реализуются Maplet-инструментом Approximate Integration. Для вызова окна этого инструмента (рис. 4.20) нужно исполнить команду (в стандартном варианте интерфейса): Tools Tutors→Calculus-Single Variables→Approximate Integration…. Совершенно аналогичное окно выводит команда Tools→Tutors→Calculus-Single Variables→Rieman summs….

Рис. 4.20. Пример приближения интеграла суммой Римана (10 прямоугольников с центральным расположением)

В правой части окна размещены панели:

• ввода функции f(х), пределов а и b и числа интервалов разбиения

• задания расположения прямоугольников, которые образуют сумму Римана;

Относительно каждой ординаты прямоугольник может быть ориентирован сверху или снизу, справа или слева, посередине или даже случайным образом. При реализации формул приближения Ньютона-Котеса возможно применение метода трапеций, двух вариантов метода Симпсона (квадратичное приближение), метода Боде и известных формул Ньютона-Котеса заданного порядка (по умолчанию 5). В функциях численного интегрирования Maple тот или иной вид приближения можно задать явно, но по умолчанию метод выбирается автоматически. После выбора метода можно получить его графическую иллюстрацию (рис. 4.20), нажав мышью кнопку Display.

Данный инструмент позволяет наблюдать в анимации повышение точности вычислений по мере увеличения числа прямоугольников — см. рис. 4.21. Для пуска анимации достаточно нажать мышью кнопку Animate. На рис. 4.21 показан промежуточный кадр анимации. В конце анимации закраска области интегрирования становится сплошной, после чего анимация циклически повторяется.

Рис. 4.21. Промежуточный кадр анимации, демонстрирующей приближение интеграла суммами Римана

Приближение суммами Римана относится к довольно медленным методам интегрирования. Значительно повысить скорость интегрирования при заданной погрешности позволяют методы интегрирования повышенного порядка на основе формул Ньютона-Котесса. На рис. 4.22 показан пример приближения определенного интеграла на основе формулы Симпсона (параболического приближения подынтегральной функции). Из рисунка хорошо видно, что в этом случае (в отличие от рис. 4.20 при интегрировании методом прямоугольников) исходная подынтегральная функция и ее приближение отрезками парабол практически совпадают и на глаз их отличия выявить трудно.

Рис. 4.22. Пример приближения интеграла методом Симпсона

Кнопка Compare позволяет вывести таблицу с данными сравнения результатов интегрирования различными методами. Окно с этой таблицей представлено на рис. 4.23. Хорошо видно, что по мере повышения порядка метода интегрирования погрешность интегрирования уменьшается.

Рис. 4.23. Окно с результатами сравнения интегрирования различными методами

4.7.2. Вычисление длины дуги

Если f(x) непрерывная на отрезке от а до b функция, то длина дуги этой функции (длина спрямленного отрезка) определяется известным выражением:

Для демонстрации вычисления длины дуги заданной аналитической функции имеется Maplet-инструмент ArcLench. Для вызова его окна (рис. 4.24) нужно исполнить команду (в стандартном варианте интерфейса): Tools→Tutors→Calculus-Single Variables→ArcLench….

Рис. 4.24 Окно Maplet-инструмента для вычисления длины дуги

Данный инструмент по заданной функции f(x) и значениям а и b вычисляет длину дуги, выводит ее значение и вид интеграла, а также строит график функции, ее производной и зависимости длины дуги, начинающейся в точке а от текущего значения х, меняющегося от а до b. Соответствующие графики, отличающиеся цветом кривых, показываются в левой части окна инструмента.

Кнопка Color открывает окно выбора цвета из списка, который представлен окном Choose the color…, показанным внутри окна инструмента (см. рис. 4.24).

Выбрав цвет нужной кривой нажатие кнопки OK можно вызвать панель выбора цветов Select a color, показанную на рис. 4.25. По завершении выбора цвета нужная кривая будет отображена в новом цвете.

Рис. 4.25 Панель выбора цвета

4.7.3. Иллюстрация теоремы о среднем

Первая теорема о среднем гласит, что если f(x) интегрируемая функция, непрерывная на отрезке [a, b], то существует по крайней мере одно значение х=ξ в интервале [a, b], при котором

Иными площадь, определяемая интегралом может быть вычислена как площадь прямоугольника с основанием — отрезком ab и высотой f(ξ).

Для иллюстрации этого положения служит Maplet-инструмент Mean Value Theorem. Его окно (рис. 4.26) открывается исполнением команды Tools→Tutors Calculus-Single Variables→Mean Value Theorem… Работа с окном вполне очевидна. На графике строится кривая функции, отрезок, проходящий через ее концевые точки, точка со значением х=с=ξ и касательная к ней. Главный результат — значение с=ξ .

Рис. 4. 26. Окно Maplet-инструмента для иллюстрации первой теоремы о среднем

4.7.4. Построение касательной к заданной точке кривой

Для построения касательной к заданной точке на кривой f(x) служит Марlet-инструмент Tangent. Его окно (рис. 4.27) открывается исполнением команды Tools→Tutors→Calculus-Single Variables→Tangent…. Работа с окном вполне очевидна. На графике строится кривая функции и касательная к заданной точке х. Наклон касательной определяется значением первой производной f'(x), значение которой Slope и уравнений касательной вычисляются.

Рис. 4.27. Окно Maplet-инструмента для иллюстрации построения касательной к заданной точке

4.7.5. Построение касательной к заданной точке кривой и секущих линий

В некоторых случаях, например при реализации метода Ньютона решения нелинейных уравнений, помимо построения касательной к заданной точке кривой f(x) нужно строить секущие линии и определять их точки пересечения с f(x).

Для этого служит Maplet-инструмент Tangent and Secant. Его окно (рис. 4.28) открывается исполнением команды Tools→Tutors Calculus-Single Variables→Tangent and Secant…. Работа с окном вполне очевидна. На графике строится кривая функции и касательная к заданной точке х. Дополнительно строится ряд секущих. Возможно построение с применением анимации.

Рис. 4.28. Окно Maplet-инструмента для иллюстрации построения касательной к заданной точке и секущих линий

4.7.6. Вычисление поверхности вращения кривой

Пусть отрезок кривой f(х), при х в интервале [а,b] вращается вокруг оси 0х. Тогда площадь полученной фигуры вращения равна:

Для вычисления этой площади служит Maplet-инструмент Surface of Revolution. Его окно (рис. 4.29) открывается исполнением команды Tools Tutors→Calculus-Single Variables→Surface of Revolution…. Работа с окном вполне очевидна. На графике строится кривая функции и поверхность вращения этой кривой в 3D прямоугольной системе координат. Вычисляется значение площади. Вычисления возможны и при вращении отрезка кривой вокруг оси 0у.

Рис. 4.29. Окно Maplet-инструмента для иллюстрации вычисления площади фигуры, полученной вращением отрезка кривой

4.7.7. Вычисление объема фигуры, полученной вращением отрезка кривой

Пусть отрезок кривой f(х), при х в интервале [a, b], вращается вокруг оси 0х. Тогда объем полученной фигуры вращения равен:

Для вычисления этого объема служит Maplet-инструмент Volume of Revolution. Его окно (рис. 4.30) открывается исполнением команды Tools→Tutors→Calculus-Single Variables→Volume of Revolution…. Работа с окном вполне очевидна. На графике строится кривая функции и поверхность вращения этой кривой в 3D прямоугольной системе координат. Вычисляется значение объема полученной фигуры. Вычисления возможны и при вращении отрезка кривой вокруг оси 0у.

Рис. 4.30. Окно Maplet-инструмента для иллюстрации вычисления объема фигуры, полученной вращением отрезка кривой

4.8. Решение уравнений и неравенств

4.8.1. Основная функция solve

Одиночное нелинейное уравнение, например трансцендентное, можно задать в одной из двух форм:

F(x) = 0 или f(x) = expr,

expr — выражение. Второе уравнение всегда можно представить в виде F(x)=f(x)-expr=0, то есть в форме первого уравнения.

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

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

где eqn — уравнение, содержащее функцию ряда переменных, var — переменная, по которой ищется решение. Если при записи eqn не используются знак равенства или знаки отношения, считается, что solve ищет корни уравнения eqn=0. Если eqn полином, то solve вычисляет все корни полинома — как действительные, так и комплексные.

Характер решений можно изменить с помощью глобальных системных переменных:

_EnvExplicit — при значении true выдает решение без применения конструкции RootOf;

_EnvAllSolutions — при значении true задает выдачу всех решений;

_SolutionsMayBeLost — при значении true дает решение, которое при обычном применении функции solve возвращает значения NULL;

_MaxSols — задает максимальное число решений;

_EnvTryHard — при значении true может дать компактное решение, но это может потребовать увеличения времени вычислений.

В решениях могут встречаться следующие обозначения:

_NN — указывает на неотрицательные решения;

_В — указывает на решения в бинарной форме;

_Z — указывает на то, что решение содержит целые числа;

%N — при текстовом формате вывода задает общие члены решения и обеспечивает более компактную форму его представления.

В форме solve[subtopic] возможны параметры subtopic функции solve следующих типов:

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

Функция solve старается дать решение в аналитическом виде. Это не означает, что ее нельзя использовать для получения корней уравнений в численном виде. Просто для этого придется использовать функции evalf или convert. Если результат решения представлен через функцию RootOf, то зачастую можно получить все корни с помощью функции allvalues.

4.8.2. Решение одиночных нелинейных уравнений

Решение одиночных нелинейных уравнений вида f(х)=0 легко обеспечивается функций solve(f(x),x). Это демонстрируют следующие примеры (файл solve):

Если уравнение записывается без правой части, то это означает, что она равна нулю. Часто бывает удобно представлять уравнение и его решение в виде отдельных объектов, отождествленных с определенной переменной (файл solve):

В частности, это позволяет легко проверить решение (даже если оно не одно, как в приведенном примере) подстановкой (subs):

Сводящиеся к одному уравнению равенства вида f1(х)=f2(x) также решаются функцией solve(f1(x)=f2(x),x):

RootOf(_ Z 4 + _Z + 1, index = 1), RootOf (_Z 4 + _Z + 1, index = 2), RootOf(_Z 4 + _Z + 1, index = 3), RootOf(_ Z 4 +_Z + 1, index = 4)

.7271360845 + .9340992895 I, -.72711360845 + .4300142883 I, -.7271360845 — .4300142883 I, .7271360845 — .9340992895 I

0., 1.259921050, -.6299605250 + 1.091123636 I, -.6299605250 — 1.091123636 I

Обратите внимание в этих примерах на эффективность применения функции evalf, позволяющей получить решения, выраженные через функцию RootOf, в явном виде.

Некоторые даже с виду простые уравнения могут дать неожиданные для многих пользователей результаты. Пример такого рода приведен ниже (файл solve):

eq := е (-х) = х sol = LambertW(1)

0.5671432904

В данном случае решение получено через значение специальной функции Ламберта. Впрочем, с помощью функции evalf его можно представить в численном виде.

4.8.3. Решение тригонометрических уравнений

Функция solve может использоваться для решения тригонометрических уравнений:

Однако из приведенных примеров видно, что при этом найдено только одно (главное) решение. Оно ищется в интервале [-π, π]. Периодичность тригонометрических функций и связанная с этим множественность решений оказались проигнорированы. Однако можно попытаться найти все периодические решения, выполнив следующую команду:

_EnvAllSoIutions := true

Указанная в ней системная переменная отвечает за поиск всех периодических решений, когда ее значение равно true, и дает поиск только главных решений при значении false, принятом по умолчанию. Так что теперь можно получить следующее:

Здесь вспомогательные переменные _ВI

могут иметь только целочисленные значения (знак

означает, что на них наложено ограничение — в нашем случае в виде целочисленности возможных значений).

На рис. 4.31 показан более сложный случай решения нелинейного уравнения вида f1(х)=f2(x), где f1(х)=sin(x) и f2(х)=cos(x)-1. Решение дано в графическом виде и в аналитическом для двух случаев — нахождения главных значений корней и нахождения всех корней. Обратите внимание на команду _EnvAllSolutions:=true задающую поиск всех корней.

Рис. 4.31. Пример решения уравнения, имеющего периодические решения

В подобных решениях встречаются переменные _В1

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

Примеры решения уравнений с обратными тригонометрическими функциями показаны ниже:

eqns := 2 arcsin(x) — arccos(5x)

eqns := arccos(x) — arctan(½x)

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

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

eq1 := ах + by = е eq2 := cx + dу = f

В данном случае решение системы из двух линейных уравнений представлено в символьном виде.

Рисунок 4.32 дает еще два примера решения систем из двух линейных уравнений на этот раз в численном виде. В первом примере функция solve возвращает решение в виде значений неизвестных x и у, а во втором отказывается это делать.

Рис. 4.32. Примеры решения системы из двух линейных уравнений с графической иллюстрацией

В чем дело? Оказывается, в том, что во втором случае система просто не имеет решения. Импликативная графика пакета расширения plots дает прекрасную возможность проиллюстрировать решение. Так, нетрудно заметить, что в первом случае геометрическая трактовка решения сводится к нахождению точки пересечения двух прямых, отображающих два уравнения. При этом имеется единственное решение, дающее значения x и у для этой точки.

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

Решение систем из трех линейных уравнений также имеет наглядную геометрическую интерпретацию — в виде точки, в которой пересекаются три плоскости, каждая из которых описывается функцией двух переменных. Для наглядности желательно представить и линии пересечения плоскостей. Это позволяет сделать функция импликативной трехмерной графики implicitplot3d, что и показано на рис. 4.33. Для объединения графиков площадей использована функция display.

Рис. 4.33. Пример решения системы из трех линейных уравнений с графической иллюстрацией решения

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

Рис. 4.34. Графическая иллюстрация особых случаев решения системы из трех линейных

Следующий пример показывает решение системы из четырех линейных уравнений:

Эта система имеет решение, но его простая графическая иллюстрация уже невозможна.

Случай решения неполной системы уравнений (уравнений — 3, а неизвестных — 4) иллюстрирует следующий пример:

Как видно из приведенных примеров, функция solve неплохо справляется с решением систем линейных уравнений.

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

Функция solve может использоваться для решения систем нелинейных и трансцендентных уравнений. Для этого система уравнений и перечень неизвестных задаются в виде множеств. Ниже приведены примеры решения уравнений (файл solvenl):

у = RootOf(_Z² — _Zb + а), х = -RootOf(_Z² -_Zb + a)+b)

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

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

10.1. Условный оператор

Условный оператор в Maple начинается с зарезервированного слова if и обязательно должен заканчиваться, словом fi и имеет следующую структуру:

if условие then выражение 1 else выражение 2 fi ;

Данная конструкция дает возможность зависимости от значения логического условия выполнять выражение 1 (в случае если условие истинно) или выражение 2 (в случае если условие ложно). В качестве выражений 1 или 2 могут выступать любые последовательности команд из пакета Maple. Условный оператор может быть записан в сокращенном виде:

if условие then выражение 1 fi ;

[>if x>4 then print (‘x>4’); else x:=x^2;

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

if условие 1 then выражение 1 elif условие2 then выражение2 … elif условие n then выражение n else выражение n +1 fi ;

Как следует из структуры данного оператора вложенность условий может быть практически неограниченной и реализуется при помощи служебного слова elif . В качестве выражений можно использовать любые последовательности команд Maple.

10. 2 . Операторы цикла

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

for имя переменной цикла from начальное значение переменной цикла by шаг приращения значения переменной цикла to конечное значение переменной цикла

[>for i from 0 by 4 to 8 do i od;

Оператор цикла типа «пока» в Maple имеет вид

while условие do выражение od ;

В данном случае тело цикла (выражение) выполняется до тех пор, пока значение логического условия истинно и прекращается, если условие — ложно.

Следующий оператор цикла является симбиозом двух предыдущих и имеет следующую структуру:

for имя переменной цикла from начальное значение переменной цикла by значение приращение шага while условие do выражения od ;

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

[> for y from 0 by 2 while y

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

for имя переменной цикла in выражение 1 do выражение 2 od ;

Здесь тело цикла выражение 2 выполняется, в случае если символьная переменная заданная своим именем последовательно принимает значение каждого из операндов алгебраического выражения 1. Отметим, что работа данной конструкции зависит от внутреннего представления выражения 1. Так в случае если выражение 1 является суммой, то имя переменной цикла принимает поочередно значение каждого слагаемого, если произведение – то каждого сомножителя.

[> for m in a do m; od;

[> for m in b do m; od;

Процедуры-функции в Maple можно задавать двумя способами. Для задания процедур-функций первый способ использует символ (  ) и задается следующей структурой:

имя функции:=(список формальных параметров)  выражение;

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

Второй способ задания процедур-функций использует команду unapply и имеет следующую структуру:

имя функции:= unapply (выражение или операция, список переменных);

Этот способ задания процедур-функций полезен при определении новой функции через известную или, когда вычисленное выражение предполагает использовать как функцию.

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

имя процедуры := proc (список формальных параметров); команды (или выражения); end ;

Если процедура загружена, то ее вызов осуществляется по имени. Возвращаемым значением по умолчанию является значение последнего выполненного оператора (команды) из тела процедуры, при этом тип результата работы процедуры зависит от типа возвращаемого значения.

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

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

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

Для выхода из процедуры в любом месте ее тела и присваивания результату ее работы по выполнению нужной команды можно использовать команду RETURN ( val ), где val – возвращаемое значение, которое может иметь различный тип при выходе из разных мест процедуры.

Для аварийного выхода из процедуры в случае возникновения ошибки и сообщения о случившемся можно использовать команду ERROR (‘ string ’) , здесь string – сообщение, которое выводится на экран монитора в аварийной ситуации. Таким образом, общий вид структуры процедуры можно изобразить следующим образом:

имя процедуры:= proc (список параметров процедуры)  local  список локальных переменных, приведенных через запятую; global  список глобальных переменных, приведенных через запятую; RETURN ( val ); ERROR (‘ error in body of procedure ’);… end ;

[> examp:=proc(x) local y,w; global z; if x

Error, (in examp) Variablex = 0

11. СПОСОБЫ ВВОДА И ВЫВОДА ИНФОРМАЦИИ

Для сохранения имен (индентификаторов) переменных и их значений во внешнюю память в виде файла с именем name . txt необходимо ввести команду:

save список имен переменных, перечисленных через запятую, “имя файла с расширением txt ”;

Если в качестве расширения указан символ m , то файл будет записан во внутреннем Maple-формате, при всех других расширениях в текстовом формате. Для вывода на экран сохраненной в файле информации используется команда

read “ имя файла ”;

[> examp:=proc(x) local y,w; global z; if x

Error, (in examp) Variablex = 0

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

writeto (“имя файла”)

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

appendto (“имя файла”)

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

[> f1:=factor (y^2-3*y); save f,f1, "n1.txt";

В результате выполнения команды save f , f 1, " n 1. txt "; будет создан текстовый файл n 1. txt , который будет содержать следующую информацию:

а в результате выполнения команды appendto (" n 1. txt "); содержимое файла примет вид:

[ > solve ( x ^2-3* x +2=0, x );

В пакете Maple предусмотрен ряд команд вывода информации на экран. Наиболее простыми из них являются команды

print (список Maple -выражений, перечисляемых через запятую);

lprint (список Maple -выражений, перечисляемых через запятую);

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

[> x:=y^2: print (x, ‘primer 1’, y, factor(x-5*y));

[> x:=y^2: lprint (x, ‘primer 2’, y, factor(x-5*y));

y^2, primer 2, y, y*(y-5)

Из приведенных примеров следует, что команда print выводит выражения через запятую в естественном математическом виде, а команда lprint выводит информацию в стиле строки вывода и выражения отделяются друг от друга запятой и пробелами.

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

readdata (“имя файла”, тип переменной( integer / float – последний тип устанавливается по умолчанию),счетчик чисел);

Перед использованием данной команды необходимо ее активизировать при помощи команды:

Двойная индексация в переменной ff связана с тем, что числа представляются в виде двумерного массива, при этом число строк массива соответствует числу считанных строк, а количество столбцов определяется последним параметром команды readdata . Как следует из приведенного примера команда readline выводит числовые данные в виде переменной типа string .

12. ИСПОЛЬЗОВАНИЕ МАТЕМАТИЧЕСКОГО ПАКЕТА MAPLE ДЛЯ НАУЧНЫХ ИССЛЕДОВАНИЙ

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

12.1. Исследование влияния изменяемых параметров плоской помольной камеры мельницы противоточного действия на скорость энергоносителя

12 .1.1. Постановка задачи

Струйные мельницы являются разновидностью ударных измельчителей и состоят из разгонного аппарата (одного или нескольких), в котором струя газа-энергоносителя сообщает, скорость частицам обрабатываемого материала, и камеры, в которой происходит взаимодействие потоков материала между собой и(или) со специальными отбойными поверхностями. В качестве энергоносителя в струйных мельницах чаще всего применяется воздух, реже – инертный газ, водяной пар, продукты сгорания.

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

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

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

При истечении струи из разгонной трубки скорости потока в ее выходном сечении 1-1 во всех точках сечения равны между собой. На протяжении длины– начальном участке, осевая скорость постоянна по величине и равна скорости на срезе разгонной трубки V 0 . В области треугольника АВС (рис. 12.1.) во всех точках струи скорости энергоносителя равны между собой и также равны V 0 — эта область образует так называемое ядро струи. Далее осевая скорость постепенно уменьшается и на основном участке длинной l осн осевая скорость V ОС V 0 .

Рис. 12.1. Схема струи в помольной камере

Известно, что скорость энергоносителя от среза разгонной трубки до плоскости соударения струй изменяется по закону

где V z – скорость энергоносителя с помольной камере на расстоянии z от среза разгонной трубки, м/с;

V 0 – скорость энергоносителя на срезе разгонной трубки, м/с;

z 0 – расстояние от среза разгонной трубки до плоскости встречи струй, м.

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

где R – вектор силы динамического воздействия воздуха на частицу, Н;

F m – площадь сечения частицы, м 2 ;

где d э – эквивалентный диаметр частицы, м;

— коэффициент лобового сопротивления частиц;

V – вектор скорости энергоносителя, м/с;

U – вектор скорости частицы материала, м/с;

— плотность энергоносителя, кг/м 3 .

Изменение скорости частицы после вылета из разгонной трубки и движение вдоль камеры помола до оси Y – границы помольной камеры определяется уравнением динамики одиночной частицы

или в проекции на ось Z

где m – масса частицы измельчаемого материала, кг.

где — плотность частиц измельчаемого материала, кг/м.

Выражение (12.7) примет вид

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

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

Расстояние l стр – между срезом разгонной трубки и серединной плоскость в помольной камере выбрано из условия

REDMOND

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *