Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект бейс.doc
Скачиваний:
6
Добавлен:
12.11.2019
Размер:
1.33 Mб
Скачать

12. Обчислення суми, добутку

Обчислення кінцевої суми зводиться до знаходження суми заданої кількості доданків.

S=f(1)+f(2)+…+f(n)=Σ f(і), де і - номер додатку; f(i) -додаток з номером “і”.

Обчислення суми організовується у вигляді циклічного алгоритму, коли при кожному проходженні циклу номер додaнку “і” збільшується на одиницю, а сума змінюється на величину цього доданку, тобто:

Si=Si-1+f(i),

Де Si, Si-1 – суми доданків "i", "i-1" кроках. Відповідно цикл повторюється до тих пір поки не будуть просумовані всі n доданків.

Зауваження 1. Для того щоб початковий вміст комірки де буде накоплюватися сума не спотворило результат, сума попередньо повинна бути обнулена (S0=Ø).

Зауваження 2. Вивід результату, оскільки він є, як правило, єдиним, здійснюється після закінчення роботи циклу.

Обчислення добутку

Обчислення кінцевого добутку являє собою процес знаходження добутку заданої кількості співмножників по формулі:

P = f(1) * f(2) **f(i) = П (f(i)).

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

P = Pi-1 f(i)

Де Pi, Pi-1 - добуток співмножників i, i - 1 відповідно, причому і змінюється від 1 до n.

Зауваження 3. На відміну від сумування початкове значення добутку P0 повинно дорівнювати одиниці(P0=1).

Приклад 1. Розглянемо програму наближеного обчислення значення числа π.

Приклад 2. Скласти програму обчислення добутку

Програма рішення задачі має наступний вигляд

10 REM Приклад 2.

20 P = 1

30 FOR i=1 TO 10

40 P=P * (1 - 1/(i + 1) ^ 2)

50 NEXT I

60 PRINT "добуток P ="; P

70 END∆

13. Ітераційні цикли

В усіх вищерозглянутих програмах число поторень циклу було задано, або його легко можна обчислити за формулою: N= . Проте існують обчислювальні процеси, які вміщують цикл із невідомим наперед числом повторень. Такі цикли, які харектерезуються послідовним наближенням обчислювальних величин до шуканого значення, називається інтеграційним. Закинчення циклу в цьому випадку, за звичай здійснюється при досягненні заданої точності обчислення результату. До ітераційних циклів приводять задачі обчислення сум нескінченів рядів, рішення алгебраїчних і трансцедентних рівнянь, реалізації числових методів інтегрування і дифуренціювання, рішення систем лінійних і не лінійних рівнянь, задачі оптимізації. В ітераційних процесах результати, отримані на поточноиу кроці, використовується в якості вхідних даних для розрахунку наступонго кроку циклу. При реалізації необхідно задавати початкове значення (x0) і критерій (точність -"Е") у відповідності з яким буде закінчено обчислювальний процес.

Обчислення суми нескінченних рядів зводиться до знаходження суми

S=U(1)+U(2)+…+U(n)…= U(n). (1)

Кожний доданок якого є функцією від номера "n", який визначає місце цього доданку в сумі, а також може бути функцією одного, або декількох додаткових параметрів.

Приклад 1.

Приклад 2.

Обчислення суми ряду полягає в отримані результатів циклічного процесу послідовності s(1), s(2), …, s(n), …, які сходяться до свого граничного значення, тобто границі . Тут s(n) - сума n членів нескінченного ряду.

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

Процес обчислень визначається реконкурентним співвідношенням s(n)=s(n-1)+u(n). В загальному випадку початкове значення номера члена ряду n може бути відмінне від 1 (наприклад, рівним 0). Для знаходження початкового значення суми перепишемо формулу (1) у вигляді:

Елемент u(v) дозволяється приймати в якості початкового значення суми, а параметр n в ітераційному процесі прийматиме значення v+1, v+2,…

Загальна схема алгоритму обчислення суми членів нескінченного ряду приведена на мал. 8. Так у обчисленнях за рекурентною формулою одночасно приймають участь тільки двазначення s(n) i s(n-1), в схемі алгоритма замість цих змінних використовується змінна S (блок 3). Значення S буде змінюватися кожний раз при додаванні чергового члена суми. Справа від знаку присвоєння значення змінної відповідає попередньому значенню суми s(n-1), зліва - поточному s(n).

Переважно формула загального члена суми належить одному з наступних типів:

а) ;

б) ;

в) ;

У випадку (а) обчислення будуть найбільш ефективними, якщо кожен член суми u(n) (мал. 8)обраховується за загальною формулою.

У випадку (б) у формулу члена суми u(n) входять цілі степені і факторіали, для обрахунку u(n) доцільно використовувати реконкурентні сіввідношення, тобто виражати наступний член суми через попередній. Це дозволить істотно скоротити об'єм обрахунків. Крім того, безпосереднє обчислення суми за загальною формулою в ряді випадків, неможливе, наприклад, через наявність n! або при x<=0. Черговий член ряду u(n) можна визначити через попередній наступним чином:

u(n)=u(n-1)φ(n)

де φ(т) - перехідний коефіцієнт, який залежить від n. Наприклад для обчислення суми перехідний коефіцієнт можна визначити наступним чином:

Реконкурентне співвідношення для обчислення чергового члену має вигляд:

В якості початкового значення члену ряду обирається значення u(y) (для приведеного прикладу v=0).

Для випадку (б) схема алгоритма обчислення суми нескінченного ряду приведена на мал. 9

Зауваження. Замість параметрів u(y) і φ(n) в схемі алгоритму обчислення суми конкретного ряду необхідно записувати аналітичні залежності, по яких визначаються ці параметри.

У випадку (в) член суми доцільно представити у вигляді двох співмножників: u(n)=c(n)a(n), один з яких обчислюється по рекурентному співвідношенню, а інший безпосиредньо. Схема алгоритма для випадку (в) приведена на мал.10

Наприклад, якщо u(n) = (-1)n · , то пропускаємо, що с(n)= (-1)n і обчислюємо рекорентно.

с(n)= с(n-1) (n) , де (n)= =-1

де початкове значення параметра с рівне c(v).для даного прикладу v=1, u(v)=-cos x, c(v)=-1.Співмножник зручно обчислювати безпосередньо за формулою. Алгоритм розрахунку для цього випадку приведений на мал.9

Розглянемо конкретний приклад. Нехай необхідно обчислити суму членів ряду.

S=

З точністю до члена ряду меншого ε, для заданого х.

Загальний член суми належить до типу (б). Сума обчислюється по схемі на мал.9 Визначимо коефіцієнт переходу від попереднього до наступного члену.

Початкове значення: v=0, u(n)=1. Схема алгоритма розв’язку задачі приведена на мал.11. Програма має наступний вигляд:

10 INPUT X,E

20 S=1:U=1

30 N=1

40 U= -U*X*X/((2*N-1)*2*N)

50 S=S+U

60 N=N+1

70 IF ABS(U)>E THEN 40

80 PRINT “N=”; N, “S=”; S

90 END

S=U(υ)

N=υ +1

U=U(n),

S=S+U

N=n+1

S=U(υ)

C=C(υ)

U=Uφ(N)

S=S+1

N=n+1

N=υ +1

S=U(υ)

C=C(υ)

C=Cφ(n)

U=Cα(n)

S=S+U

N=υ +1

N=υ +1

Мал.9

Мал.8

S=1,U=1

U=-U ,

S=S+1

N=n+1

Мал.10

Мал.11