
ЛАБОРАТОРНАЯ РАБОТА № 4
Приближенные методы решения алгебраических уравнений. Численное дифференцирование и интегрирование. Символьные вычисления
Упрощение математических выражений
Команда Symbolics (Символьные вычисления) ► Simplify (Упростить) обеспечивает выполнение одной из самых важных символьных операций, которая позволяет упрощать математические выражения, содержащие алгебраические и тригонометрические функции, а также выражения со степенными многочленами (полиномами). Упрощение означает замену сложных фрагментов выражения простыми. К примеру, в прежних версиях Mathcad функция tan(х) считалась более сложной, чем функции sin(x), cos(x), поэтому тангенс представлялся через соотношение этих функций.
Эта команда открывает широкие возможности для упрощения сложных и плохо упорядоченных алгебраических выражений. С помощью команды Simplify можно выполнять символьные вычисления производных и определенных интегралов, заданных соответствующими операторами.
Символьное вычисление производных
Если
f(х)
— непрерывная функция аргумента х,
то производная этой функции определяется
следующим образом:
.
Таким образом, производная функции
f(х)
— это предел, к которому стремится
отношение бесконечно малого приращения
функции к соответствующему бесконечно
малому приращению аргумента
.
Если речь идет о вычислении численного
значения производной, то оно производится
в некоторой точке х
= х0.
Как известно, значение производной
геометрически характеризуется наклоном
касательной к графику f(х)
в точке х
= х0.
Непрерывность функции не является достаточным признаком того, что она имеет производную. Не все такие функции имеют производные во всех точках. В принципе, возможны даже непрерывные функции, вообще не имеющие производных. Разрывные функции в точках разрыва не имеют производных, хотя возможны производные слева и справа от точек разрыва.
Производная от производной f(х), то есть функция f''(х), называется производной второго порядка. Могут быть производные третьего, четвертого и т. д. порядков, словом, производные высшего порядка. Все математические системы способны вычислять такие производные, как и первую производную f'(х) от функции f(х).
Довольно часто встречаются функции нескольких переменных, например f(х, у, z ,...). В этом случае может идти речь о частных производных по переменным х, у, z, и т.д.
С помощью команды Symbolics (Символьные вычисления) ► Simplify (Упростить) вполне возможно вычисление производных как первого, так и высшего порядков, заданных явно операторами дифференцирования.
Символьное вычисление интегралов
Если
есть некоторая функция f(х),
то показанный ниже определенный
интеграл дает значение площади,
ограниченной вертикалями а
и b,
именуемыми пределами интегрирования,
кривой f(х)
и осью абсцисс х:
.
Такой интеграл обычно представляется
числом (в общем случае комплексным),
но может быть представлен и аналитическим
выражением. Если f(x)dx
есть дифференциал функции F(х),
то f(x)dx
= dF(x).
Функцию F(х)
называют первообразной функции f(x).
Наиболее общий вид первообразной
функции f(х)
называют неопределенным интегралом
и обозначают следующим образом:
.
В состав этого выражения обычно включается некоторая постоянная интегрирования С, подчеркивающая, что для одной и той же функции f(х) существует масса первообразных, описываемых одной и той же линией, но смещенных по вертикали на произвольную постоянную. О ее существовании надо помнить, так как она отдельно в результате не показывается. Возможно также вычисление кратных интегралов, например двойных.
Система Mathcad содержит встроенную функцию для вычисления значений определенных интегралов приближенным численным методом. Ею целесообразно пользоваться, когда нужно просто получить значение определенного интеграла в виде числа. С другой стороны, команда Symbolics (Символьные вычисления) ► Simplify (Упростить) применительно к вычислениям определенных интегралов делает гораздо больше — она ищет аналитическое выражение для интеграла. Более того, она способна делать это и при вычислении кратных интегралов, пределы которых — функции.
Как и в случае с вычислением производных, вычисление интегралов с помощью команды Simplify требует записи вычисляемых интегралов в явном виде — с применением шаблонов интегралов.
Расширение выражений
Действие команды Symbolics (Символьные вычисления) ► Expand (Разложить по степеням) в известном смысле противоположно действию команды Symbolics (Символьные вычисления) ► Simplify (Упростить). Подвергаемое преобразованию выражение «расширяется» с использованием известных (и введенных в символьное ядро) соотношений. Разумеется, расширение происходит только в том случае, когда его результат однозначен, иначе нельзя считать, что действие этой команды противоположно действию команды Simplify. К примеру, команда Simplify преобразует сумму квадратов синуса и косинуса в 1, тогда как обратное преобразование многозначно и потому в общем виде невыполнимо.
При преобразовании выражений командой Expand система старается более простые функции представить через более сложные, свести алгебраические выражения, представленные в сжатом виде, к выражениям в развернутом виде и т. д.
Разложение выражений
Команда Symbolics (Символьные вычисления) ► Factor (Разложить множители) используется для факторизации — разложения выражений или чисел на простые множители. Она способствует выявлению математической сущности выражения, например наглядно выявляет представление полинома через его действительные корни, а в том случае, когда разложение части полинома содержит комплексно-сопряженные корни, порождающее их выражение представляется квадратичным трехчленом. В большинстве случаев (но не всегда) операция факторизации ведет к упрощению выражений. Термин «факторизация» не является общепризнанным в отечественной математической литературе, но мы его оставляем в связи с созвучностью англоязычному названию этой операции.
В Mathcad разложение чисел на простые множители записывается как произведение множителей, причем повторяющиеся п раз множители записываются в степени п.
Разложение по подвыражениям
Команда Symbolics (Символьные вычисления) ► Collect (Разложить по подвыражениям), полное название которой «Collect on Subexpresion», обеспечивает замену указанного выражения выражением, скомплектованным по базису указанной переменной, если такое представление возможно. Эта команда особенно удобна, когда заданное выражение есть функция ряда переменных и нужно представить его в виде функции заданной переменной, имеющей вид степенного многочлена. При этом другие переменные входят в сомножители указанной переменной, представленные в порядке уменьшения ее степени. В том случае, когда комплектование по базису указанной переменной невозможно, система выдает сообщение об этом (снизу на рисунке).
Подстановка
Команда Symbolics (Символьные вычисления) ► Variable (Переменная) ► Substitute (Подставить) возвращает новое выражение, полученное путем подстановки вместо указанной переменной некоторого другого выражения. Последнее должно быть подготовлено и помещено в [буфер обмена командой Cut (Вырезать) или Сору (Копировать) меню Edit (Правка). Наряду с получением результата в символьном виде эти команды позволяют найти и численные значения функции некоторой переменной путем замены ее аргумента числовым значением. Подстановка и замена переменных довольно часто встречаются в математических расчетах, что делает эти команды весьма полезными. Кроме того, они дают возможность перейти от символьного представления результата к числовому.
Разложение в ряд Тейлора
Команда Symbolics (Символьные вычисления) ► Variable (Переменная) ► Expand to Series (Разложить в ряд) выполняет разложение выражения в ряд Тейлора относительно выделенной переменной с заданным по запросу числом членов ряда п (число определяется по степеням ряда). Такое разложение относительно точки х = х0 функции f(x) имеет вид:
.
Если
разложение выполняется относительно
точки х
= 0, его принято называть рядом Маклорена:
.
По умолчанию принимается п
= 6. Разложение возможно для функции
заданной переменной. В разложении
указывается остаточная погрешность.
Команда Expand - разлагает функцию по простым степеням, по простому аргументу.
Символьные операции нередко можно комбинировать для решения сложных задач — задачи вычисления определенного интеграла, который не берется в явном виде.
Если пользователя (например; инженера) интересует просто численное значение интеграла, надо лишь поставить после интеграла знак вывода = и значение интеграла будет вычислено адаптивным численным методом Симпсона. Однако попытка вычислить такой интеграл с помощью команды Symbolics (Символьные вычисления) ►Simplify (Упростить) окажется неудачной: после долгих попыток система сообщит, что интеграл в явном виде не берется.
Прием заключается в замене подынтегральной функции ее разложением в ряд Тейлора. Вначале необходимо получить такое разложение с избытком — для 10 членов ряда (однако учтенных нечетных членов тут нет, такова специфика функции). Далее, выделив четыре первых реальных члена и используя команды Сору (Копировать) и Paste (Вставить) меню Edit (Правка), поместить это разложение на место шаблона подынтегральной функции. Теперь проблем с вычислением интеграла с помощью команды Simplify не будет.
Интеграл получается в форме ехр(), помноженной на дробные множители, представленный в рациональной форме (отношения целых чисел). Это обстоятельство, возможно, бесполезное для рядового пользователя, наверняка будет весьма положительно воспринято «истинным» математиком, поскольку здесь напрашиваются определенные аналитические выводы, которые нельзя сделать при вычислении интеграла численными методами.
Решение уравнений
Если задано некоторое выражение F(x) и выделена переменная х, команда Symbolics (Символьные вычисления) ► Variable (Переменная) ► Solve (Решить) возвращает символьные значения указанной переменной х, при которых F(x) = 0. Это очень удобно для решения алгебраических уравнений, например квадратных и кубических, а также для вычисления корней полинома.
С помощью команды Paste (Вставить) меню Edit (Правка) можно перенести решение в основное окно системы, но оно окажется текстовым комментарием (а не частью математического выражения) и не будет пригодно для дальнейших преобразований. Впрочем, часть решения (опять-таки через буфер обмена) можно ввести в формульные блоки для последующих преобразований и вычислений. Если при решении квадратного уравнения получены простые выражения, известные даже школьникам, то при увеличении порядка уравнения всего на единицу результаты представляются весьма громоздкими и малопригодными для анализа формулами. Хорошо еще, что существующими!
Пользователю надо реально оценить свои силы в упрощении решения. Это придется сделать «вручную». При технических расчетах специалист нередко знает, какие из параметров решения несущественны, и может их отбросить. Однако для строгих математических расчетов это не всегда возможно, поэтому даже громоздкий результат может быть весьма полезным с познавательной точки зрения.