сsin, сsinf, сsinl, – расчет комплексного синуса
Синтаксис:
#include < complex.h >
double complex csin (double complex z);
float complex csinf (float complex z);
long double complex csinl (long double complex z);
Аргументы:
z – комплексное значение угла.
Возвращаемое значение:
Cинус угла, заданного комплексным аргументом.
Описание:
Функции рассчитывают значение комплексного синуса.
Тригонометрические функции комплексного аргумента представляют собой аналитические продолжения соответствующих тригонометрических функций действительного аргумента в комплексную плоскость. Формула Эйлера ei*a=cos(a) + i*sin(a), позволяет определить тригонометрическую функцию от комплексного аргумента через экспоненту.
Таким образом, комплексный синус может быть представлен в виде: sin(z) = (ei*z-e-i*z)/(2*i)
Расчет комплексного синуса в функциях осуществляется по приведенным ниже формулам:
csin (z) = ( exp (i*z) – exp (-i*z) )/ (2*i)
csinf (z) = ( expf (i*z) – expf (-i*z) )/ (2*i)
csinl (z) = ( expl (i*z) – expl (-i*z) )/ (2*i)
Действительная и мнимая часть аргумента и возвращаемого значения функции csin задаются числами с плавающей точкой двойной точности (тип double, точность не менее десяти значащих десятичных цифр, разрядность - 64).
Действительная и мнимая часть аргумента и возвращаемого значения функции csinf задаются числами с плавающей точкой (тип float, точность не менее шести значащих десятичных цифр, разрядность - 32).
Действительная и мнимая часть аргумента и возвращаемого значения функции csinl задаются числами с плавающей точкой повышенной точности (тип long double, точность не менее десяти значащих десятичных цифр, разрядность - 80).
Пример:
В примере рассчитывается комплексный синус от 5+i*2 с помощью функций csin, csinf и csinl, и результат выводится на консоль. Обратите внимание на точность полученных результатов. У комплексного синуса, рассчитанного с помощью функции csinf, будет самая маленькая точность, а у рассчитанного с помощью функции csinl – самая большая.
#include < stdio.h > //Для printf
#include < complex.h > //Для csin, csinf, csinl, creal,
//cimag, crealf, cimagf, creall, cimagl
int main (void)
{
//Переменные для сохранения результатов
float complex rez1;
double complex rez2;
long double complex rez3;
//Расчет синуса с помощью функции csinf
rez1=csinf (5+I*2);
//Расчет синуса с помощью функции csin
rez2=csin (5+I*2);
//Расчет синуса с помощью функции csinl
rez3=csinl (5+I*2);
//Вывод аргумента
printf (“Аргумент: 5+i*2\n”);
//Вывод результата расчета функции csinf
printf (“csinf : %.17f%+.17f*i\n”, crealf (rez1), cimagf (rez1) );
//Вывод результата расчета функции csin
printf (“csin : %.17f%+.17f*i\n”, creal (rez2), cimag (rez2) );
//Вывод результата расчета функции csinl
printf (“csinl : %.17Lf%+.17Lf*i\n”, creall (rez3), cimagl (rez3) );
return 0;
}
| |
Результат:
Аргумент: 5+2*i
csinf : -3.60766077041625977+ 1.02880322933197021*i
csin : -3.60766077421315634+ 1.02880314965993347*i
csinl : -3.60766077421315626+ 1.02880314965993349*i
|
Смотри так же:
sin, sinf, sinl,
asin, asinf, asinl,
cos, cosf, cosl,
acos, acosf, acosl,
tan, tanf, tanl,
atan, atanf, atanl,
atan2, atan2f, atan2l,
sincos, sincosf, sincosl,
csin, csinf, csinl,
casin, casinf, casinl,
ccos, ccosf, ccosl,
cacos, cacosf, cacosl,
ctan, ctanf, ctanl,
catan,catanf,catanl,
sinh, sinhf, sinhl,
asinh, asinhf, asinhl,
cosh,coshf,coshl,
acosh, acoshf, acoshl,
tanh, tanhf, tanhl,
atanh, atanhf, atanhl,
|