Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C (СИ) Конкатенация строк https://www.cyberforum.ru/ c-beginners/ thread994741.html
Скопировать вторую строку s2 в конец первой строки s1. Строки должны вводиться с клавиатуры. Помогите решить.
C (СИ) Вычислить значение выражения
Решить задачу, применив оператор повтора FOR. Вычислить:S=\sum_{i=1}^{n}{i}^{2}; n=100
C (СИ) Посимвольное считывание строки из файла Прошу помощи, хотелось бы считать строку из файла (в котором много строк) посимвольно и записать каждый считанный символ в каждый элемент массива. #include <stdio.h> int main() { FILE *f... https://www.cyberforum.ru/ c-beginners/ thread994680.html C (СИ) fgets() https://www.cyberforum.ru/ c-beginners/ thread994617.html
Добрый день. Друзья, помогите разобраться в следующем. Нужно построчно считать файл. И вот какой вопрос. char d - массив. Он описывается адресом начала массива и длиной. Тоесть, функция fgets кладет...
C (СИ) Поможет ли знание Си++ чтобы выучить Си
Текстовый браузер Lynx написан на Си если не ошибаюсь, хотелось бы прочитать и понять исходники этой программы вот только не незнаю Си. Еше есть программа Gnu Octave она написана на Си++ тоже...
C (СИ) Разработать программу поиска минимального значения массива и замены его заданным значениям b A(u), n=10 Разработать программу поиска минимального значения массива и замены его заданным значениям b A(u), n=10 https://www.cyberforum.ru/ c-beginners/ thread994542.html
C (СИ) Вычисление корня. Цикл https://www.cyberforum.ru/ c-beginners/ thread994329.html
Здравствуйте , посмотрите пожалуйста правильно ли оформлен цикл? for (i = 0; i < num; i++){ example += sqrt(3*(num-1)+sqrt(3*num)); } example1 = sqrt(3+sqrt(6+example));
C (СИ) Рассчитайте величину функции y=f(x) для десяти значений
в С! Файл удалён. 5.18 Запрещено размещать задания в виде картинок и других файлов с их текстом.правила форума
C (СИ) Циклический сдвиг - Теряются все биты Подскажите пожалуйста как на си зделать циклический здвиг, через оператор << (>>) теряются все биты. https://www.cyberforum.ru/ c-beginners/ thread994318.html C (СИ) Сложности понимания работы utf-8 и ascii https://www.cyberforum.ru/ c-beginners/ thread994301.html
Привет! Давненько заметил вот такую штуку: $ echo "abcde" > test_utf-8_en.txt $ echo "абвг" > test_utf-8_rus.txt $ ls *txt -rw-r--r-- 1 sirroko users 6 Nov 1 03:38 test_utf-8_en.txt...
C (СИ) Поразрядная операция &
Здравствуйте! У меня есть программа: unsigned short int con(unsigned short int x, unsigned short int y, unsigned short int z); unsigned short int con(unsigned short int x, unsigned short int y,...
C (СИ) Определить существование треугольника, зная длины сторон Заданные три числа. Определить, могут ли они быть сторонами треугольника и, если да, определить его тип: равносторонний, равнобедренный, произвольный. Помогите исправить код, я в C новенький. ... https://www.cyberforum.ru/ c-beginners/ thread994180.html
133 / 131 / 51
Регистрация: 25.05.2013
Сообщений: 233
02.11.2013, 20:12 0

Вычислить сумму ряда (приближенное значение функции sin) - C (СИ) - Ответ 5276149

02.11.2013, 20:12. Показов 3639. Ответов 3
Метки (Все метки)

Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

В своем варианте решения задачи я действительно не предусмотрел, что можно написать функцию с меньшим количеством расчетов и избавиться от функции факториала.
Для функции zss у меня лишь два совета:
- функция должна корректно отрабатывать если ей передадут аргумент намного больше чем
- сократить расчет очередного элемента ряда

C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
 
double MySin( double x, double eps );
// функция избавляется от лишних оборотов единичной окружности возвращает только нужное количество радиан
// от угла, переданного как аргумент в радианах
double ClearUnnTurn( double valuePi );
 
int main( void ) {
    // запрашиваем исходные данные у пользователя
    double eps, xDegrees;
    printf( "Введите аргумент x в градусах " );
    scanf( "%lf", &xDegrees );
    printf( "Введите точность epsilon " );
    scanf( "%lf", &eps );
 
    double xRadians = xDegrees * M_PI / 180.0; // переводим градусы в радианы
 
    // выводим результаты вычислений
    printf( "Значение sin( %g )\n", xDegrees );
    printf( " - вычисленное с заданной точностью при помощи разложения в степенной ряд = %2.8f\n", MySin( xRadians, eps ) );
    printf( " - вычисленное при помощи библиотечной функции = %2.8f\n", sin( xRadians ) );
 
    return EXIT_SUCCESS;
}
 
double ClearUnnTurn( double valuePi ) {
 
    int sign = 1; // знак радианной меры
    if ( valuePi < 0 ) // если радианная мера отрицательна
        sign = -1; // запоминаем это
 
    valuePi = fabs( valuePi ); // берем абсолютное значение радианной меры
    int countUnnecessary = valuePi / ( 2.0 * M_PI ); // ищем количество оборотов
 
    if ( countUnnecessary >= 1 ) // если есть лишние обороты
        valuePi -= ( countUnnecessary * 2 * M_PI ); // значит убираем ненужные
 
    return valuePi * sign; // возвращаем результат, учитывая знак
}
 
double MySin( double x, double eps ) {
    x = ClearUnnTurn( x ); // тут
    double an, s;
    int n;
    n = 2;
    an = x;
    s = an;
    while ( fabs( an ) > eps ) {
        an *= -x * x / ( n * ( n + 1 ) ); // тут
        s += an;
        n += 2;
    }
    return s;
}


Вернуться к обсуждению:
Вычислить сумму ряда (приближенное значение функции sin) C (СИ)
2
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
02.11.2013, 20:12
Готовые ответы и решения:

Вычислить сумму ряда (приближенное значение функции exp) с точностью eps
Вычислить сумму ряда (приближенное значение функции exp) с точностью eps. Значения x и eps вводятся...

Вычислить приближенное значение sin(X) с помощью ряда
Дано вещественное число X и целое число N (&gt; 0). Найти значение выражения X – X3/(3!) + X5/(5!) – …...

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

Циклом «пока» вычислить сумму ряда 1/sin 1+1/sin 1+sin 2+...+1/sin 1+...sin n
1/sin 1+1/sin 1+sin 2+...+1/sin 1+...sin n

3
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.11.2013, 20:12
Помогаю со студенческими работами здесь

Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора
!!!Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора. ...

Вычислить приближенное значение функции, используя представление ее в виде ряда Тейлора
Помогите решить задачу. Я только начинаю программировать на С++ и мне нужна ваша помощь . Спасибо !...

Вычислить приближённое значение функции, используя представление ее в виде ряда Тейлора
Помогите пожалуйста вычислить приближённое значение функции, используя представление ее в виде ряда...

Найти приближенное значение функции sin в точке
Помогите решить задачу:): Дано вещественное число X и целое число N (&gt; 0). Найти значение...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru