Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 54
Текст из файла (страница 54)
Для проведения разложения выражений в Mathcad существует специальный оператор expand (Разложить) панелиSymbolic (Символьные). В левый маркер данного оператора заносится упрощаемое выражение, в правый — переменная (или выражение), относительно которой разложениепроводится. Объективно говоря, в подавляющем большинстве случаев заполнение7.1. Разложение выражений* 235правого маркера — это избыточная операция и проводить ее не обязательно. Поэтомуобычно правый маркер просто удаляют.Пример 7 .
1 . Разложение выражений различных типовРазложение алгебраического выражения. Система перемножает выражения в числителе и производит приведение слагаемых к общему знаменателю. Затем раскрывается степень в знаменателе, после чего числитель делится на знаменатель.(х + Зх+ l\(x+ - |423V' У х )х +2-х + 3-х +3-Х+ 1а— expand —>.,.56 . 5 , . 4 , . 3. 2( х + 1)х + 5-х + 10-х + 10-х + 5-х + хРазложение тригонометрического выражения. Система переходит от sin(2x) и tg(3x) к функциям от х, после чего делит числитель на знаменатель.sin(2x)2.6. с, . . , 3.expand -»sin(x)-cos(x)sin(x)-cos(x)-tan(x)33tan(3x)3tan(x) - tan(x)3-tan(x) - tan(x)Разложение логарифмического выражения. Обратите внимание на то, что десятичный логарифмпредставляется через отношение натуральных логарифмов.1„(еЬ)Внимательный читатель может задать вопрос: зачем у оператора expand имеется правый маркер, если то, заполнен он или нет, никак не сказывается на результате.
Действительно, в большинстве случаев указывать, исходя из какой переменной (или выражения) должно производиться разложение выражения, совсем необязательно. Однакоиногда то, заполнен ли правый маркер или же нет, может весьма существенно сказываться на результате. Дело в том, что, когда правый маркер удален, аналитический процессор пытается разложить выражение «по максимуму», что не всегда приемлемо. Например, пусть имеется выражение вроде (sin(2x)+l) 3 , Если использовать операторexpand без заполнения правого маркера, то сначала система возведет выражение в третью степень, а затем перейдет от sin(2x) к функциям от х.
Однако может оказаться так,что в рамках решаемой задачи нужно лишь произвести возведение в степень, не переходя от удвоенного к одинарному аргументу. В этом случае в качестве параметра разложения в правом маркере оператора expand следует указать 2х.
При этом система«поймет», что 2х должно входить в результат, и не будет разлагать синус (см. пример 7.2). Описанный подход применим и к выражениям других типов. Общий принцип следующий: если выражение образовано несколькими частями и одна из его частей не должна быть разложена, то ее следует прописать в правом маркере оператораexpand. При этом она будет сохранена аналитическим процессором в первоначальномвиде. Также довольно тонкое различие в формате ответа при заполнении правого маркера и его удалении обнаруживается, если упрощаемое выражение является дробью.Так, если переменная разложения прописана, то система разделит числитель на знаменатель. Если же правый маркер оператора expand был удален, то никакого деления проводиться не будет.236 *Глава 7.
Упрощение выражений и алгебраические преобразованияПример 7.2. Различие в результате разложения при заполнении правогомаркера оператора expand и его удаленииПо умолчанию оператор expand производит как возведение в степень, так и приведение тригонометрических функций к одинарному аргументу. Чтобы отменить последнюю операцию, прописываем удвоенный аргумент в правом маркере.(1 + sin(2x)) expand -> 1 + 6-sin(x)-cos(x) + 12-sin(x) -cos(x) + 8-sin(x) -cos(x)323(1 + sin(2x)) expand, 2x -» 1 + 3-sin(2-x) + 3-sin(2-x) + sin(2-x)Чтобы разложить лишь одну часть выражения, подлежащую сохранению, его часть указываемв правом маркере оператора expand.(х+у)(х+у)2+(х+у+1)+(х+у+1)222expand -> 2-х + 4-х-у + 2-у + 2-х+2-у + 1e x p a n d , х + у + 1 -> х + 2-х-у + у+(х+у+1)Если правый маркер expand заполнен, то, в случае выражений в виде дроби, числитель будет разделен на знаменатель.(х+ I )332х + 3-х + 3-х+ 1expand(х+ 2)4(х+ I ) 3(х+2)4expand,х ->х 4 + 8-х3 + 2 4 х 2 + 32-х + 161(х+2)34х +3(х+2)2х +43(х+2)4(х+2)4Эффективно использовать оператор expand в случае логарифмических выраженийможно далеко не всегда.
Причина — результат генерируется так, что в нем присутствуют только натуральные логарифмы. Логарифмы же по другим основаниям приэтом приводятся к натуральным по формуле \oga(x)=\n(x)/\n(a). Увы, но обойти этотнедостаток системы невозможно. Поэтому при решении соответствующих задач просто заменяйте отношения натуральных логарифмов нужными логарифмами по основанию а.В Mathcad нет оператора, обратного expand. Имеется оператор factor, преобразующийалгебраические суммы в произведения. Он является обратным к expand в случае тождеств вроде х2-у2=(х-у)-(х+у).
Однако «понять», что 2-sin(x)-cos(x) есть не что иное,как sin(2x) (или что \п(х)+1п(у) тождественно равняется \п(х-у)), ни оператор factor, ниоператор simplify не смогут. Проведение подобных преобразований — это довольно значительная проблема в Mathcad. Обычно с ней справляются банальной подстановкойформулы — и ничего лучшего пока не придумано. Пример этой операции имеется в разделе, посвященном оператору simplify.Кстати, помимо своего прямого назначения, оператор expand может быть использованв качестве своеобразного справочника математических формул по символьной алгебре (особенно тригонометрии). Например, с его помощью легко узнать, чему равняетсяi или cos(x+y+z).7.2. Разложение на множители и приведение к общему знаменателю • 2 3 77.2.
Разложение на множителии приведение к общему знаменателюПроизвести разложение выражения на множители в системе Mathcad можно с помощью оператора factor (от англ. factoring — разложение на множители). По функциямданный оператор не является полной противоположностью оператору expand. Так,с помощью оператора factor нельзя преобразовать логарифмическое или тригонометрическое выражение. Разложить на множители можно только не очень сложное алгебраическое выражение. Особенностью использования оператора factor является то, чтоон содержит лишний правый маркер.
Если вам требуется произвести разложение выражения на множители, этот маркер нужно затереть. Иначе, если аналогично оператору expand в правый маркер ввести имя переменной (или выражение), по которой должно вестись разложение, даже в самом простом случае результат не будет получен.При разложении алгебраического выражения на множители в качестве таковых могутвыступать не только линейные множители, но и полиномы более низкой степени, чему исходного выражения.
В отличие от символьного решения уравнений, аналитический процессор не ищет комплексных множителей, ограничиваясь только действительными. Разложение на множители с использованием оператора factor может быть проведено и в том случае, если в выражения входят специальные функции (см. третьепреобразование в примере 7.3).Пример 7.3. Разложение многочленов на множителих - 1 factor -> ( х - 1)(х + х+ П432х - 10-х + 35-х - 50-х + 24 factor -» ( х - 1)-(х- 2)-(х- 3)-(х- 4)22sin(x) -cos(x) factor -» -(cos(x) - sin(x))-(cos(x) + sin(x))2222x + 2x-y + 2x-z + у + 2y-z + z factor -> (x+ у + z)Второй по важности задачей, для решения которой используется оператор factor, является разложение целых чисел на простые множители. Эта возможность символьного процессора активно применяется при поиске корней полиномов, решении учебныхзадач по криптографии (алгоритм RSA), а также упрощении выражений.Пример 7.4.
Определить, является ли число 1111+13 простымИ 1 1 + 13 factor ->• 25-34-197-293-1907Вывод: данное число простым не является, так как его можно получить перемножением пятиразличных чисел.Довольно интересной возможностью оператора factor является преобразование десятичных дробей в дроби простые. Естественно, что такая операция возможна лишь в случаеотдельных десятичных дробей. Самое важное требование — дробь должна быть конечной (например, 0,25, но не 0,3333333333...). Описанную возможность можно использовать для приведения выражения в более простую для аналитического процессора форму (простые дроби он «понимает» лучше, чем десятичные), а также для «улучшения»ответа, полученного при численном решении уравнений или численном интегрировании.2 3 8 •:• Глава 7.
Упрощение выражений и алгебраические преобразованияПример 7 . 5 . Преобразование десятичных дробей в обыкновенные18379270.125factor - » 1.674factor ->0.45 + 0.54-i factor -*• — + — i850020 50Нижележащий пример демонстрирует, как результат численного интегрирования можно перевести в символьную форму.Г52500dx= 0.249920.24992 factor ->•х4,781dx->250031253125Очень важной для практики операцией, для проведения которой используется оператор factor, является приведение к общему знаменателю выражения из двух или болеедробей. Причем, в числитель и знаменатель дробей могут входить совершенно любыефункции и их сочетания. Приведение к общему знаменателю — это один из основныхходов, применяемых при упрощении выражений.Пример 7.6. Приведение дробей к общему знаменателю322111х -l-x-y + 2-x + х-у + х + у1+- +— +factor -»х2х+ у2 ..хх-(х+у)В задачниках для поступающих в вузы довольно часто встречаются задачи, в которыхтребуется так преобразовать арифметическое выражение, чтобы в знаменателе исчезла иррациональность (то есть как-то все корни нужно перенести в числитель).
Задачитакого рода требуют весьма значительных выкладок, однако оператор factor справляется с ними с легкостью.Пример 7.7. Избавиться от иррациональности в знаменателеарифметического выражения1.11factor ^ z i . 2 2 . 3 2 . 5 2\_ \_+3.22+32yjl + \[3 + >/57.3. Вынесение общего множителяза скобкуВынести общий множитель за скобку в выражении можно с помощью символьногооператора collect (Собрать). Определить, по какой переменной нужно производитьданное преобразование, можно, введя ее имя в правый маркер оператора. Вынесениеобщего множителя может быть осуществлено как по одной, так и по нескольким переменным.