Символьные вычисления. Дифференцирование и интегрирование

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

Символьные вычисления в MathCAD можно осуществлять в двух различных вариантах:

- с помощью команд меню;

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

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

Для символьных вычислений при помощи команд предназначено главное меню «Символика» с математическими операциями, которые MathCAD умеет выполнять аналитически. Для реализации второго варианта применяются все средства, пригодные для численных вычислений (например, панели «Калькулятор», «Вычисления»), и специальная математическая панель инструментов, вызываемая нажатием кнопки «Символы» на панели «Математика». На панели «Символы» находятся кнопки, соответствующие специфическим командам символьных преобразований (разложение выражения на множители, упрощение и др.).

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

- ввести выражение;

- выделить его;

- выбрать в главном меню «Символика» строку «Разложить».

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

По второму варианту разложения выражения на сомножители необходимо:

- ввести выражение;

- на панели «Символы» нажать кнопку «Разложить»;

- ввести в место заполнитель после появившегося ключевого слова expand имя переменной, либо нажать клавишу Del, чтобы просто удалить место заполнитель;

- ввести оператор символьного вывода  ®.

- нажать клавишу  Enter  либо просто щелкнуть мышью за пределами выражения.

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

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

Сказанное выше относится, в основном, и к операциям дифференцирования и интегрирования. При дифференцировании с помощью меню имеют место два недостатка:

- для получения n-й производной необходимо n раз обращаться к меню;

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

При использовании панели «Математика» и соответствующего шаблона можно получить n-ю производную за одну операцию. С использованием этой же панели можно выполнять процедуры интегрирования.

MathCAD позволяет осуществлять широко применяемые в инженерных расчетах интегральные преобразования Фурье, Лапласа, Z-преобразование. Эти преобразования осуществляются с панели «Символы» с помощью команд:

- fourier – прямое преобразование Фурье;

- inverse fourier – обратное преобразование Фурье;

- laplace – прямое преобразование Лапласа и т.д.

Вид интегрального преобразования в MathCAD существенно зависит от вида исходной функции, которую целесообразно предварительно упрощать.

Решение уравнений

Для решения уравнений вида  MathCAD предоставляет встроенную функцию root, которая может быть использована в двух вариантах. В первом из них искомому решению уравнения присваивается значение . Перед этим необходимо задать функцию  и присвоить x некоторое значение, вблизи которого будет проводиться поиск решения. Во втором варианте искомому решению присваивается значение , где (a,b) – интервал, внутри которого заведомо находится искомое решение. После этого его нужно вывести на экран (). Решение ищется численными методами, а его поиск начинается с выбранного значения или интервала с последующим приближением к истинному значению. Функцию  можно также определить внутри тела функции root.

Точность полученного решения зависит от значения встроенной константы TOL, определяющей точность численных методов. По умолчанию TOL = 0,001. Она может быть изменена пользователем, но следует знать, что чем меньше величина этой константы, тем больше времени затрачивается на вычисления.

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

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

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

Пусть имеется система нелинейных уравнений:

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

- вводится ключевое слово Given;

- решаемая система записывается с помощью Булевых операторов равенства и, если потребуется, неравенства;

- некоторому вектору (например v) присваиваются значения встроенной функции , решающей систему.

Обращение к этому вектору () выводит на экран решение системы. В выведенном на экран векторе v первый элемент представляет собой решение системы по первому аргументу, второй элемент – по второму аргументу и т.д. Общее число элементов вектора v равно числу переменных функции Find.

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

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

- функции  могут быть определены как заранее, до ключевого слова Given, а система определена после него с помощью имён функций и Булевых операторов, так и непосредственно внутри вычислительного блока (между Given и Find) с помощью выражений, определяющих функции, с одновременным заданием системы;

- поиск решения проводится численными методами, и погрешность результата при решении системы будет определяться встроенной константой CTOL, которую пользователь может менять (по умолчанию CTOL = 0,001);

- при попытке решить несовместную систему MathCAD выдаёт сообщение об ошибке с предложением поменять начальные значения.

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: