3 @c File=Trigonometric.texi
4 @c OriginalRevision=1.20
5 @c TranslatedBy: (c) 2007-09-22 Alexey V. Beshenov <al@beshenov.ru>
8 * Тригонометрия в Maxima::
9 * Функции и переменные для тригонометрии::
12 @node Тригонометрия в Maxima, Функции и переменные для тригонометрии, Тригонометрия, Тригонометрия
13 @section Тригонометрия в Maxima
15 В Maxima определено много тригонометрических функций. Запрограммированны не все
16 тригонометрические тождества, но пользователь может добавить большинство из
17 них благодаря возможностям системы по поиску совпадений с шаблонами (подстановки).
18 В Maxima определены следующие тригонометрические функции @code{acos}, @code{acosh}, @code{acot},
19 @code{acoth}, @code{acsc}, @code{acsch}, @code{asec}, @code{asech}, @code{asin},
20 @code{asinh}, @code{atan}, @code{atanh}, @code{cos},
21 @code{cosh}, @code{cot}, @code{coth}, @code{csc}, @code{csch},
22 @code{sec}, @code{sech}, @code{sin}, @code{sinh}, @code{tan} и
23 @code{tanh}. Для работы с тригонометрическими функциями есть ряд особых команд, см.
24 @code{trigexpand}, @code{trigreduce} и @code{trigsign}. Два встроенных пакета
25 расширяют правила упрощения Maxima: @code{ntrig} и @code{atrig1}. Для подробностей
26 запустите @code{describe(@var{command})}.
28 @opencatbox{Категории:}
29 @category{Тригонометрические функции}
32 @node Функции и переменные для тригонометрии, , Тригонометрия в Maxima, Тригонометрия
33 @section Функции и переменные для тригонометрии
35 @defvr {Управляющая переменная} %piargs
36 Значение по умолчанию: @code{true}
38 Если @code{%piargs} равно @code{true}, то тригонометрические функции упрощаются до
39 алгебраических констант, если аргумент кратен
41 @math{\pi}, @math{\pi/2}, @math{\pi/3}, @math{\pi/4} или @math{\pi/6}.
44 @math{%pi}, @math{%pi/2}, @math{%pi/3}, @math{%pi/4} или @math{%pi/6}.
48 Maxima использует некоторые тождества, применимые, если @math{\pi} домножается
51 Maxima использует некоторые тождества, применимые, если @math{%pi} домножается
53 на целую переменную (символ, определенный как целое число).
59 @c [sin (%pi), sin (%pi/2), sin (%pi/3)];
60 @c [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
62 @c [sin (%pi), sin (%pi/2), sin (%pi/3)];
63 @c [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
64 @c [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3), cos (sqrt(2)*%pi/3)];
67 (%i1) %piargs : false;
69 (%i2) [sin (%pi), sin (%pi/2), sin (%pi/3)];
71 (%o2) [sin(%pi), sin(---), sin(---)]
73 (%i3) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
75 (%o3) [sin(---), sin(---), sin(---)]
79 (%i5) [sin (%pi), sin (%pi/2), sin (%pi/3)];
83 (%i6) [sin (%pi/4), sin (%pi/5), sin (%pi/6)];
85 (%o6) [-------, sin(---), -]
87 (%i7) [cos (%pi/3), cos (10*%pi/3), tan (10*%pi/3), cos (sqrt(2)*%pi/3)];
89 (%o7) [-, - -, sqrt(3), cos(-----------)]
93 Некоторые тождества применяются, если @code{%pi} и @code{%pi/2} домножается
94 на целую переменную (символ, определенный как целое число):
97 @c declare (n, integer, m, even);
98 @c [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m), cos (%pi/2 * m)];
101 (%i1) declare (n, integer, m, even);
103 (%i2) [sin (%pi * n), cos (%pi * m), sin (%pi/2 * m), cos (%pi/2 * m)];
105 (%o2) [0, 1, 0, (- 1) ]
108 @opencatbox{Категории:}
109 @category{Тригонометрические функции}
110 @category{Флаги и переменные упрощения}
114 @defvr {Управляющая переменная} %iargs
115 Значение по умолчанию: @code{true}
117 Если @code{%iargs} равно @code{true}, то тригонометрические функции упрощаются
119 до гиперболических, если аргумент явно домножается на мнимую единицу @math{i}.
122 до гиперболических, если аргумент явно домножается на мнимую единицу @math{%i}.
125 Упрощение производится, даже если аргумент явно является вещественным;
127 Maxima лишь проверяет, просматривается ли явно в аргументе множитель @math{i}.
130 Maxima лишь проверяет, просматривается ли явно в аргументе множитель @math{%i}.
137 @c [sin (%i * x), cos (%i * x), tan (%i * x)];
139 @c [sin (%i * x), cos (%i * x), tan (%i * x)];
142 (%i1) %iargs : false;
144 (%i2) [sin (%i * x), cos (%i * x), tan (%i * x)];
145 (%o2) [sin(%i x), cos(%i x), tan(%i x)]
148 (%i4) [sin (%i * x), cos (%i * x), tan (%i * x)];
149 (%o4) [%i sinh(x), cosh(x), %i tanh(x)]
152 Упрощение проводится, даже если аргумент явно является вещественным:
155 @c declare (x, imaginary);
156 @c [featurep (x, imaginary), featurep (x, real)];
160 (%i1) declare (x, imaginary);
162 (%i2) [featurep (x, imaginary), featurep (x, real)];
168 @opencatbox{Категории:}
169 @category{Тригонометрические функции}
170 @category{Гиперболические функции}
171 @category{Флаги и переменные упрощения}
175 @deffn {Функция} acos (@var{x})
178 @opencatbox{Категории:}
179 @category{Тригонометрические функции}
183 @deffn {Функция} acosh (@var{x})
184 - Ареакосинус (гиперболический арккосинус).
186 @opencatbox{Категории:}
187 @category{Гиперболические функции}
191 @deffn {Функция} acot (@var{x})
194 @opencatbox{Категории:}
195 @category{Тригонометрические функции}
199 @deffn {Функция} acoth (@var{x})
200 - Ареакотангенс (гиперболический арккотангенс).
202 @opencatbox{Категории:}
203 @category{Гиперболические функции}
207 @deffn {Функция} acsc (@var{x})
210 @opencatbox{Категории:}
211 @category{Тригонометрические функции}
215 @deffn {Функция} acsch (@var{x})
216 - Ареакосеканс (гиперболический арккосеканс).
218 @opencatbox{Категории:}
219 @category{Гиперболические функции}
223 @deffn {Функция} asec (@var{x})
226 @opencatbox{Категории:}
227 @category{Тригонометрические функции}
231 @deffn {Функция} asech (@var{x})
232 - Ареасеканс (гиперболический арксеканс).
234 @opencatbox{Категории:}
235 @category{Гиперболические функции}
239 @deffn {Функция} asin (@var{x})
242 @opencatbox{Категории:}
243 @category{Тригонометрические функции}
247 @deffn {Функция} asinh (@var{x})
248 - Ареасинус (гиперболический арксинус).
250 @opencatbox{Категории:}
251 @category{Гиперболические функции}
255 @deffn {Функция} atan (@var{x})
258 @opencatbox{Категории:}
259 @category{Тригонометрические функции}
263 @deffn {Функция} atan2 (@var{y}, @var{x})
264 - соответствует значению @code{atan(@var{y}/@var{x})} на интервале
265 (@code{-%pi}, @code{%pi}).
267 @opencatbox{Категории:}
268 @category{Тригонометрические функции}
272 @deffn {Функция} atanh (@var{x})
273 - Ареатангенс (гиперболический арктангенс).
275 @opencatbox{Категории:}
276 @category{Гиперболические функции}
280 @c IS THIS DESCRIPTION ACCURATE ??
281 @c LET'S BE EXPLICIT ABOUT EXACTLY WHAT ARE THE RULES IMPLEMENTED BY THIS PACKAGE
282 @defvr {Пакет} atrig1
283 Пакет @code{atrig1} содержит несколько дополнительных правил упрощения
284 для обратных тригонометрических функций. Вместе с уже известными Maxima правилами,
285 полностью реализована работа с углами @code{0}, @code{%pi/6}, @code{%pi/4},
286 @code{%pi/3} и @code{%pi/2}, а также соответствующими углами в трех других четвертях.
287 Для использования пакета выполните @code{load("atrig1");}.
289 @opencatbox{Категории:}
290 @category{Тригонометрические функции}
291 @category{Пакет atrig1}
296 @deffn {Функция} cos (@var{x})
299 @opencatbox{Категории:}
300 @category{Тригонометрические функции}
305 @deffn {Функция} cosh (@var{x})
306 - Ареакосинус (гиперболический арккосинус).
308 @opencatbox{Категории:}
309 @category{Гиперболические функции}
313 @deffn {Функция} cot (@var{x})
316 @opencatbox{Категории:}
317 @category{Тригонометрические функции}
321 @deffn {Функция} coth (@var{x})
322 - Ареакотангенс (гиперболический арккотангенс).
324 @opencatbox{Категории:}
325 @category{Гиперболические функции}
329 @deffn {Функция} csc (@var{x})
332 @opencatbox{Категории:}
333 @category{Тригонометрические функции}
337 @deffn {Функция} csch (@var{x})
338 - Ареакосеканс (гиперболический арккосеканс).
340 @opencatbox{Категории:}
341 @category{Гиперболические функции}
345 @defvr {Управляющая переменная} halfangles
346 Значение по умолчанию: @code{false}
348 Если @code{halfangles} равно @code{true}, то тригонометрические функции
349 аргументов @code{@var{expr}/2} упрощаются в функции от @var{expr}.
354 @c halfangles : false;
356 @c halfangles : true;
360 (%i1) halfangles : false;
366 (%i3) halfangles : true;
370 (%o4) ----------------
374 @opencatbox{Категории:}
375 @category{Тригонометрические функции}
376 @category{Флаги и переменные упрощения}
380 @c IS THIS DESCRIPTION ACCURATE ??
381 @c LET'S BE EXPLICIT ABOUT EXACTLY WHAT ARE THE RULES IMPLEMENTED BY THIS PACKAGE
383 Пакет @code{ntrig} содержит набор правил упрощения для тригонометрических
384 функций с аргументами вида @code{@var{f}(@var{n} %pi/10)}, где @var{f} - одна из
385 функций @code{sin}, @code{cos}, @code{tan}, @code{csc}, @code{sec} и @code{cot}.
386 @c NEED TO LOAD THIS PACKAGE ??
388 @opencatbox{Категории:}
389 @category{Тригонометрические функции}
390 @category{Пакет ntrig}
394 @deffn {Функция} sec (@var{x})
397 @opencatbox{Категории:}
398 @category{Тригонометрические функции}
402 @deffn {Функция} sech (@var{x})
403 - Гиперболический секанс.
405 @opencatbox{Категории:}
406 @category{Гиперболические функции}
411 @deffn {Функция} sin (@var{x})
414 @opencatbox{Категории:}
415 @category{Тригонометрические функции}
420 @deffn {Функция} sinh (@var{x})
421 - Гиперболический синус.
423 @opencatbox{Категории:}
424 @category{Гиперболические функции}
428 @deffn {Функция} tan (@var{x})
431 @opencatbox{Категории:}
432 @category{Тригонометрические функции}
436 @deffn {Функция} tanh (@var{x})
437 - Гиперболический тангенс.
439 @opencatbox{Категории:}
440 @category{Гиперболические функции}
444 @c NEEDS CLARIFICATION AND EXAMPLES
446 @deffn {Функция} trigexpand (@var{expr})
447 Раскрывает тригонометрические и гиперболические функции суммы или произведения углов в
448 @var{expr}. Для получения лучших результатов нужно сначала раскрыть @var{expr}. Для
449 повышения пользовательского контроля за упрощением функция раскрывает только один
450 уровень сумм/произведений за раз. Для полного раскрытия в синусы и косинусы укажите
451 @code{trigexpand: true}.
453 @code{trigexpand} управляется следующими глобальными флагами:
457 Раскрывать все получающиеся в последствии выражения с синусами и косинусами.
459 Раскрывать функции половинных углов в функции полных углов.
461 Раскрывать функции сумм аргументов (например, @code{sin(x + y)}).
462 @item trigexpandtimes
463 Раскрывать функции кратных аргументов (например, @code{sin(2 x)}).
469 @c x+sin(3*x)/sin(x),trigexpand=true,expand;
470 @c trigexpand(sin(10*x+y));
473 (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
475 (%o1) - sin (x) + 3 cos (x) + x
476 (%i2) trigexpand(sin(10*x+y));
477 (%o2) cos(10 x) sin(y) + sin(10 x) cos(y)
481 @opencatbox{Категории:}
482 @category{Тригонометрические функции}
483 @category{Функции упрощения}
487 @defvr {Управляющая переменная} trigexpandplus
488 Значение по умолчанию: @code{true}
490 @code{trigexpandplus} управляет раскрытием функций от сумм аргументов в @code{trigexpand}
491 (если @code{trigexpand} равно @code{true}, либо в функции @code{trigexpand}), например,
492 @code{sin(x+y)}. Упрощение производится, только если @code{trigexpandplus} равно @code{true}.
494 @opencatbox{Категории:}
495 @category{Тригонометрические функции}
496 @category{Флаги и переменные упрощения}
500 @defvr {Управляющая переменная} trigexpandtimes
501 Значение по умолчанию: @code{true}
503 @code{trigexpandplus} управляет раскрытием функций от произведений аргументов в
504 @code{trigexpand} (если @code{trigexpand} равно @code{true}, либо в функции @code{trigexpand}),
505 например, @code{sin(2*x)}. Упрощение производится, только если @code{trigexpandtimes} равно
508 @opencatbox{Категории:}
509 @category{Тригонометрические функции}
510 @category{Флаги и переменные упрощения}
514 @defvr {Управляющая переменная} triginverses
515 Значение по умолчанию: @code{all}
517 @code{triginverses} управляет раскрытием композиций тригонометрических и гиперболических
518 функций со своими обратными функциями.
520 Если @code{all}, то и @code{atan(tan(@var{x}))}, и @code{tan(atan(@var{x}))}
521 упрощается в @var{x}.
523 Если @code{true}, то упрощение @code{@var{arcfun}(@var{fun}(@var{x}))} не производится.
525 Если @code{false}, то ни @code{@var{arcfun}(@var{fun}(@var{x}))}, ни
526 @code{@var{fun}(@var{arcfun}(@var{x}))} не будет упрощено.
528 @opencatbox{Категории:}
529 @category{Тригонометрические функции}
530 @category{Флаги и переменные упрощения}
534 @deffn {Функция} trigreduce (@var{expr}, @var{x})
535 @deffnx {Функция} trigreduce (@var{expr})
537 Раскрывает произведения и степени @code{sin}, @code{cos}, @code{sinh}, @code{cosh} в
538 функции кратных аргументов @var{x}. Также производится попытка исключить такие функции из
539 знаменателей. Если @var{x} не указано, будут использоваться все переменные из @var{expr}.
541 См. также @code{poissimp}.
544 @c trigreduce(-sin(x)^2+3*cos(x)^2+x);
547 (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
548 cos(2 x) cos(2 x) 1 1
549 (%o1) -------- + 3 (-------- + -) + x - -
554 В некоторых простых случаях команды упрощения используют информацию о переменных,
555 объявленную следующим образом:
558 @c declare(j, integer, e, even, o, odd)$
559 @c sin(x + (e + 1/2)*%pi);
560 @c sin(x + (o + 1/2)*%pi);
563 (%i1) declare(j, integer, e, even, o, odd)$
564 (%i2) sin(x + (e + 1/2)*%pi);
566 (%i3) sin(x + (o + 1/2)*%pi);
571 @opencatbox{Категории:}
572 @category{Тригонометрические функции}
573 @category{Функции упрощения}
577 @defvr {Управляющая переменная} trigsign
578 Значение по умолчанию: @code{true}
580 Если @code{trigsign} равно @code{true}, допускается упрощение отрицательных аргументов
581 тригонометрических функций. Например, @code{sin(-x)} раскроется в @code{-sin(x)}.
583 @opencatbox{Категории:}
584 @category{Тригонометрические функции}
585 @category{Флаги и переменные упрощения}
589 @deffn {Функция} trigsimp (@var{expr})
590 Применяет тождества @math{sin(x)^2 + cos(x)^2 = 1} и @math{cosh(x)^2 - sinh(x)^2 = 1}
591 для упрощения выражений с @code{tan}, @code{sec}, и так далее, до выражений с @code{sin},
592 @code{cos}, @code{sinh}, @code{cosh}.
594 Результат может упрощаться далее с @code{trigreduce}, @code{ratsimp}, и @code{radcan}.
596 @code{demo ("trgsmp.dem")} показывает несколько примеров для @code{trigsimp}.
597 @c MERGE EXAMPLES INTO THIS ITEM
599 @opencatbox{Категории:}
600 @category{Тригонометрические функции}
601 @category{Функции упрощения}
605 @c NEEDS CLARIFICATION
606 @deffn {Функция} trigrat (@var{expr})
607 Возвращает канонический упрощенный квазилинейный вид тригонометрического выражения;
608 @var{expr} - рациональная дробь с функциями @code{sin}, @code{cos} или @code{tan},
609 аргументы которых - линейные формы некоторых переменных и @code{%pi/@var{n}}
610 (@var{n} - целое) с целыми коэффициентами. Результат - упрощенная дробь с линейным
611 числителем и знаменателем с @code{sin} и @code{cos}. Таким образом, @code{trigrat}
612 переходит к линейному виду, только если это возможно.
615 @c trigrat(sin(3*a)/sin(a+%pi/3));
618 (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
619 (%o1) sqrt(3) sin(2 a) + cos(2 a) - 1
623 Следующий пример взят из раздела 1.5.5, "Теорема Морлея", книги Davenport, Siret,
624 Tournier, @i{Calcul Formel}, изд-во Masson (английский перевод - Addison-Wesley).
628 @c bc: sin(a)*sin(3*c)/sin(a+b);
630 @c ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
634 (%i1) c: %pi/3 - a - b;
638 (%i2) bc: sin(a)*sin(3*c)/sin(a+b);
639 sin(a) sin(3 b + 3 a)
640 (%o2) ---------------------
642 (%i3) ba: bc, c=a, a=c$
643 (%i4) ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
645 sin (a) sin (3 b + 3 a)
646 (%o4) -----------------------
651 2 sin(a) sin(3 a) cos(b) sin(b + a - ---) sin(3 b + 3 a)
653 - --------------------------------------------------------
655 sin(a - ---) sin(b + a)
659 sin (3 a) sin (b + a - ---)
661 + ---------------------------
666 (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
668 - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
670 - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
672 + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
674 + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
676 + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
682 @opencatbox{Категории:}
683 @category{Тригонометрические функции}
684 @category{Функции упрощения}