C sin math: C sin() — C Standard Library

Функция синуса в C

В математике функция синуса входит в число трех основных функций, в число других входят косинус и тангенс. Методы выполнения основных математических операций, таких как элементарные экспоненциальные, логарифмические, квадратный корень и математические операции, включены в заголовок . Вы должны включить заголовочный файл , чтобы использовать эти функции. Функция sin принимает угол в радианах и дает значение его синуса, которое можно подтвердить с помощью кривой синусоиды.

Вы можете использовать закон синусов, чтобы найти любой угол в треугольнике, а также длину определенной стороны треугольника. Это фундаментальное тригонометрическое понятие. Функция sin используется в версиях языка C ANSI/ISO 9899-1990. Sin() возвращает результат в диапазоне от 1 до -1.

Теперь давайте начнем с нескольких примеров функции sin() на языке программирования C.

Предварительные условия

  • Установка компилятора GCC в Windows/Linux

Примечание. Мы используем компилятор GCC в Windows 10.

Пример 1

В нашем первом примере мы собираемся использовать функцию sin() в нашей программе. Первоначально вам нужно открыть компилятор GCC и создать новый файл с любым требуемым именем. После этого вставьте в него последующий код.

Мы добавили несколько библиотек: и . После добавления перейдите к основной функции. В функции main() мы объявили две переменные, «a» и «result» с типом данных double. Одной из переменных мы присвоили значение «7,1» и вычислили ее значение sin; вывод будет сохранен в переменной «результат». Затем мы присвоили отрицательное значение переменной «a» и вычислили ее значение sin. После этого переменной «а» присваивается ноль, а результат ее вычисления будет храниться в переменной «результат». Теперь все готово для выполнения программы. В строке меню компилятора GCC вы должны нажать на опцию «Скомпилировать и запустить», чтобы получить результат. Эта опция присутствует в меню «Build».

После того, как вы нажмете на эту опцию, на вашем экране появится черный экран с названием «Консоль». Вы получите следующий фиксированный вывод, как показано на приложенном ниже снимке экрана.

Пример 2

Во втором примере мы будем использовать функцию sin() в нашей программе несколько сложным образом. Первоначально вам нужно открыть компилятор GCC и создать новый файл с любым требуемым именем. Можно также использовать предыдущий файл. После этого вставьте в него последующий код.

Мы добавили несколько библиотек: и . Мы добавили значение PI, , как видно на скриншоте. После добавления перейдите к основной функции. В функции main() мы объявили три переменные «a», «retu» и «value» с типом данных double. Одной из переменных мы присвоили значение «79,0». Мы применили формулу, сохранили ее значение в переменной «retu» и вычислили ее значение sin; затем мы напечатали результат с помощью функции printf(). Теперь все готово для выполнения программы. В строке меню компилятора GCC вы должны нажать на опцию «Скомпилировать и запустить», чтобы получить результат. Эта опция присутствует в меню «Build».

После того, как вы нажмете на эту опцию, на вашем экране появится черный экран с названием «Консоль». Вы получите следующий фиксированный вывод, как показано на приложенном ниже снимке экрана.

Пример 3

В нашем третьем и последнем примере мы будем использовать функцию sin() в нашей программе немного по-другому. Этот пользователь должен ввести число во время выполнения, чтобы вычислить значение sin(). Первоначально вам нужно открыть компилятор GCC и создать новый файл с любым требуемым именем. Можно также использовать предыдущий файл. После этого вставьте в него последующий код.

Мы добавили несколько библиотек  и . После добавления перейдите к основной функции. В функции main() мы объявили две переменные, «Sineval» и «num» с типом данных double. Мы использовали функции printf() и scanf(). После этого мы вычислим sin() значения, введенного пользователем, и отобразим его результат.

Теперь мы готовы выполнить программу. В строке меню компилятора GCC вы должны нажать на опцию «Скомпилировать и запустить», чтобы получить результат. Эта опция присутствует в меню «Build». После того, как вы нажмете на эту опцию, на вашем экране появится черный экран с названием «Консоль». Вы получите следующий фиксированный вывод, как показано на приложенном ниже снимке экрана 9.0003

Как видите, мы ввели число «19» и получили его результат. Номер может быть выбран в соответствии с вашими потребностями.

Заключение

В этой статье представлено краткое введение в функцию sin() в языке программирования C. Мы подробно рассмотрели три разных примера для понимания пользователем. Все примеры различны по реализации. Теперь я надеюсь, что всякий раз, когда вы будете пытаться реализовать эти примеры в своей системе, вы сможете легко понять основную концепцию функции sin() в языке программирования C.

Вызов тригонометрических функций в разных языках программирования

Языки программирования непоследовательны в поддержке триггерных функций и непоследовательны в именах, которые они используют для поддерживаемых функций. Несколько раз меня это раздражало и говорило, что я должен когда-нибудь сделать сравнительную таблицу, и сегодня я, наконец, сделал это.

