Инструментальные средства математического моделирования. Учебное пособие
.pdf
4.3. Решение уравнений и неравенств
Рис. 4.5. Вычисление кратных интегралов
4.3. Решение уравнений и неравенств
Maple имеет мощные средства для решения линейных и нелинейных уравнений и неравенств. Для решения линейных и нелинейных уравнений в аналитическом виде используется достаточно универсальная и гибкая функция solve(eqn, var) или solve({eqnl,eqn2,.. .},{varl,var2,...}), где eqn – уравнение, содер-
жащее функцию ряда переменных, var – переменная, по которой ищется решение. Если при записи eqn не используются знак равенства или знаки отношения, считается, что solve ищет корни уравнения eqn=0. Характер решений изменяется с помощью глобальных переменных:
•_SolutionsMayBeLost – при значении true дает решение, кото-
рое при обычном применении функции solve возвращает значе-
ния NULL;
•_MaxSols – задает максимальное число решений;
•_EnvAll Solutions – при значении true задает выдачу всех решений.
Врешениях могут встречаться следующие обозначения:
•_NN – указывает на неотрицательные решения;
•_В – указывает на решения в бинарной форме;
31
4.Средства математического анализа
•_Z – указывает на то, что решение содержит целые числа;
•%N – при текстовом формате вывода задает общие члены решения и обеспечивает более компактную форму его представления.
Вsolve[subtopic] возможны параметры subtopic функции solve следующих типов: floats, functions, identity, ineq, linear, radical, scalar, series, system.
При решении систем уравнений они и список переменных задаются как множества (в фигурных скобках), и результат возвращается в виде множества. Для преобразования его к обычному решению используют функцию assign. По-умолчанию solve ищет решение аналитически. Для получения корней в численном виде используют функции evalf или convert.
Если результат решения представлен через функцию RootOf, то зачастую можно получить все корни с помощью функции
allvalues. Пример:
> solve(x^2-4*x+1,x);
> solve(sin(x)-1,x);
2 + √3, 2 – √3
1
2 p
Для решения систем линейных уравнений созданы мощные матричные методы. Однако функция solve также может с успехом решать системы линейных уравнений. Такое решение в силу простоты записи функции может быть предпочтительным. Для решения система уравнений и перечень неизвестных задаются в виде множеств (рис. 4.6).
Функция solve может использоваться для решения систем нелинейных и трансцендентных уравнений. Система уравнений
иперечень неизвестных задаются аналогично (рис. 4.7).
Врешениях уравнений нередко появляется функция RootOf, означающая, что корни нельзя выразить в радикалах. Эта функция применяется и самостоятельно в виде RootOf(ехрr) или RootOf(ехрr, х), где ехрr – алгебраическое выражение или равенство, х – имя переменной, относительно которой ищется решение. Если х не указана, ищется универсальное решение по переменной _Z. Когда ехрr задано не в виде равенства, решается уравнение ехрr=0. Для получения решений вида RootOf в явном виде может использоваться функция allvalues.
32
4.3. Решение уравнений и неравенств
Рис. 4.6. Решение линейных систем уравнений
Рис. 4.7. Решение систем нелинейных уравнений
33
4. Средства математического анализа
Maple позволяет, наряду с уравнениями, решать неравенства и системы неравенств. Решение неравенств существенно расширяет возможности функции solve. При этом неравенства задаются так же, как и равенства. Формой решения неравенств является представление критических значений аргумента, вплоть до не включаемых значений области действия неравенства (они указываются словом Open). Всегда разумным является построение графика выражения, которое задает неравенство. Это позволяет наглядно убедиться в правильности решения (рис. 4.8).
Рис. 4.8. Анализ неравенств
Контрольные вопросы
1.Вычисление суммы в Maple.
2.Вычисление произведения в Maple.
34
4.3.Решение уравнений и неравенств
3.Вычисление производных в Maple.
4.Вычисление пределов в Maple.
5.Вычисление неопределенных интегралов в Maple.
6.Вычисление определенных интегралов в Maple.
7.Назначение функции solve.
35
5.Символьные операции
5.1.Основные операции с выражениями
Выражения (ехрr) или уравнения (eqn) обычно используются как сами по себе, так и в виде равенств или неравенств. В последнем случае объекты с выражениями имеют левую и правую части. Для простейших манипуляций с выражениями полезны следующие функции:
•cost (а) – возвращает число сложений и умножений в выражении а (функция пакета codegen);
•Ihs(eqn) – выделяет левую часть eqn;
•rhs(eqn) – выделяет правую часть eqn;
•normal (ехрr) – дает нормализацию (сокращение) ехрr в виде дроби;
•numer(expr) – выделяет числитель ехрr;
•Оdenom(expr) – выделяет знаменатель ехрr.
Вобщем случае выражения могут быть многоуровневыми и содержать объекты, расположенные на разных уровнях вложенности. Приведем две функции для оценки уровней выражений и списков:
•nops(expr) – возвращает число объектов первого уровня выражения ехрr;
•ор(ехрr) – возвращает список объектов первого уровня выражения ехрr;
•ор(n.ехрr) – возвращает n-й объект первого уровня в выражении ехрr.
Многие математические выражения имеют различные тож-
дественные формы. Порою преобразование выражения из одной формы в другую позволяет получить результат, более удобный для последующих вычислений. Кроме того, различные функции Maple работают с разными формами выражений и разными типами данных. Поэтому большое значение имеет целенаправленное преобразование выражений и данных.
Основной для такого преобразования является функция
•convert(expr. form, аrg3...) .
Здесь ехрr – любое выражение, form – наименование формы,
аrg3, ... – необязательные дополнительные аргументы.
36
5.2. Преобразования и подстановки
Полный перечень параметров функции convert (76 штук!) можно найти в справке этой функции. Многие из этих параметров очевидны, поскольку повторяют наименования типов чисел, данных или функций. Например, опции binary, decimal, hex и octal преобразуют заданные числа в их двоичное, десятичное, шестнадцатеричное и восьмеричное представление. Параметр vector задает преобразование списка в вектор (напоминаем, что список и вектор – разные типы данных), а параметр matrix – в матрицу.
Еще одним мощным средством преобразования выражений является функция combine. Она обеспечивает объединение показателей степенных функций и преобразование тригонометрических и некоторых иных функций.
5.2. Преобразования и подстановки
Подстановкивобщемслучаеслужатдлязаменыоднойчастивыражения на другую. Частными видами подстановок являются такиевидыопераций,какзаменаоднойпеременнойнадругуюилизамена символьного значения переменной ее численным значением.
Рис. 5.1. Функции подстановки
37
5. Символьные операции
Основные операции подстановки выполняют следующие функции:
•subs(x=a.e) – в выражении е заменяет подвыражение х на а;
•subs(sl,...,sn,e) – в выражении е заменяет одни подвыражения на другие, выбирая их из списков si, ..., sn вида х=а.
Все эти функции возвращают измененное после подстановки выражение.
Сортировка и селекция выражений широко используются в практике символьных преобразований, для чего в различных видах служит функция
sort(L) sort(L, F) sort(A) sort(A, V)
Здесь L – список сортируемых значений, F – необязательная булева процедура с двумя аргументами, А – алгебраическое выражение, V – необязательные дополнительные переменные.
Другая функция – select служит для выделения требуемого вы-
ражения: select(f, e), select(f, е, b1, ..., bn)
Как бы обратной ей по действию служит функция remove, устраняющая заданные выражения:
remove(f, e)
remove(f, е, b1, ... , bn)
В этих функциях f – процедура, возвращающая логическое значение, е – список, множество, сумма, произведение или функция, b1, ..., bn – необязательные дополнительные аргументы (рис. 5.2).
Рис. 5.2. Сортировка и селекции выражений
38
5.3. Упрощение выражений
5.3.Упрощение выражений
Функция simplify системы символьных операций предназначена для упрощения математических выражений. Представление математических выражений в наиболее простом виде нередко является целью большинства математических действий. В системе Maple функция упрощения используется в следующем виде:
•simplify(expr) – возвращает упрощенное выражение ехрr или повторяет его, если упрощение в рамках правил Maple невозможно;
•simplify(expr, nl, n2, ...) – возвращает упрощенное выражение ехрr с учетом параметров с именами nl, n2, ... (в том числе заданных списком или множеством);
•simplify(ехрг,assume=prop) – возвращает упрощенное выражение ехpr с учетом всех условий.
Функция simplify обеспечивает упрощение математических
выражений, выполняя типовые действия (обозначим их как ->) (см. рис. 5.3):
Рис. 5.3. Упрощение выражений
39
5.Символьные операции
•комбинируя цифровые подвыражения (3*х*5->15*х, 10*х/5- >2*х);
•приводя подобные множители в произведениях (х^3*а*х- >а*х^4);
•приводя подобные члены в суммах (5*х+2+3*х->8*х+2);
•используя тождества, содержащие ноль (а+0->а, х-0->х);
•используя тождества, содержащие единицу (1*х->х);
•распределяя целочисленные показатели степени в произведе-
ниях ((3*x*y^3)^2 ->9*х^2*у^6);
•сокращая ехрr на наибольший общий полиномиальный или иной множитель;
•понижая степень полиномов там, где это возможно;
•используя преобразования, способные упростить выражения. Для функции simplify целесообразно конкретизировать область
упрощения и подсказать упрощающие преобразования, что достигаетсявключениемвееаргументыименспециальныхматематических функций и указанием области действия упрощений: Bessell, BesselJ, BesselK, BesselY, Ei, GAMMA, RootOf, LambertW, dilog, exp, In, sqrt, polylog, pg, pochhammer, trig (для всех тригонометрических функций), hypergeom, radical, power и atsign (для операто-
ров).Параметрsymbolicявноуказываетнапроведениесимвольных преобразований. Если функция simplify не способна выполнить упрощение выражения ехрr, то она просто его повторяет.
Контрольные вопросы
1.Функция convert.
2.Функция combine.
3.Функция subs.
4.Функция sort.
Проектные задания
Раздел 1. Пользовательский интерфейс системы Maple.
1.Опишите основной состав пакета Maple.
2.Укажите структуру меню Maple и назначение его базовых команд.
3.Опишите форматы файлов в Maple.
40
