Материал: 6386

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Глава 9. Символьные вычисления в MathCAD

9.СИМВОЛЬНЫЕ ВЫЧИСЛЕНИЯ

Ядро символьных вычислений MathCAD предназначено для аналитических преобразований математических выражений. Некоторые из этих возможностей MathCAD (версии до 13.1 включительно) основаны на подмножестве системы компьютерной алгебры Maple (MKM, Maple Kernel Mathsoft). Начиная с 14 версии MathCAD использует символьное ядро MuPAD.

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

Листинг 46. Символьное упрощение выражения

Воспользоваться возможностями символьного ядра можно вызвав одну из функций символьных преобразований (Таблица 2) из инструментальной панели шаблонов «Symbolic» или вызвав одноименную вкладку главного меню (Рис. 38).

 

Рис. 38 – Вызов символьных преобразований MathCAD

 

 

Таблица 2. Функции символьных вычислений MathCAD

Функции

 

Выполняемые операции

 

float

 

Численное вычисление

 

complex

 

Комплексное вычисление

 

assume

 

Символьное вычисление с некоторыми предположениями

 

solve

 

Решение уравнения, неравенства, системы уравнений

 

simplify

 

Упрощение выражений

 

substitute

 

Замена переменной

 

factor

 

Разложение на множители

 

expand

 

Перемножение степеней и произведений

 

coeffs

 

Определение коэффициентов полинома

 

collect

 

Группировка слагаемых по степеням переменной

 

series

 

Разложение в ряд Тейлора или Лорана

 

76

 

 

 

Профессиональные математические пакеты

 

 

 

 

 

 

 

 

parfrac

Разложение на элементарные дроби

 

 

fourier

Преобразование Фурье

 

 

invfourier

Обратное преобразование Фурье

 

 

lарlасе

Преобразование Лапласа

 

 

invlaplace

Обратное преобразование Лапласа

 

 

ztrans

Z-преобразование

 

 

invztrans

Обратное Z-преобразование

 

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

Многие задачи математического анализа, например, суммирование ряда, взятие производных, интегрирование, взятие несобственного интеграла и т.п. (см. Листинг 47) могут быть легко разрешены при помощи ядра символьных вычислений MathCAD.

Листинг 47. Оператор индикации символьных значений

9.1.Аналитическое решение уравнений

Символьный процессор программы MathCAD позволяет решать уравнения и неравенства аналитически, для этого используется встроенная функция solve (решить):

Листинг 48. Решение уравнений и неравенств - символьные преобразования

Можно осуществлять символьные подстановки в выражение (Листинг 49). Для этого используется функция substitute (подстановка):

Листинг 49. Символьная подстановка

Ограничения на переменную

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

вобласти данного оператора – в остальных частях программы они не учитываются.

Впримере (Листинг 50) аналитически вычислен определенный интеграл. Символьный процессор MathCAD настолько совершенен, что вычислил три решения интеграла, в зависимости от значений a и b – пределов интегрирования. Принимая

77

Глава 9. Символьные вычисления в MathCAD

ограничения на переменные a и b, можно получить одно из этих решений, как показано в нижней части примера (Листинг 50).

Листинг 50. Ограничения на переменную

Используя команды float (вещественные) и complex (комплексные), можно переключать символьные вычисления из одного режима в другой.

9.2.Упрощение выражений

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

(упростить).

Как видно на примере ниже (Листинг 51), можно заставить операцию simplify (и другие функции символьного процессора) возвращать вещественные значения вместо символьных, для этого необходимо один из аргументов функции задать вещественным числом. Как это сделано в примере ниже при вычислении asin(1.0). Нужно понимать при этом, что расчеты всё равно проводятся аналитически, а затем вычисленное значение /2 переводится в формат с десятичной точкой.

Листинг 51. Символьные операции. Упростить выражение

9.3.Разложение по степеням

ВMathCAD имеется встроенная возможность аналитически раскрывать скобки в сложных выражениях, это делается функцией expand (раскрыть) и раскладывать на множители (группировать по степеням) – collect (сбор), см. Листинг 52.

Листинг 52. Разложение по степеням. Разложение на множители

78

Профессиональные математические пакеты

Коэффициенты разложения многочлена