Вот таблица. Столбец C также обозначает такие языки, как Python, которые следуют соглашениям C. Подробнее об этом ниже.

Таблица выше представляет собой изображение в формате PNG. HTML-версия той же таблицы доступна здесь.

В остальной части поста обсуждаются детали и шаблоны в таблице.

Введение

В соответствии с наиболее распространенным соглашением существует шесть триггерных функций: синус, косинус, тангенс, секанс, косеканс и котангенс. Ваш список может быть длиннее или короче, в зависимости от того, как вы их считаете. Эти шесть функций имеют инверсию (в некотором диапазоне), поэтому математическая библиотека может иметь 12 триггерных функций, включая инверсию.

За исключением морщинки с арктангенсом. Для любого заданного t существует бесконечно много углов θ, тангенс которых равен t . Какую ты хочешь? По соглашению мы обычно хотим θ между -π/2 и π/2. Но бывает удобно указать точку ( x , y ) и запросить угол, который образует линия от начала координат до точки. В этом случае мы получаем значение θ в том же квадранте , что и точка. Итак, если х / х = z , форма арктангенса с одним аргументом зависит только от z , но с двумя аргументами зависит как от x , так и от y ; две точки с равными отношениями могут привести к различному выбору θ.

Таким образом, с нашими двумя версиями арктангенса мы имеем в общей сложности 13 функций. В этом посте объясняется, какие из этих 13 функций поддерживаются в C, Python, R, Perl, Mathematica, bc и Common Lisp, и как называются поддерживаемые функции.

Математика

Из рассмотренных языков только Mathematica реализует все 13 функций. Названия шести основных функций такие же, как в современных учебниках по математическому анализу, за исключением того, что, как и все функции в системе Mathematica, имена начинаются с заглавной буквы.

Итак, шесть триггерных функций: Sin , Cos , Tan , Sec , Csc и Cot . Обратные функции аналогичны префиксу Arc : ArcSin , ArcCos и т. д.

Обе функции арктангенса называются ArcTan . С одним аргументом ArcTan[z] возвращает угол θ между -π/2 и π/2, такой что tan θ = z . С двумя аргументами ArcTan[x, y] возвращает угол θ в том же квадранте, что и ( x , y ) с тангенсом θ = y / x .

C, Python и R

Python и R следуют примеру C, как и другие языки программирования, такие как JavaScript.

C не поддерживает sec, csc и cot, предположительно потому, что они являются просто обратными значениями cos, sin и tan соответственно. Он также не поддерживает их инверсии.

Обратные триггерные функции обозначаются префиксом и : asin , acos , atan . Форма арктангенса с двумя аргументами: atan2 . Порядок аргументов atan2 отличается от порядка в Mathematica и обсуждается ниже в разделе, посвященном Common Lisp.

NumPy

NumPy поддерживает те же триггерные функции, что и базовый Python, но использует другие имена для обратных функций. That is, NumPy uses arcsin , arccos , arctan , and arctan2 while Python’s standard math module uses asin , acos , atan , and atan2 .

Common Lisp

Common Lisp такой же, как C, за исключением функции арктангенса двух аргументов. Здесь CL похожа на Mathematica тем, что одно и то же имя используется для функции одного аргумента и функции двух аргументов.

Однако порядок аргументов в CL обратный по сравнению с Mathematica. То есть (atan y x) в CL равно ArcTan[x, y] в Mathematica.

Несмотря на то, что в этих двух языках используются противоположные соглашения, для обоих есть веские причины. Mathematica интерпретирует аргументы ArcTan[x, y] как координаты точки, записанные в обычном порядке. Common Lisp интерпретирует (atan y x) как функцию, второй аргумент которой по умолчанию равен 1.

Mathematica имеет то преимущество, что координаты точки перечислены в естественном порядке. Common Lisp имеет то преимущество, что значение первого аргумента не меняется, если вы добавляете второй аргумент.

C и такие языки, как Python и R, которые следуют за C, используют то же соглашение, что и Common Lisp, то есть первый аргумент для atan2 является второй координатой точки.

Perl

Базовый язык Perl поддерживает только три триггерные функции: синус, косинус и арктангенс с двумя аргументами. Модуль Math::Trig поддерживает все остальное, включая обратные функции и их обратные функции.

Интересно, что Perl сделал тот выбор, который он сделал. Существуют языки, такие как

bc , обсуждаемые ниже, которые поддерживают арктангенс с одним аргументом, но не с двумя; Perl — единственный известный мне язык, который делает обратное, поддерживая арктангенс с двумя аргументами, но не с одним. Имеет смысл, что если вы собираетесь поддерживать только один, вы поддерживаете более общий из двух.

Perl-функция atan2 использует то же соглашение об аргументах, что и C et al., то есть atan2(y, x), сначала числитель.

В модуле Math::Trig взаимные триггерные функции называются sec , csc и cot , что сейчас является стандартом. (Вы можете встретить такие вещи, как cosec и ctn, в старых учебниках по математике.) Обратные функции имеют префикс a , как и в C.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *