Вниз
Скачать: CL | DM;

Как вычислить arccos через arctan?   Найти похожие ветки 

← →
Pweq   (2007-10-24 17:10) [0]

Подскажите, пожалуйста!


← →
Сергей М. ©   (2007-10-24 17:11) [1]

Студент ?)


← →
palva ©   (2007-10-24 17:17) [2]

{$APPTYPE CONSOLE}
uses Math;
var d: Double;
begin
 d := 0.2;
 writeln(arctan(sqrt(1-sqr(d))/d)); //  1.36943840600457E+0000
 // Проверяем:
 writeln(arccos(d));                //  1.36943840600457E+0000
 // Совпадает
end.


← →
Pweq   (2007-10-24 17:48) [3]

А если d = 0?


← →
@!!ex ©   (2007-10-24 17:54) [4]

> [3] Pweq   (24.10.07 17:48)

Сам не догадаешься?


← →
Dmitry S ©   (2007-10-24 17:54) [5]

А когда косинус равен нулю?:)


← →
palva ©   (2007-10-24 17:56) [6]

Тогда исправим код.
{$APPTYPE CONSOLE}
uses Math;
var d: Double;
begin
 d := 0.2;
 writeln(arctan2(sqrt(1-sqr(d)), d)); //  1.36943840600457E+0000
 d := 0.0;
 writeln(arctan2(sqrt(1-sqr(d)), d)); //  1.57079632679490E+0000
end.


← →
tesseract ©   (2007-10-24 17:57) [7]


> А если d = 0?


pi/2


← →
Jeer ©   (2007-10-24 18:03) [8]

<
> tesseract ©   (24.10.07 17:57) [7]


А если военное время и PI равно бесконечности ?
У студента и так уже заворот мозгов.


← →
oldman ©   (2007-10-24 18:22) [9]


> Dmitry S ©   (24.10.07 17:54) [5]
> А когда косинус равен нулю?


В военное время при отсутствии прапорщиков...


← →
Jimmy   (2007-10-24 19:31) [10]

Кстати, недавно столкнулся с тем, что ArcCos из модуля Math при аргументе чуть большем 1 выдает какое-то громадное число. Пришлось написать свой:
Function ArcCosMy(x:Real):Real;
begin
if x>=1  then x:=1;
if x<=-1 then x:=-1;
Result:=ArcCos(x);
end;
Будуте смеятнся надо мной или над ArcCos?


← →
@!!ex ©   (2007-10-24 19:35) [11]

> [10] Jimmy   (24.10.07 19:31)

Над вами, ибо Cos не может принимать значения меньше -1 и больше 1, соответственно и ArcCos обрабатывать такие значения не должен.


← →
Jimmy   (2007-10-24 19:41) [12]

Ей-Богу, не вру!


← →
Petr V.Abramov   (2007-10-24 21:56) [13]

написать ф-цию arctan2arccos
как - в учебнике


← →
@!!ex ©   (2007-10-25 21:32) [14]

Кстати, вот в целях общего развития сегодня написал. Работает на 30% быстрее стандартной реализации.
function FastArcCos(const X: Extended): Extended;
asm
 fld    X
 fld    X
 fmul
 fld1
 fsubr
 fsqrt
 fld    X
 fpatan
 fwait
end;



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.012 c
15-1188359243
georgius
2007-08-29 07:47
2007.11.25
Новая версия urlmon


1-1189049650
Nikfel
2007-09-06 07:34
2007.11.25
Добавление пункта в системное контекстное меню эксплорера


2-1193682578
mahab
2007-10-29 21:29
2007.11.25
Коррректная обработка загрузки испорченных изображений


15-1193293364
shadowonline
2007-10-25 10:22
2007.11.25
Остановка загрузки Windows до окончания работы программы


15-1192869376
hahol_64_rus
2007-10-20 12:36
2007.11.25
блокнотик




   Наверх