М
Молодежь
К
Компьютеры-и-электроника
Д
Дом-и-сад
С
Стиль-и-уход-за-собой
П
Праздники-и-традиции
Т
Транспорт
П
Путешествия
С
Семейная-жизнь
Ф
Философия-и-религия
Б
Без категории
М
Мир-работы
Х
Хобби-и-рукоделие
И
Искусство-и-развлечения
В
Взаимоотношения
З
Здоровье
К
Кулинария-и-гостеприимство
Ф
Финансы-и-бизнес
П
Питомцы-и-животные
О
Образование
О
Образование-и-коммуникации
thesketchyoup081qt
thesketchyoup081qt
19.07.2021 08:06 •  Информатика

Построить и записать алгоритм вычисления cos(x) для действительного числа x с точностью ε с использованием рекурсии

👇
Ответ:
Faskarvdbdbc
Faskarvdbdbc
19.07.2021
Cos(2x) = 2 cos(x) cos(x) - 1
cos(x) = 1 - x^2/2 + x^4/24 - x^6/720 + ...
1 - cos(2x) = 2 sin(x) sin(x)
sin(x) < 2 x / Pi

| 1 - cos(2x) | < 2 (2x/Pi)^2 = 8 x^2 / Pi^2
Если x^2 < Pi^2 eps / 8, то |1-cos(2x)|<eps

Предложение: делаем рекурсивный спуск по формуле cos(x)=2cos(x/2)^2 - 1, пока x > Pi sqrt(eps)/2, затем возвращаем 1-x^2/2. Оценка x < Pi sqrt(eps)/2 делалась для неравенства |1 - cos(x)| < eps, но возвращаем не просто 1, а 1-x^2/2 — до квадратичного члена, то есть с большей точностью. Кстати, Pi/2 < 2.
Код JavaScript
function cos1(x, eps)
{   if(Math.abs(x) < 2*Math.sqrt(eps)) return (1-x*x/2);  
var c = cos1(x/2, eps);  
return (2*c*c - 1);
} cos(0.5, 0.001);

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

P.S. Оценка рядом Маклорена-Тейлора при малых аргументах предпочтительнее: сходится быстрее.


другой вариант
Можно посчитать по ряду Тейлора, стандартно превратив итерацию в хвостовую рекурсию. Для этого используется вс функция, которой в качестве дополнительных (по сравнению с изначальной функцией) аргументов передаются все величины, которые хочется помнить (в данном случае номер члена i, очередной член a и вычисленную сумму s).

Код Haskell
cos' eps x = helper 1 1 0  
  where helper i a s          
   | abs a < eps   = s        
     | otherwise     = helper (i + 2) newa (s + a)              
   where newa = - a * x^2 / (i * (i + 1))

ряд Тейлора в данном случае удовлетворяет признаку Лейбница (ну, с оговорками), поэтому можно останавливаться, когда очередной член стал меньше эпсилона.
Код JavaScript
<script type="text/javascript"> function Cosine(x,eps)
{     function CosTaylor(x,n,an)  
  {         var an1 = (-1)*an*x*x/(2*n*(2*n-1));        
  if (Math.abs(an1) < eps) return an + an1;        
else          
  { return an + CosTaylor(x,n+1,an1); }  
  }      
return CosTaylor(x,1,1); }
</script>   <button onclick="alert( Cosine(0.75,0.001) )">Пример для x=0.75 и eps=0.001</button>
4,5(53 оценок)
Открыть все ответы
Ответ:
aaaaanastya92
aaaaanastya92
19.07.2021

ұғыр - ашасына ағашты қысып қойып, кесіп - жонуға арналған;

қуыс балта - шанағы тұтас ойып жасалатын аспаптардың ағашын оя шабуға арналған;

сына - музыкалық аспаптардың желімделген бөліктерін қысып тұруға қолданлады;

шот - аспаптардың нәзік бөлшектерін дайындауға, ұңғуға, шауып жұқартуға қолданылады;

атауыз ( қысқы ) - саз аспаптарына қажетті ағаштарды сүргілеуге, жонуға, кесуге арналған құрал;

аталғы - екі жағында сабы бар, ағашты жонуға, қабығын аршуға арналған пышақ тәрізді құрал. Оның сырнауық аталатын тісті түрі аспаптарға өрнек салуға қолданылады;

Объяснение:

4,5(48 оценок)
Ответ:
nastya2742
nastya2742
19.07.2021

ЭЕМ программалары екі топқа бөлінеді, олар:

1)  жүйелі программалық жасақ;

2)  қолданбалы (кәделі) программалық жасақ.

Жүйелі программалар ЭЕМ-нің аппараттық жабдықтар жұмысын басқарып, жүмыс істеп отырған а программалармен байланыстырады.

Жүйелі программалық жасақты бірнеше топқа жіктеуге болады:

1)  операциялық жүйелер;

2)  утилиттер;

3)  сервистік программалар.

Операциялық жүйелер - компьютерді басқаруға арналған және қолданбалы программалармен байланысы бар нақты программа. Дербес компьютерлер үшін кең тараган оиерациялық жүйелерге

МЗ (РС) DOS, Windows 95, Windows NT,OS/2, UNIX жатады,

Дербес компьютерлерлерге арналған операциялық жүйелердің барлығы да тек бір адамдық болып табылады. Расында да екі адамның бір мезетге бір компьютерде жұмыс істеуін елестету қиын ғой .

 

WINDOWS 95, WINDOWS NT, OS/2, UNIX көп мақсатты жүйелер болып саналады. Көп мақсаттылық — бір компьютерде бір уақытта қатарласа бірнеше есепті шығару мүмкіндігі немесе бірнеше әрекеттің қатар атқарылып жатуы. Мысалы, Сіз мәтін көшіріліп жатқан шақта ойнап та отыруыңызға боладь, өйткені бұл жұмыстарды әртүрлі қүрылғылар атқарады немесе ол қүрылғылардың жұмыс жылдамдығы адамның жылдамдығынан өте жоғары болып келеді.

Объяснение:

4,6(87 оценок)
Это интересно:
Новые ответы от MOGZ: Информатика
logo
Вход Регистрация
Что ты хочешь узнать?
Спроси Mozg
Открыть лучший ответ