Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.10.2010, 16:46   #1
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Вычисление синуса разложением в ряд

Всем доброго время суток, дана программа, которая используя приближенное выражение разложение в ряд синуса вычисляет его значения:

Код:
#include <iostream>
using namespace std;
const int N = 100;
int main() {
	double x, q, s = 0;
		int n;
	cout << "Enter x = ";
	cin >> x;
	q = x;
	for (n = 1; n <= N; n++) {
		s += q;
		q *= (-1) * x * x/(2 * n)/(2 * n + 1);}
	cout << "sin("<<x<<") = "<< s << endl;
	return 0;
}
Компиляция проходит без ошибок, но программа не правильно считает значения синуса угла: 30, 45, 60, 90, 180 и 360 градусов заранее огромное спасибо.

Последний раз редактировалось Stilet; 16.10.2010 в 17:54.
jennya вне форума Ответить с цитированием
Старый 16.10.2010, 17:38   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

радианная мера угла
p51x вне форума Ответить с цитированием
Старый 16.10.2010, 17:56   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ито верно. Автор - преобразуй результат из радиан в градусы:http://ru.wikipedia.org/wiki/%D0%A0%...B8%D0%B0%D0%BD
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 16.10.2010, 21:39   #4
jennya
Пользователь
 
Регистрация: 21.06.2010
Сообщений: 30
По умолчанию Вычисление синуса разложением в ряд

У меня вопрос почему q *= (-1) * x * x/(2 * n)/(2 * n + 1),

если приближенная формула синуса
q *= ∑ ((-1)^n * x ^ 2n+ 1/(2 * n + 1)!)
jennya вне форума Ответить с цитированием
Старый 16.10.2010, 22:33   #5
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Это рекуррентное соотношение:
Код:
q[i + 1] = q[i] * (-1) * x * x/(2 * n)/(2 * n + 1)
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вычисление cos разложением в ряд bondik Общие вопросы C/C++ 4 08.01.2014 23:40
Вычисление синуса (надо подправить интервалы) PPPPPP Помощь студентам 2 16.04.2010 17:45
Вычисление арктангенса через ряд Тейлора. С++. chibbis Помощь студентам 1 23.12.2009 11:48
Вычисление функции разложением ее в ряд 5nizza77 Паскаль, Turbo Pascal, PascalABC.NET 1 15.10.2009 10:55
Вычисление функции с помощью разложения в ряд LaraKiller Общие вопросы C/C++ 2 11.10.2009 20:05