Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 57
Текст из файла (страница 57)
Однако в математике такие логарифмы принято обозначать с использованием нижнего индекса:]oga(x). Если вид решения важен, то можно создать собственную функцию логарифмапо некоторому основанию. Единственная тонкость здесь заключается в том, как ввести в имя нижний индекс (естественно, что использовать оператор извлечения элементов из матрицы нельзя).
А сделать это очень просто, нажав клавишу «.» (точка). Вовторых, зачастую символьный процессор выдает неприемлемый результат по причинетого, что все логарифмы он преобразует в отношения натуральных. Избежать этогоникак нельзя. Поэтому, если в ответ должны входить десятичные логарифмы или логарифмы но основанию а, то соответствующее преобразование ответа придется проделать самостоятельно.Пример 7.16. Упрощение логарифмических выраженийПусть нам необходимо упростить логарифмическое выражение следующего вида:7.6. Комплексное упрощение выражений• 247+ l o g a ( b ) 4 + 2) + 2 - log b (a) - log a (b)Чтобы задать его в Mathcad в традиционном представлении, делаем следующие определения:l°g a (x) := log(x, a)log b (x) := log(x,b)Созданные пользовательские функции используем в выражении.Для начала данное выражение должно быть преобразовано, как алгебраическое.
Для этого введем замену t=log b (a). Очевидно, что тогда log a (b)=l/t. В итоге получим алгебраический аналогупрощаемого выражения, с которым без проблем «справится» оператор simplify:assume,! = realsimplify+ signum(t) - t 2 - 1—>Обратите внимание на то, что для того, чтобы символьный процессор смог провести упрощение,необходимо указать, что t принимает действительные значения.
Иначе выражение упрощено небудет.Полученное выражение зависит от знака t. В зависимости от того, положителен t или нет, дальнейшее упрощение даст разный результат. Для положительных t (то есть для а>1 при Ь>1 и а<1приЬ<1):signum(t)-t+ signum (t) - t-1assume , t > ОsimplifyДля отрицательных t (то есть для а<1 при Ь>1 и а>1 при Ь<1):signum(t)-t+ signum(t) - t - 1assume,t < 0t2+lsimplifytВо второе выражение делаем обратную подстановку t=log b (a):-2insubstitute, t = log b ( a )expand—> —2*ln(b)ln(a)•ln(b)Учитывая, что ln(m)/ln(n)=log n (m), преобразуем ответ так, чтобы в нем присутствовали те желогарифмы, что и в исходном выражении:-2(log b (a) + log a (b))Программа Mathcad может также помочь вам в упрощении тригонометрических выражений.
Символьный процессор умеет приводить подобные слагаемые, раскладыватьфункции от суммы переменных, переходит от функций кратного аргумента к функциям аргумента одинарного. Однако упрощения вроде 2-sin(x)-cos(;t:)=sin(2.r) илиsin(x)-cos(z/)+cos(;c)-sin(z/)=sin(;t:+2/) оператор simplify никогда не осуществляет.
Подобные преобразования вы должны проводить самостоятельно. Вообще, главное условиеэффективного использования аналитического процессора Mathcad — это четкое понимание того, в чем он может помочь, а что нужно делать «вручную». Пример упрощениятригонометрического выражения совместными силами Mathcad и человека приведенниже.2 4 8 • Глава 7. Упрощение выражений и алгебраические преобразованияПример 7.17. Упрощение тригонометрического выраженияПусть нам необходимо упростить следующее тригонометрическое выражениеcos (2-а) - sin(4-a) - cos (б-а)Условие упрощения: итоговое выражение должно представлять собой произведение тригонометрических функций.Для начала нужно привести входящие в выражение функции к одному аргументу — 2а:cos(2a) - sin(4a) - cos(6a) simplify -> 4-cos(2-a) - 2sin(2a)cos(2-a) - 4cos(2-a)Исходя из условия упрощения, следующим этапом логично будет сделать разложение на множители:4-cos(2-a) - 2sin(2-a)-cos(2-a) - 4cos(2-a)factor -»-» -2- cos (2- a) (-2 + sin(2-a) + 2- cos (2- a) JЧтобы упростить выражение в скобках, косинус следует заменить синусом, а затем выполнитьразложение на множители:000О-2 +sin(2-a) + 2-cos(2-a) substitute,cos(2a) = l - s i n ( 2 a )-»sin(2-a) - 2 s i n ( 2 a )sin(2-a) - 2-sin(2-a) factor -> -sin(2a)-(-l + 2-sin(2a))В итоге получим следующее выражение:2cos(2-a)sin(2a)-(-l + 2sin(2a))С учетом того, что 2sin(a)-cos(a)=sin(2a), выражение можно немного упростить:sin(4a)((-l + 2sin(2a))Чтобы преобразовать сумму в скобках в произведение, осуществим следующие тождественныепреобразования:-1 + 2-sin(2-a) = 2| sin(2a) - - ] = 2-j sin(2a) - sinf - ] ]Формулу преобразования разности синусов в произведение тригонометрических функций можно найти в любом справочнике:„Г2-cosх +ХУ ^ - s•i (n У}{ 2J{ 2)пs u bиs t i t u t e ^ = 2^a , y = -6•( a- > 2^- c o s ( a + —! - я^ -sinI ., 12.
) Л! n12Окончательно имеем:4sin(4a)- cos — я + a -sin anС помощью оператора simplify можно упрощать значения численных выражений. Приэтом если какое-нибудь число в выражении содержит десятичную точку, то ответ будет также найден в виде десятичной дроби. Чтобы этого не произошло, все десятичныедроби нужно перевести в обыкновенные с использованием оператора factor.7.6. Комплексное упрощение выражений .> 2 4 9Пример 7.18. Упрощение численного выраженияЕсли в выражение входит десятичная дробь, расчет будет произведен приблизительно:+ 4.35 simplify-» 4.4700282664181472302Чтобы получить ответ в аналитическом виде, переводим десятичные дроби в простые:4.35 factor87-» —2012 ~ 2 + 5°87 .
,._1 808+ 87-2 2+ — simplify ->,„ч-22020+ v229+2Глава 8. Решение уравненийи систем уравненийЭта глава довольно необычная. В ней мы не только изучим то, как в Mathcad можнорешать уравнения и системы уравнений, но и ознакомимся с алгоритмами, используемыми программой. Дело в том, что если не понимать основных идей этих алгоритмов,эффективно использовать соответствующие функции практически невозможно. Знакомясь с очередным численным методом, мы, как правило, будем самостоятельно peaлизовывать его на языке программирования Mathcad.
Этим мы убьем сразу двух зайцев. Во-первых, при этом идеи численного метода усвоятся лучше. Во-вторых, этобудет очень и очень неплохой практикой программирования.8.1. Решение уравненийВ Mathcad реализовано три принципиально отличающихся друг от друга подхода к решению уравнений: использование символьных преобразований, применение численных алгоритмов и графический метод. В этой главе мы подробно разберем их все.Почти наверняка все задачи, с которыми вам приходилось сталкиваться в школе илиизучать в университете, решались символьно.
То есть вы тем или иным образом преобразовывали и упрощали выражения, использовали какие-то стандартные формулыи методы, умножали, делили, сокращали — и в результате приходили к какому-то несложному аналитическому результату. Так, например, при решении квадратного уравнения вы использовали формулы Виета; пытаясь найти корни кубического уравнения,вы разлагали выражение на линейные множители (или, в крайнем случае, использовали формулу Кардано); для бикубических уравнений прибегали к замене.
Решение задач аналитически имеет массу преимуществ перед решением численным. Во-первых,в этом случае ответ может быть вычислен без какой-либо погрешности. Во-вторых, приполучении результата в виде аналитического выражения имеются куда более широкиевозможности его последующего использования (например, в качестве формулы).В-третьих, числовой результат, полученный в символьном виде, куда более нам понятен, чем десятичная дробь, получаемая при использовании численных методов.Увы, но аналитическим решением обладает очень ограниченное количество задач.
Чтобы найти корни уравнения в виде выражения, требуется выразить одну переменную8.1. Решение уравнений •:• 2 5 1через все остальные (или коэффициенты). Сделать же это обычно можно только в томслучае, если уравнение включает переменные невысокой степени и не содержит разнородных функций. Такие уравнения специально подбираются в учебниках, и их можно более или менее просто решить на бумаге. Но на практике часто существует необходимость находить корни таких уравнений, пытаться решать которые с помощьютрадиционных приемов символьной алгебры совершенно бесперспективно. Численноже можно решить практически любое уравнение.
Однако получаемое при использовании численного метода значение корня в виде числа с плавающей точкой куда менееинформативно, чем выражение аналитического решения. Опыт показывает, что простые уравнения лучше решать символьно, более сложные — численно. Обычно численный метод используется, если Mathcad не сможет решить уравнение аналитически.Впрочем, с учетом склонности символьного процессора делать ошибки (чаще всего онтеряет часть корней), в ответственных случаях аналитическое решение стоит проверять с помощью численного метода как значительно более надежного.Изредка попадаются такие уравнения, которые нельзя решить ни аналитически (таккак они слишком сложны), ни численно (чаще всего потому, что соответствующаяфункция не является непрерывной).