Раздел: Документация
0 ... 76 77 78 79 80 81 82 ... 177 Глава 8. Решение уравнений и систем уравнений Эта глава довольно необычная, В ней мы ис только изучим то, как в Mathcad можно решать уравнения и системы уравнений, но и ознакомимся с алгоритмами, используемыми программой. Дело в том, что если Не понимать основных идей этих алгоритмов, эффективно использовать соответствующие функции практически невозможно. Знакомясь с очередным численным методом, мы, как правило, будем самостоятельно реа-лиэоныиать его на языке программирования Mathcad. Этим мы убьем сразу двух зайцев. Во-первых, при этом идеи численного метода усвоятся лучше. Во-вторых, это будет очень и очень неплохой практикой программирования. 8.1. Решение уравнений В Mathcad реализовано три принципиально отличающихся друг от друга подхода к решению уравпегшй; использование символьных преобразований, применение численных алгоритмов и графический метод. В этой главе мы подробно разберем их все. Почти наверняка все задачи, с которыми вам приходилось сталкиваться в школе илн изучать в университете, решались символьно. То есть вы тем или иным образом преобразовывали и упрощали выражения, использовали какие-то стандартные формулы и методы, умножали, делили, сокращали — и в результате приходили к какому-то несложному аналитическому результату. Так, например, при решении квадратного уравнения вы использовали формулы Виета; пытаясь найти корни кубического уравнения, вы разлагали выражение на линейные множители (или, в крайнем случае, использовали формулу Кардано); для бикубических уравнений прибегали к замене. Решение задач аналитически имеет массу преимуществ перед решением численным. Во-первых, в этом случае ответ может быть вычислен без какой-либо погрешности. Во-вторых, при получении результата в виде аналитического выражения имеются куда более широкие возможности его последующего использования (например, в качестве формулы). В-третьих, числовой результат, полученный в символьном виде, куда более нам понятен, чем десятичная дробь, получаемая при использовании численных методов. Увы, но аналитическим решением обладает очень 01*раниченное количество задач. Чтобы найти корни уравнения в виде выражения, требуется выразить одну переменную 8.1-Решение уравнений * 251 через все остальные (или коэффициенты). Сделать же это обычно можно только в том случае, если уравнение включает псремсшше невысокой степени и не содержит раз-породных функций. Такие уравнения специально подбираются в учебниках, и их можно более или менее просто решить на бумаге. Но на птиктике часто существует необходимость находить корни таких уравнений, пытаться решать которые с помощью традиционных приемов символьной алгебры совершенно бесперспективно. Численно же можно решить практически любое уравнение. Однако получаемое при использовании численного метода значение корпя в виде числа с плавающей точкой куда менее информативно, чем выражение аналитического решения. Опыт показывает, что простые уравнения лучше решать символьно, более сложные — численно. Обычно численный метод используется, если Mathcad не сможет решить уравнение аналитически. Впрочем, с учетом склонности символьного процессора делать ошибки (чаще всего он теряет часть корней), в ответственных случаях аналитическое решение стоит проверять с помощью численного метода как значительно более надежного. Изредка попадаются такие уравнения, которые нельзя решить ни аналитически (так как они слишком сложны), ни численно (чаще всего потому, что соответствующая футгкция не является непрерывной). В таких случаях решение ищут ио графику, используя специальные инструменты панели Graph (Графические). Данный способ довольно трудоемок, однако он способен обеспечить точность, мало уступающую точности численных методов. 8.1.1. Аналитическое решение уравнений Для аналитического решения уравнений в системе Mathcad существует специальный оператор solve (Решить). Чтобы найти с его использованием корни уравнения, выполните следующую последовательность действий. 1.Введите оператор solve (Решить) с помощью одноименной команды панели Symbolic (Символьные). 2.В левом маркере задайте вид решаемого уравнения. В качестве знака равенства следует использовать логическое равенство (Bold Equal — вводится сочетанием Ctrl+=). Если уравнение приведено к стандартному виду, то достаточно будет определить лишь его левую часть. При этом выражение будет приравнено к нулю автоматически. Также в левый маркер можно внести и имя функции — В этом случае будут найдены выражения, определяющие ее нули. Форма записи уравнения через функцию удобна в том случае, если оно имеет большую длину. 3.В правый маркер внесите переменную, относительно которой должно быть решено уравнение. Ответ оператор solve возвращает в виде выражения (численного или буквенного), которое вполне можно использовать в дальнейших вычислениях. Если решений имеется несколько, то возвращается содержащий их вектор1 При символьном решении уравнений нет особой разницы, сколько переменных содержит уравнение. Ответ ищется в виде выражения, и поэтому для системы неважно, будет ли оно содержать буквенные или численные элементы. Исходя Из этого вы можете найти корни как уравнения нескольких переменных, так и уравнения с параметрами или буквенными коэффициентами. Рассмотрим особенности решения каждого из типов уравнений, встречающихся на практике. Лучше всего Mathcad справляется с поиском корней алгебраических полиномов. Причем находятся все Kopim — как действительные, так и мнимые. Общее их количество, исходя из знаменитой теоремы алгебры (теорема Гаусса), равно п, где п — степень полипома. Например, в случае полипома третьей степени мы получим три решения. Пример 8.1. Поиск всех решений уравнения, являющегося алгебраическим полиномом (х+ l)(x2+ 2)+ (х+ 2) (х2+ l) = 2sclve,x -! 4 4 \ 4 4 На практике обычно бывает необходимо найти только действительные корни полинома. Увы. но указать Mathcad, что поиск решений должен быть осуществлен только в пределах действительной области, невозможно. Бессмысленно для этого пытаться использовать оператор assume (подробно о нем читайте в гл. 7), присвоив переменной константу real или задав область поиска от -»до ™ посредством модификатора RealRange. Дело и том, что операторы assume и solve не сочетаются - при попытке их совместить solve прекратит работу. Это одна иа самых известных недоработок системы Mathcad — н обойти се невозможно. Так что, если комплексные корни вас не интересуют, просто не обращайте па них внимания, В алгебре доказало, что аналитические выражения существуют лишь для корней полиномов до пятой степени. Однако это не означает, что оператор solve не сможет найти решения полиномиального уравнения более высокой степени, Mathcad может решать уравнения любой степени — но приблизительно. Если символьный процессор обнаружит, что старший член в полиноме возведен в степень, превышающую четыре, им будет задействован численный метод. В результате корни будут найдены, по не в форме выражений, л н форме чисел с плавающей точкой. Чтобы понять разницу, изучите пример 8.2. Пример 8.2. Решение полиномиального уравнения низкой и высокой степеней Уравнение второй степени: (х+2)3-(х+ 13)3=1 solve,х -15 1 - + —1-4895 2 22 ±5 - -L-L4S95 ч 2 22j 0 ... 76 77 78 79 80 81 82 ... 177
|