Гурский Д., Турбина Е. - Вычисления в MathCad 12 (1077322), страница 59
Текст из файла (страница 59)
Она связана даже не с тем, что ответ зачастую выдается в виде огромноговыражения или содержит специальные функции. Все гораздо хуже: решая тригонометрические уравнения, Mathcad нередко ошибается. Особенно вероятна ошибка при наличии параметров и разнородных функций.Пример 8.7. Неверное аналитическое решение уравненияsin(x) + cos(a-x) = 1solve, xfloat, 10.9168683843-.3269639712 + .67368867431-.326963 9712-. 67368867 43-iJ256 •Глава 8. Решение уравнений и систем уравненийПроверяем верность решения, передавая полученные значения корней соответствующей уравнению функции. Если они были найдены правильно, значение функции должно быть равно 0:ц%а) :=sin(x) + cos(ax)-1f(.9168683843,l) =-0.275f(-.3269639712+.6736886743i,2) = -1.991 + 7.398iФункция не равна 0 даже приблизительно. Вывод: корни были определены неверно.Чтобы убедиться, что в приведенном выше примере уравнение было решено неверно,совсем не обязательно было создавать соответствующую уравнению функцию.
Достаточно было обратить внимание на то, что параметр а не входит в выражения ответа. Тоже, что корни должны зависеть от параметра, очевидно. Вообще же, рекомендую вамвоздержаться от символьного решения тригонометрических уравнений напрямую. Этоодна из тех интеллектуально нагруженных задач, с которыми компьютеры справляются плохо.
Если же вы все-таки используете оператор solve для решения тригонометрического уравнения, то обязательно проверяйте ответ так, как мы это сделали выше(а еще лучше строить график).То, что Mathcad не силен в решении тригонометрических уравнений, — это печальнаяреальность. Но это не значит, что такие уравнения придется решать на бумаге. Конечно, в одно действие и полностью отключив голову тригонометрическое уравнениев Mathcad вы вряд ли решите. Но если вы примете деятельное участие в процессе решения, разрабатывая стратегию самостоятельно и доверяя Mathcad лишь вычислительную часть работы, то с самыми сложными уравнениями удастся совладать с гораздо меньшими усилиями, чем при проведении всех операций на бумаге.
Основная идеяследующая: используя Mathcad, сводим преобразованиями разного рода сложное уравнение к элементарному, вроде cos(x)=0, а затем, уже без участия программы, самостоятельно решаем его. То, как это делается на практике, показано в примере 8.8.Пример 8.8. Поэтапное решение тригонометрических уравненийЗадача 1.
Решить уравнение вида6644sin (2t) + cos (2t) - --(sin (2t) + cos (2t)) + --(sin(t) + cos(t)) = 0Данное уравнение содержит функции от 2t и t. Нужно перейти к функциям одного аргумента, а затем упростить полученное выражение. Одновременно обе эти операции выполнит оператор simplify:Е:= s i n ( 2 t ) 6 + c o s ( 2 t ) 6 - - ( s i n ( 2 t ) 4 + c o s ( 2 t ) 4 ) + --(sin(t) + cos(t))E simplify —>•1 sin(t) нcos(t)222Мы получили очень простое уравнение, которое далее нужно решать самостоятельно.
Для начала сократим 1/2, после чего перенесем единицу вправо:sin(t) + cos(t) = 1Возведем обе части уравнения в квадрат и воспользуемся основным тригонометрическим тождеством:1 + 2sin(t)-cos(t) = 18.1. Решение уравнений«257Сократим единицы и используем формулу для синуса двойного аргумента:sin (2t) = ОТак как синус равен нулю в точках л-k (к — любое целое число), то решением уравнения будетt=(7I-k)/2.Задача 2.
Решить уравнение вида:V3-sin(t) = V2-sin(t)2 - sin(2t) + 3-cos(t)2Первым нашим шагом будет то, что функции двойного аргумента мы представим через функции одинарного аргумента. Сделать это можно, задействовав оператор simplify:E:=x/3-sin(t) -x/2-sin(t) 2 - sin(2t) + 3-cos(t)2i t2\E:=E simplify -> 3 -sin(t) - ^-2sin(t)-cos(t) + cos(t) + 2)Чтобы в уравнение входили лишь функции одного типа, заменим косинусы выражением, содержащим только синус:121Е := E substitute,cos(t) = \] 1 - sin(t)22-» 3 -sin(t) - _-2-(j - sin(t) ) -sin(t) + 3 - sin(t) _Mathcad плохо решает тригонометрические уравнения. А вот с алгебраическими уравнениямипрограмма справляется очень хорошо.
Отсюда вытекает следующая стратегия: решаем полученное уравнение как алгебраическое относительно sin(t). При этом мы узнаем, какие значения принимает синус. А уж самостоятельно справиться с системой уравнений типа sin(t)=y не составит труда.Е solve,sin(t) -> --22Нам повезло. Уравнение имеет только одно решение. Значит, осталось только интерпретироватьполученный результат.
Сделав это, получим следующий ответ: tl=n/4+2-n-k и t2=*3-n/4+2-7i-k(к — любое целое число).Иногда помощь символьному процессору Mathcad нужно оказывать и при решенииалгебраических, показательных и логарифмических уравнений. Если система не справится с задачей, преобразованиями и заменами нужно постараться свести выражениек тождественному, но более простому. Например, если в уравнение входят неизвестные в дробной степени, следует подобрать такую замену, чтобы иррациональностьисчезла (Mathcad очень «не любит» иррациональные выражения). Если программа неспособна решить показательное уравнение, его левую и правую части стоит прологарифмировать.
Зачастую отличный эффект дает банальное упрощение выражения уравнения с помощью оператора simplify с указанием области изменения переменной посредством оператора assume. В общем, различных приемов можно придумать оченьмного. Главное — сразу не сдаваться, если оператор solve не сможет найти корни уравнения. Помогая программе, направляя ее, вы сможете решить 99 % уравнений, которыеимеют аналитическое решение.2 5 8 •:• Глава 8.
Решение уравнений и систем уравненийПример 8.9. Поэтапное решение алгебраических и показательныхуравненийЗадача 1. Решить алгебраическое уравнение вида:Если мы попытаемся решить данное уравнение, не проводя никаких преобразований, то аналитического ответа программа найти не сможет. На это есть две причины. Во-первых, в качествемножителей в левой части уравнения выступают десятичные дроби.
Символьный процессорплохо оперирует такими числами. Поэтому десятичные дроби нужно перевести в обыкновенные. Сделать это позволяет оператор factor. Во-вторых, выражение уравнения слишком сложно. Его необходимо упростить, задействовав оператор simplify. Чтобы упрощение было эффективным, нужно указать область изменения х (по умолчанию система считает все неизвестныекомплексными величинами). Так как в уравнении несколько раз вычисляются корни четной степени из х в нечетной степени, то, следовательно, х не может быть отрицательной величиной.112г—-8.4 -yjx/_-0.2-VxЗл—12г—-Jx - J xfactorassume, x > 0 ->I -42+x+ 5-x7simplify12Полученное в результате проведенных преобразований уравнение Mathcad решит без проблем:13- 1 - 4 2 + х 2 +5-Х 2хsolve.x-» 412Задача 2. Решить алгебраическое уравнение вида:Зг-г-5г5-yjx-\Jx+3-y}x-\fx=SЕсли попробовать решить данное уравнение напрямую, то Mathcad сможет найти пять корней,четыре из которых комплексные и только один — действительный:1.solve, xfloat,5-2.0657+ 5.4484а2.0657- 5.4484-i-2.0657- 5.4484-i2.0657+ 5.4484-iОднако проверка показывает, что найденное Mathcad решение верно лишь для корня х=1.Комплексные же корни определены неправильно, в чем можно легко убедиться, выполнив подстановку:8.1.
Решение уравнений• 259,2/substitute, x=512 |• Л57812526788+5'float, 3->13.5+6.23-iПроверка по графику показывает, что х=1 это не единственный корень уравнения. Также корнем, вероятно, является х=-1 (рис. 8.1).Рис. 8 . 1 . Соответствующая уравнению функция четная (то есть ее участок правее оси Yявляется зеркальным отображением участка, лежащего левее данной оси). Это означает, чтоу корня х=1 будет парный корень х=-1Можно ли преобразовать решаемое уравнение так, чтобы символьный процессор с ним справился? Сложность данного уравнения заключается в его иррациональности.
Mathcad довольноплохо оперирует с выражениями, содержащими корни и дробные степени, поэтому от них нужностремиться избавляться. Для этого нужно найти такую замену, которая сделала бы иррациональное выражение рациональным (или хотя бы упростила его). В нашем случае хорошей заменойбудет x=t' 5 / 2 .15Г~5~~Г~3~5-i/x-\/x+ 3-\/x-\/x- 8 substitute,x= t2+3Полученное в результате замены выражение следует упростить вручную, так как операторsimplify (даже в сочетании с assume) с этой задачей не справится (вероятно, из-за слишком большого количества степеней).2 6 0 •:• Глава 8.
Решение уравнений и систем уравнений225 33 53-t2= 8В результате замены мы получили простое алгебраическое уравнение третьей степени, котороеMathcad легко решит.15t32+ 3-t =8solve,t-42 . ?— + -1-655~425*1-6:5Ограничившись действительным корнем, находим, при каких х переменная t принимает значение 1.х • = 1 solve,х1Найденные корни соответствуют правильному решению уравнения.Задача 3. Решить показательное уравнение следующего вида:(2-2х+1-2х-1Оператор solve способен решить данное уравнение, но лишь приблизительно (корни выдаютсяв формате чисел с плавающей точкой)::(2-2х+1/,-чх2-2+ (2 - • "4, Г1'solve,х ->То, что оператор solve определил корень только приблизительно — это не беда, так как он имеетцелочисленное значение. Хуже другое.
Проверка по графику показывает, что у уравнения должно быть три корня, а не один (рис. 8.2).2-V3«х)Рис. 8.2. Кривая дважды пересекает ось X, а в точке х=1 касается ее. Таким образом, ууравнения будет три корня. Так как кривая симметрична относительно прямой х=1, два корнябудут сопряжены и будут иметь вид 1 +а и 1 -а, где а — некоторое число8.1.