Операция разложения многочлена по степеням эквивалентна вычислению коэффициентов разложения многочлена перед соответствующими степенями переменных, в этом можно убедится, сравнив Листинг 52 и Листинг 53. Получение этих коэффициентов производится при помощи функции coeffs (коэффициенты).

Листинг 53. Вычисление коэффициентов многочлена

Самый простой и известный со школы способ разложения на степени – это представление полинома в виде произведения сомножителей. Действие это в аналитическом виде может быть проделано при помощи функции factor (факторизация). Такое преобразование многочлена сразу показывает все его корни

(Листинг 54).

Листинг 54. Разложение на множители

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

Кроме того, разложение многочлена по степеням можно выполнить, используя встроенную функцию series (разложение в степенной ряд). Сравните Листинг 55 с

примерами, приведенными выше (Листинг 52 и Листинг 53).

Листинг 55. Разложение полинома в степенной ряд

Функция series представляет в виде ряда Тейлора (или ряда Лорана) любую функцию, для этого справа от слова series необходимо указать раскладываемую функцию, а слева через запятую – в окрестности какой точки производить разложение (если этот параметр не указан, то – в окрестности нуля) и до какой степени раскладывать (по умолчанию – 5).

Рис. 39 – Функция series – разложение в степенной ряд

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

79

Глава 9. Символьные вычисления в MathCAD

Листинг 56. Разложение в степенной ряд в окрестности точки

Пользуясь функциями expand, collect и series можно преобразовать любую функцию к полиномиальному виду, а с полиномами легко работать.

9.4.Задача разложения на простые дроби

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

 

Q (x)

 

b

xm b

xm 1 ... b

 

R(x)

m

 

m

m 1

0

(50)

Pn (x)

a

xn a

xn 1 ... a

 

 

 

 

 

 

n

n 1

0

 

Знаменатель этой дроби Pn(x) может быть представлен в виде элементарных множителей (разложен на множители). Об этом в курсе алгебры строго доказывается

теорема 1:

Всякий действительный многочлен P (x) a

xn a

xn 1 ... a

степени n

 

 

 

 

n

n

n 1

0

 

 

 

 

может быть представлен в виде:

 

 

 

 

 

 

 

P (x) a

(x x ) 1

... (x x ) r (x2

p x q ) 1 ... (x2 p x q

s

) s ,

 

n

n

1

r

1

1

s

 

 

 

где x1,..., xr

- различные действительные корни кратностей 1,..., r многочлена

(51)

Pn(x), а (x2 pk x qk ) k , k 1...s - квадратные трехчлены, имеющие комплексные корни соответствующих кратностей 1,..., s . Причем,

n1 ... r 2( 1 ... s ) .

Вотношении разложения дробно-рациональной функции R(x) вида (50) на сумму простейших рациональных дробей доказывается следующая теорема 2:

Всякую правильную рациональную дробь R(x) вида (50), со знаменателем, представленным в виде (51), можно разложить на сумму дробей вида (52) - (53):

 

 

 

 

 

 

A

и

 

 

 

Mx N

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

(x x ) i

(x2

p x q ) k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

 

k

 

 

k

 

 

 

 

 

 

 

В этом разложении каждому действительному корню

xi

кратности i , i 1,..., r

 

соответствует сумма i дробей вида:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A1

 

 

 

A2

 

 

 

 

 

A i

 

 

 

 

 

 

(52)

 

 

 

x xi

(x x )2

...

 

(x x ) i

,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

i

 

 

 

 

 

i

 

 

 

 

 

 

 

а каждой паре комплексно-сопряженных корней, задаваемых квадратным

 

трехчленом (x2 p

x q

 

) k ,

k 1...s , соответствует сумма дробей вида:

 

 

k

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

M1x N1

 

 

 

 

M 2 x N2

 

 

 

...

M k x N k

(53)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

.

 

 

x2 p

x q

k

 

(x2 p

k

x q

k

)2

(x2 p

k

x q

) k

 

 

k

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

k

 

Какова же методика разложения рациональной дроби R(x) вида (50) на сумму дробей вида (52) - (53)?

Алгоритм очень прост, но громоздок: 1) представить знаменатель Pn(x) в виде (51);

80

Источник: https://studfile.net/preview/16438534/