Показать сообщение отдельно
Старый 25.10.2016, 15:39   #1 (permalink)
iks2
Member
 
Регистрация: 22.10.2016
Сообщений: 62
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Вычислить одно значение функции

Задача
Функция очень длинная, поэтому я дам ее описание и нужно будет вычислить значение этой функции при x = 1. Вид функции похож на эту cos(sin(sin(cos( ... sin(1)...)))). А теперь точное ее описание. Берутся натуральные числа от 1 до 370 и записываются подряд в одно число 123456789101112 ... 370. Это число просматривается слева направо, а сама функция записывается справа налево.
Итак, первая цифра нечетная (нечетной цифре соответствует sin, а четной - cos), то наша функция будет выглядеть так ............cos(sin(cos(sin(x)))). В общем надо ее вычислить при x = 1.

программа сосчитала и получила число 0,8194045

Вопросы.
1. Всё бы хорошо, но это число ничего не значит, пока не будет вычислена погрешность. Как?
2. Вообще для вычисления погрешности применяют производную. Но в данном случае производную устанешь считать. Может кто знает?....

Код:
REM
REM   0.8194045
REM

DECLARE FUNCTION M! (n!)

CLS
DIM SHARED s AS STRING

FOR i = 1 TO 370
   s = s + LTRIM$(STR$(i))
NEXT

x = 1

FOR i = 1 TO LEN(s)
   IF M(i) MOD 2 THEN
      x = SIN(x)
   ELSE
      x = COS(x)
   END IF
NEXT
PRINT "X ="; x
END

FUNCTION M (n)
   M = VAL(MID$(s, n, 1))
END FUNCTION
iks2 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070