|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
18.04.2010, 17:39 | #1 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 22
|
Программа про синус (на Си). Где закралась ошибка!?
Друзья, помогите пожалуйста! Вторую неделю бьюсь!
У меня есть программа, считающая синус какого-либо числа. Для относительно небольших чисел (например 1,2,3...10...20) она делает это правильно (в рамках заданной точности), однако для больших чисел (40 ... 50 ... 100) она начинает выводить какую-то несуразицу, а я не могу понять, где в коде закралась эта ошибка! Помогите пожалуйста исправить! Код:
Последний раз редактировалось PPPPPP; 18.04.2010 в 17:42. |
18.04.2010, 19:55 | #2 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 22
|
Помогите! Очень надо!!
|
18.04.2010, 20:05 | #3 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Ошибка не в коде — а в надежде! На то, что разрядность чисел бесконечна.
Это же естественно, что в ряду Тейлора (Маклорена) погрешность растёт. Лавинообразно! В случае с синусом вы попадаете, на каком-то шаге, даже не в ту четверть.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
18.04.2010, 20:12 | #4 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
У Вас при x > 40 и при k в районе 40 возникает ситуация, когда числитель какое-то время превышает знаменатель на 18 порядков (с дальнейшим ростом x - ещё больше). Это больше разрядности мантиссы числа double. После деления на бумаге получается член ряда, а в ЦВМ - число без единой верной цифры. Пользуясь тем, что синус - периодическая ф-я, загоните аргумент перед началом вычисления ряда в интервал [0, 2*Pi] (или [-Pi, Pi]), и всё станет на свои места.
|
18.04.2010, 20:57 | #5 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 22
|
А Вы не могли бы помочь мне это записать!? У меня не получается ((
|
18.04.2010, 21:13 | #6 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Код:
|
18.04.2010, 21:45 | #7 |
Пользователь
Регистрация: 28.02.2010
Сообщений: 22
|
не могу вставить...
не считает.. не могли бы Вы прикрутить этот код к моей программе!? Заранее спасибо! |
18.04.2010, 21:58 | #8 |
Форумчанин
Регистрация: 15.01.2010
Сообщений: 948
|
Код:
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Программа на Си.Подскажите где ошибка | champion92 | Общие вопросы C/C++ | 1 | 08.12.2009 20:03 |
Программа с использованием STL. Где ошибка?! | Jarik | Общие вопросы C/C++ | 1 | 04.03.2009 10:32 |
Где прочитать про WinApi? | jurij | Win Api | 1 | 27.05.2008 13:32 |
что делает эта программа и где ошибка? | дангер | Паскаль, Turbo Pascal, PascalABC.NET | 27 | 28.01.2008 13:38 |