|
0 / 0 / 0
Регистрация: 30.09.2017
Сообщений: 4
|
|
Как в записать arccos y^2?01.10.2017, 21:45. Показов 3561. Ответов 4
Метки нет (Все метки)
0
|
|
| 01.10.2017, 21:45 | |
|
Ответы с готовыми решениями:
4
Как правильно записать ARCCOS в турбопаскаль
|
|
1 / 1 / 0
Регистрация: 01.10.2017
Сообщений: 7
|
||||||
| 02.10.2017, 09:55 | ||||||
0
|
||||||
|
Модератор
10411 / 5698 / 3401
Регистрация: 17.08.2012
Сообщений: 17,351
|
|||||||||||||||||||||
| 03.10.2017, 12:45 | |||||||||||||||||||||
Сообщение было отмечено ZX Spectrum-128 как решение
Решение
7in, Будьте внимательнее. Приведённый Вами алгоритм вычисления функции arccos(x) ошибочен. Не расстраивайтесь, это, скорее всего, потому, что именно этот ублюдочный алгоритм различные говнокодеры везде публикуют как пример для подражания, а Вы, в стремлении помочь, нашли это решение от какого-нибудь псевдо-гуру, да и опубликовали его здесь, не особенно проверив.
Что не так: - при x=0 будет аварийное завершение программы из-за деления на 0, это, мягко говоря, нехорошо, поскольку должно получиться π/2 без никакого аварийного завершения; - при x<1 функция возвращает неверные значения, например, при x = -1 функция вернёт 0, а должна вернуть π (конечно, в данном случае из-за y2 аргумент Вашей функции ArcCos никогда не будет отрицательным, но это нисколько не оправдывает ошибки). Давайте немножко с этим повоюем.. Возьмём не сокращённую формулу представления arccos(x) через arctg(x): Получим:
Теперь разобъём интервал допустимых значений аргумента на 3 части, и дело в шляпе... Осталось выбрать границы. В принципе, оптимальным будет выбор таких границ, при котором аргумент для arctg не будет превосходить 1, это соответствует углу косинус этого угла будет В этом случае функция может выглядеть так:
Здесь может возникнуть деление на 0 лишь в одном случае, при x=-1, и для большинства применений можно так:
получим, на мой взгляд, наиболее оптимальный вариант функции:
Лирическое отступление, для предвосхищения необдуманных вопросов. Да знаю я, что функция arccos(x) не определена при |x|>1, и в таком случае должна генерироваться ошибка. Можно было бы в вышеуказанные функции ввести дополнительные проверки, выдавать соответствующее сообщение, и прекращать работу программы. По моему мнению, это как-то... Тавтологией попахивает, что ли... Поэтому я написал функции так, чтобы генерировалась стандартная ошибка. Во всех приведённых функциях при |x|>1 будет иметь место попытка извлечения квадратного корня из отрицательного числа, и будет вызван стандартный обработчик для недействительной операции для чисел с плавающей точкой.
3
|
|||||||||||||||||||||
|
1 / 1 / 0
Регистрация: 01.10.2017
Сообщений: 7
|
|||||||
| 03.10.2017, 14:33 | |||||||
|
Вот так короче и работает всегда без проблем (хотя автору вопроса вряд ли разрешат использовать ассемблер):
0
|
|||||||
|
Модератор
10411 / 5698 / 3401
Регистрация: 17.08.2012
Сообщений: 17,351
|
|
| 04.10.2017, 00:30 | |
|
Ну да... Внешний вид комментария, в данном случае, пожалуй, не поясняет, а только запутывает, поскольку вычисляется здесь вовсе не арктангенс, а так называемый частичный арктангенс, patan (англ.: partial arctangent), он же - PArcTan, он же - arctan2, который является функцией от двух аргументов. Команда сопроцессора fpatan фактически в качестве входных значений принимает координаты точки (X, Y), где X — абсцисса, помещаемая в ST(0), а Y — ордината, помещаемая в ST(1). Возвращаемая величина представляет собой угол в радианах между осью абсцисс и прямой, проходящей через центр координат и заданную точку, и операция деления при этом не выполняется.
0
|
|
| 04.10.2017, 00:30 | |
|
Помогаю со студенческими работами здесь
5
Как правильно записать arcsin и arccos?
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|