![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Столкнулся с проблемой, нужно расчитать sin и cos вручную.
Цитата:
Код:
Последний раз редактировалось Kostia; 04.10.2008 в 18:09. |
|
![]() |
![]() |
![]() |
#2 |
Владимир М.
Участник клуба
Регистрация: 30.10.2006
Сообщений: 1,289
|
![]()
ну, и в чем вопрос?
Берегите друг друга!
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
Вопрос в том, что считает не правильно. Вроде все по формулам делаю.
--------- Проблема решена! Все заключалось в том, что угол должен быть на промежутке от -pi до pi, отсюда следует следующее: Код:
Последний раз редактировалось Kostia; 04.10.2008 в 20:26. |
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]() Цитата:
Если Вам надо подсчитать cosx в какой-то точке с определенной точностью (о которой у Вас кстати ни слова), то причем тут while x>=pi do x:=x-pi*2; ? |
|
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,542
|
![]()
замкчание по оптимизации вычислений
c:=power(x,i*2)/factorial(i*2) две достаточно сложные функции легко заменить на переменную и два умножения r1:=r1*(x*x)/(i)*(i+1); c:=c+r1;
программа — запись алгоритма на языке понятном транслятору
|
![]() |
![]() |
![]() |
#6 | |
Участник клуба
Регистрация: 21.11.2007
Сообщений: 1,692
|
![]()
То что функция определена на всей числовой прямой, это я знаю, но если убрать это
Цитата:
|
|
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 02.09.2007
Сообщений: 1,193
|
![]()
Если сравнить слагаемые ряда, то синус можно вычислить так:
u[1]:=x; //первое слагаемое u[k+1]:=-x*x*u[k]/(2*k)/(2*k+1); //все последующие слагаемые sin(x):=u[1]+u[2]+u[3]+....... расчёт заканчиваем, когда abs(u[k+1])<=epsilon; аналогично для косинуса: u[1]:=1; //первое слагаемое u[k+1]:=-x*x*u[k]/(2*k)/(2*k-1); //все последующие слагаемые cos(x):=u[1]+u[2]+u[3]+....... расчёт заканчиваем, когда abs(u[k+1])<=epsilon; Код:
Последний раз редактировалось _Dmitry; 05.10.2008 в 10:15. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
log(abs(cos(x))) | DeFace | Общие вопросы C/C++ | 3 | 28.09.2008 17:32 |
Есть ли функция для cos параметр которого не радианы, а градусы? | Gromsky | Помощь студентам | 6 | 14.03.2008 16:26 |
Ряд Тейлора . Паскаль | Zond235 | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 30.01.2008 01:42 |
Процедура, вычисляющая Y=a*cos(G) и X=a*sin(G) | Vishez | Помощь студентам | 4 | 25.04.2007 17:41 |