Смекни!
smekni.com

Програмування рекурентні послідовності та співвідношення (стр. 2 из 2)

доданка використовується його номер, то цей номер треба попередньо збільшити. Тепер алгоритм очевидний:

S:=0; A:=x; I:=1;

while A>d do

begin

S:=S+A; I:=I+1;

A:=A*(-x*x)/((2*I-2)*(2*I-1));

end

{A<=d, і воно не додано до S; значення S – шукане}

Оформлення цього алгоритму у вигляді функції з параметром x і розумно підібраним значенням d залишається

вправою.?

Задачі

4.4.* Написати функцію обчислення кількості десяткових цифр натурального числа.

4.5.* Один із варіантів алгоритму Евкліда обчислення найбільшого спільного дільника чисел a і b (НСД(a,b)) грунтується на

обчисленні рекурентної послідовності {p}, де p1=max{a,b}, p2=min{a,b}, pn=pn-2 mod pn-1 при n>2. Шуканим є останнє ненульове

значення послідовності. Уточнити алгоритм Евкліда у вигляді функції.

4.6. Послідовність {xn}, задана співвідношеннями

x1=(a+m-1)/2,

xi=( (m-1)xi-1 + a/x)/m при i > 1,

сходиться до a1/m. Запрограмувати обчислення a1/m при довільному додатному дійсному a з точністю e , тобто за потрібне число

приймається перше xn таке, що | xn-xn-1 |<e .

4.7. Послідовність сум {sn}, де sn=1+x+x2/2!+…+xn/n!, за умови 0? x<1 "достатньо швидко" сходиться до ex. Запрограмувати

обчислення ex при x? [0;1) із точністю e , тобто за потрібне число приймається перше sn таке, що | sn-sn-1 |<e .

Запрограмувати обчислення ex при довільному x, застосовуючи "формули зведення" – рівності ex=e[x]e{x}, ex=1/e-x, де [x] і {x}

позначають цілу й дробову частини x. Обчислити e[x] шляхом множення сталої e=2.7182818 на себе [x] разів.

4.8. Послідовність сум {sn}, де sn=1-x2/2!+…+(-1)nx2n/(2n)!, за умови |x|? p /4 "достатньо швидко" сходиться до cos(x).

Запрограмувати обчислення cos(x) при x? [-p /4; p /4] з точністю e , тобто за потрібне число приймається перше sn таке, що |

sn-sn-1 |<e .

Запрограмувати обчислення cos(x) при довільному x, застосовуючи тригонометричні формули зведення.