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}
295 @deffn {Функция} cos (@var{x})
298 @opencatbox{Категории:}
299 @category{Тригонометрические функции}
303 @deffn {Функция} cosh (@var{x})
304 - Ареакосинус (гиперболический арккосинус).
306 @opencatbox{Категории:}
307 @category{Гиперболические функции}
311 @deffn {Функция} cot (@var{x})
314 @opencatbox{Категории:}
315 @category{Тригонометрические функции}
319 @deffn {Функция} coth (@var{x})
320 - Ареакотангенс (гиперболический арккотангенс).
322 @opencatbox{Категории:}
323 @category{Гиперболические функции}
327 @deffn {Функция} csc (@var{x})
330 @opencatbox{Категории:}
331 @category{Тригонометрические функции}
335 @deffn {Функция} csch (@var{x})
336 - Ареакосеканс (гиперболический арккосеканс).
338 @opencatbox{Категории:}
339 @category{Гиперболические функции}
343 @defvr {Управляющая переменная} halfangles
344 Значение по умолчанию: @code{false}
346 Если @code{halfangles} равно @code{true}, то тригонометрические функции
347 аргументов @code{@var{expr}/2} упрощаются в функции от @var{expr}.
352 @c halfangles : false;
354 @c halfangles : true;
358 (%i1) halfangles : false;
364 (%i3) halfangles : true;
368 (%o4) ----------------
372 @opencatbox{Категории:}
373 @category{Тригонометрические функции}
374 @category{Флаги и переменные упрощения}
378 @c IS THIS DESCRIPTION ACCURATE ??
379 @c LET'S BE EXPLICIT ABOUT EXACTLY WHAT ARE THE RULES IMPLEMENTED BY THIS PACKAGE
381 Пакет @code{ntrig} содержит набор правил упрощения для тригонометрических
382 функций с аргументами вида @code{@var{f}(@var{n} %pi/10)}, где @var{f} - одна из
383 функций @code{sin}, @code{cos}, @code{tan}, @code{csc}, @code{sec} и @code{cot}.
384 @c NEED TO LOAD THIS PACKAGE ??
386 @opencatbox{Категории:}
387 @category{Тригонометрические функции}
388 @category{Пакет ntrig}
392 @deffn {Функция} sec (@var{x})
395 @opencatbox{Категории:}
396 @category{Тригонометрические функции}
400 @deffn {Функция} sech (@var{x})
401 - Гиперболический секанс.
403 @opencatbox{Категории:}
404 @category{Гиперболические функции}
408 @deffn {Функция} sin (@var{x})
411 @opencatbox{Категории:}
412 @category{Тригонометрические функции}
416 @deffn {Функция} sinh (@var{x})
417 - Гиперболический синус.
419 @opencatbox{Категории:}
420 @category{Гиперболические функции}
424 @deffn {Функция} tan (@var{x})
427 @opencatbox{Категории:}
428 @category{Тригонометрические функции}
432 @deffn {Функция} tanh (@var{x})
433 - Гиперболический тангенс.
435 @opencatbox{Категории:}
436 @category{Гиперболические функции}
440 @c NEEDS CLARIFICATION AND EXAMPLES
441 @deffn {Функция} trigexpand (@var{expr})
442 Раскрывает тригонометрические и гиперболические функции суммы или произведения углов в
443 @var{expr}. Для получения лучших результатов нужно сначала раскрыть @var{expr}. Для
444 повышения пользовательского контроля за упрощением функция раскрывает только один
445 уровень сумм/произведений за раз. Для полного раскрытия в синусы и косинусы укажите
446 @code{trigexpand: true}.
448 @code{trigexpand} управляется следующими глобальными флагами:
452 Раскрывать все получающиеся в последствии выражения с синусами и косинусами.
454 Раскрывать функции половинных углов в функции полных углов.
456 Раскрывать функции сумм аргументов (например, @code{sin(x + y)}).
457 @item trigexpandtimes
458 Раскрывать функции кратных аргументов (например, @code{sin(2 x)}).
464 @c x+sin(3*x)/sin(x),trigexpand=true,expand;
465 @c trigexpand(sin(10*x+y));
468 (%i1) x+sin(3*x)/sin(x),trigexpand=true,expand;
470 (%o1) - sin (x) + 3 cos (x) + x
471 (%i2) trigexpand(sin(10*x+y));
472 (%o2) cos(10 x) sin(y) + sin(10 x) cos(y)
476 @opencatbox{Категории:}
477 @category{Тригонометрические функции}
478 @category{Функции упрощения}
482 @defvr {Управляющая переменная} trigexpandplus
483 Значение по умолчанию: @code{true}
485 @code{trigexpandplus} управляет раскрытием функций от сумм аргументов в @code{trigexpand}
486 (если @code{trigexpand} равно @code{true}, либо в функции @code{trigexpand}), например,
487 @code{sin(x+y)}. Упрощение производится, только если @code{trigexpandplus} равно @code{true}.
489 @opencatbox{Категории:}
490 @category{Тригонометрические функции}
491 @category{Флаги и переменные упрощения}
495 @defvr {Управляющая переменная} trigexpandtimes
496 Значение по умолчанию: @code{true}
498 @code{trigexpandplus} управляет раскрытием функций от произведений аргументов в
499 @code{trigexpand} (если @code{trigexpand} равно @code{true}, либо в функции @code{trigexpand}),
500 например, @code{sin(2*x)}. Упрощение производится, только если @code{trigexpandtimes} равно
503 @opencatbox{Категории:}
504 @category{Тригонометрические функции}
505 @category{Флаги и переменные упрощения}
509 @defvr {Управляющая переменная} triginverses
510 Значение по умолчанию: @code{all}
512 @code{triginverses} управляет раскрытием композиций тригонометрических и гиперболических
513 функций со своими обратными функциями.
515 Если @code{all}, то и @code{atan(tan(@var{x}))}, и @code{tan(atan(@var{x}))}
516 упрощается в @var{x}.
518 Если @code{true}, то упрощение @code{@var{arcfun}(@var{fun}(@var{x}))} не производится.
520 Если @code{false}, то ни @code{@var{arcfun}(@var{fun}(@var{x}))}, ни
521 @code{@var{fun}(@var{arcfun}(@var{x}))} не будет упрощено.
523 @opencatbox{Категории:}
524 @category{Тригонометрические функции}
525 @category{Флаги и переменные упрощения}
529 @deffn {Функция} trigreduce (@var{expr}, @var{x})
530 @deffnx {Функция} trigreduce (@var{expr})
532 Раскрывает произведения и степени @code{sin}, @code{cos}, @code{sinh}, @code{cosh} в
533 функции кратных аргументов @var{x}. Также производится попытка исключить такие функции из
534 знаменателей. Если @var{x} не указано, будут использоваться все переменные из @var{expr}.
536 См. также @code{poissimp}.
539 @c trigreduce(-sin(x)^2+3*cos(x)^2+x);
542 (%i1) trigreduce(-sin(x)^2+3*cos(x)^2+x);
543 cos(2 x) cos(2 x) 1 1
544 (%o1) -------- + 3 (-------- + -) + x - -
549 В некоторых простых случаях команды упрощения используют информацию о переменных,
550 объявленную следующим образом:
553 @c declare(j, integer, e, even, o, odd)$
554 @c sin(x + (e + 1/2)*%pi);
555 @c sin(x + (o + 1/2)*%pi);
558 (%i1) declare(j, integer, e, even, o, odd)$
559 (%i2) sin(x + (e + 1/2)*%pi);
561 (%i3) sin(x + (o + 1/2)*%pi);
566 @opencatbox{Категории:}
567 @category{Тригонометрические функции}
568 @category{Функции упрощения}
572 @defvr {Управляющая переменная} trigsign
573 Значение по умолчанию: @code{true}
575 Если @code{trigsign} равно @code{true}, допускается упрощение отрицательных аргументов
576 тригонометрических функций. Например, @code{sin(-x)} раскроется в @code{-sin(x)}.
578 @opencatbox{Категории:}
579 @category{Тригонометрические функции}
580 @category{Флаги и переменные упрощения}
584 @deffn {Функция} trigsimp (@var{expr})
585 Применяет тождества @math{sin(x)^2 + cos(x)^2 = 1} и @math{cosh(x)^2 - sinh(x)^2 = 1}
586 для упрощения выражений с @code{tan}, @code{sec}, и так далее, до выражений с @code{sin},
587 @code{cos}, @code{sinh}, @code{cosh}.
589 Результат может упрощаться далее с @code{trigreduce}, @code{ratsimp}, и @code{radcan}.
591 @code{demo ("trgsmp.dem")} показывает несколько примеров для @code{trigsimp}.
592 @c MERGE EXAMPLES INTO THIS ITEM
594 @opencatbox{Категории:}
595 @category{Тригонометрические функции}
596 @category{Функции упрощения}
600 @c NEEDS CLARIFICATION
601 @deffn {Функция} trigrat (@var{expr})
602 Возвращает канонический упрощенный квазилинейный вид тригонометрического выражения;
603 @var{expr} - рациональная дробь с функциями @code{sin}, @code{cos} или @code{tan},
604 аргументы которых - линейные формы некоторых переменных и @code{%pi/@var{n}}
605 (@var{n} - целое) с целыми коэффициентами. Результат - упрощенная дробь с линейным
606 числителем и знаменателем с @code{sin} и @code{cos}. Таким образом, @code{trigrat}
607 переходит к линейному виду, только если это возможно.
610 @c trigrat(sin(3*a)/sin(a+%pi/3));
613 (%i1) trigrat(sin(3*a)/sin(a+%pi/3));
614 (%o1) sqrt(3) sin(2 a) + cos(2 a) - 1
618 Следующий пример взят из раздела 1.5.5, "Теорема Морлея", книги Davenport, Siret,
619 Tournier, @i{Calcul Formel}, изд-во Masson (английский перевод - Addison-Wesley).
623 @c bc: sin(a)*sin(3*c)/sin(a+b);
625 @c ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
629 (%i1) c: %pi/3 - a - b;
633 (%i2) bc: sin(a)*sin(3*c)/sin(a+b);
634 sin(a) sin(3 b + 3 a)
635 (%o2) ---------------------
637 (%i3) ba: bc, c=a, a=c$
638 (%i4) ac2: ba^2 + bc^2 - 2*bc*ba*cos(b);
640 sin (a) sin (3 b + 3 a)
641 (%o4) -----------------------
646 2 sin(a) sin(3 a) cos(b) sin(b + a - ---) sin(3 b + 3 a)
648 - --------------------------------------------------------
650 sin(a - ---) sin(b + a)
654 sin (3 a) sin (b + a - ---)
656 + ---------------------------
661 (%o5) - (sqrt(3) sin(4 b + 4 a) - cos(4 b + 4 a)
663 - 2 sqrt(3) sin(4 b + 2 a) + 2 cos(4 b + 2 a)
665 - 2 sqrt(3) sin(2 b + 4 a) + 2 cos(2 b + 4 a)
667 + 4 sqrt(3) sin(2 b + 2 a) - 8 cos(2 b + 2 a) - 4 cos(2 b - 2 a)
669 + sqrt(3) sin(4 b) - cos(4 b) - 2 sqrt(3) sin(2 b) + 10 cos(2 b)
671 + sqrt(3) sin(4 a) - cos(4 a) - 2 sqrt(3) sin(2 a) + 10 cos(2 a)
677 @opencatbox{Категории:}
678 @category{Тригонометрические функции}
679 @category{Функции упрощения}