Кіріспе

Екі аргументті арктангенс функциясы

Есептеу және математикада atan2 функциясы екі аргументті арктангенс болып табылады. Анықтама бойынша, ол – оң x ось пен координаталық жазықтықтағы нүктеге (0,0) дейінгі сәуле арасындағы бұрыш өлшемі (радианмен, -π/2 < бұрыш < π/2). Басқаша айтқанда, ол комплекс санның аргументі (фаза немесе бұрыш деп те аталады).

atan2 функциясы алғаш рет 1961 жылы Fortran бағдарламалау тілінде пайда болды. Ол бастапқыда Картезиандық координаттарды (x, y) полярлық координаттарға (r, θ) түрлендіргенде θ бұрышының дұрыс және бірегей мәнін беру үшін жасалған. Егер x = 0 және y = 0 болса, онда бұрыш анықталмайды.

Егер x > 0 болса, қажетті бұрыш өлшемі арктангенс(y/x) болады. Алайда, x < 0 болғанда, арктангенс(y/x) бұрышы қажетті бұрышқа қарама-қарсы болады, сондықтан дұрыс квадрантқа орналастыру үшін ±π (жарты айналым) қосу қажет. atan2 функциясын пайдалану осы түзетуді жояды, кодты және математикалық формулаларды жеңілдетеді.

Мотивация

Қарапайым бір аргументті арктангент функциясы тек белгілі бір интервалдағы бұрыш шамаларын қайтарады. Ал оны x ось пен Декарт жазықтығындағы кез келген вектор арасындағы бұрыш шамасын табу үшін қолданғанда, сол жақ жарты жазықтықтағы бағытты көрсетудің қарапайым жолы жоқ (яғни, координатасы теріс болатын нүктенің). Диаметралық қарама-қарсы бұрыш шамаларының тангенсі бірдей болады, себебі тангенс бұрышты бірегей анықтау үшін жеткіліксіз. Нүкте немесе вектор берілгенде, арктангент функциясын пайдаланып бұрыш шамасын анықтау үшін математикалық формулалар немесе компьютерлік код бірнеше жағдайды қарастыруы керек: кем дегенде біреуін координатасы оң мәнді, екіншісін теріс мәнді жағдайлар үшін, ал кейде координатасы теріс немесе бір координатасы нөл болғанда қосымша жағдайларды да қарастыру қажет. Бұрыш шамаларын табу және Декарт координаталарын полярлық координаталарға түрлендіру ғылыми есептеулерде жиі кездеседі, бірақ мұндай код артық және қателерге бейім. Осы мәселені шешу үшін компьютерлік бағдарламалау тілдері 1960 жылдардағы Fortran IV тілінен бастап atan2 функциясын енгізді. Atan2(y, x) шамасы – бастапқы нүктеден (x, y) нүктесіне жүргізілген сәуле мен x ось арасындағы бұрыш шамасы. x және y координаталарының таңбалары нәтиже қай ширекке тиесілі екенін анықтау және Arctan(y/x) көпмәнді функциясының дұрыс тармағын таңдау үшін қолданылады. Atan2 функциясы Евклидтік векторларды қолданатын көптеген салаларда пайдалы, мысалы, бір нүктеден екінші нүктеге бағытты табу немесе айналу матрицасын Эйлер бұрыштарына түрлендіру үшін. Atan2 функциясы қазір көптеген бағдарламалау тілдеріне енгізілген, сонымен қатар ғылым мен техника салаларындағы математикалық формулаларда да жиі кездеседі.

Аргументтер реті

1961 жылы Фортран аргументтер ретімен atan2 функциясын енгізді, осылайша комплекс санның аргументі (фазалық бұрышы) анықталады. Бұл оң мәндер үшін солдан оңға қарай жазылатын бөлшектің ретімен сәйкес келеді, яғни . Дегенмен, бұл комплекс сандар үшін немесе координаталар ретінде дәстүрлі компоненттер ретіне қарама-қарсы. Кейбір басқа бағдарламалау тілдері (§ Көп қолданылатын компьютерлік тілдерде функцияны іске асыру бөлімін қараңыз) кері ретті таңдады. Мысалы, Microsoft Excel қолданады, OpenOffice Calc қолданады, ал Mathematica бір аргументпен шақырғанда бір аргументті arctangent функциясын қолдануға көшіреді.

Суреттер

Бұл суретте атан2 функциясының мәндері бірлік шеңберінде белгіленген, координаталардың басынан (шығу тегінен) таңдалған сәулелер бойымен көрсетілген. Мәндер радиандармен шеңбердің ішінде жазылған. Диаграммада стандартты математикалық конвенция қолданылады, яғни бұрыштар нөлден бастап оң жаққа қараған сәуле бойымен сағат тіліне қарсы бағытта өседі. Аргументтердің реті керісінше берілген; атан2(y, x) функциясы (x, y) нүктесіне сәйкес келетін бұрышты есептейді. Бұл суретте функцияның мәндері көрсетілген. Екі функция да тақ және периодты, периодтары π және 2π-ге тең, сондықтан оларды нақты сандардың кез келген аймағына оңай толықтыруға болады. Функцияның кесілімдерін анық көруге болады және функциясы үшін. Төмендегі екі сурет атан2(y, x) және функцияларының 3D көрінісін көрсетеді. Атан2(y, x) үшін X/Y жазықтығындағы координаталардың басынан шығатын сәулелердің мәндері тұрақты, ал функциясы үшін X/Y жазықтығынан өтетін түзулердің мәндері тұрақты болады. x > 0 болғанда екі диаграмма да бірдей мәндерді береді.