Главная страница Случайная страница КАТЕГОРИИ: АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Интегрирование аналитических функций ⇐ ПредыдущаяСтр 3 из 3
Если функция задана аналитически, то точнее работает метод Гаусса. Метод основан на том, что точность вычислений достигается за счёт выбора узлов интегрирования, т.е. на каждом интервале длиною , задаются и соответствующие веса . Сам интеграл на интервале равен: . Существуют таблицы для значений узлов и весов при различного числа точек внутри интервала. В занятии 3 приводятся примеры программ интегрирования методом Гаусса аналитической функции по 2 и 6 узлам. Два узла на интервале интегрировании 1 REM ---------------------- IntGauss 2 points --------- 5 DEF FNA (x) = SQR(2 * x + 1) 10 DIM x(6), Y(6), C(10): CLS 20 x(1) = 1 / SQR(3): x(2) = -x(1) 40 C(1) = 1: C(2) = C(1) REM******************************************* 60 INPUT " N =", N 61 IF N = 0 THEN 200 62 A = 0: B = 1 70 GOSUB 100 80 PRINT " S ="; S 81 PRINT " Toch = 1.398717" 90 GOTO 40 100 H = (B - A) / N: A1 = A: B1 = A + H: S = 0 110 FOR I = 1 TO N 120 R = (A1 + B1) / 2: Q = (B1 - A1) / 2: S1 = 0 130 FOR J = 1 TO 2: S1 = S1 + C(J) * FNA(R + Q * x(J)): NEXT J 160 S = S + S1: A1 = B1: B1 = A1 + H: NEXT I 170 S = S * Q 190 RETURN 200 END
Шесть узлов на отрезке интегрирования:
1 REM *********** IntGauss 6 points ********** 5 DEF FNA (x) = SQR(2 * x + 1) 10 DIM x(6), Y(6), C(10): CLS 20 x(1) =.932469: x(2) =.661209: x(3) =.238619 30 x(4) = -x(1): x(5) = -x(2): x(6) = -x(3) 40 C(1) =.171324: C(2) =.360762: C(3) =.467914 50 C(4) = C(1): C(5) = C(2): C(6) = C(3) 51 REM******************************************* 60 INPUT " N =", N 61 IF N < = 0 THEN 200 62 A = 0: B = 1 70 GOSUB 100 80 PRINT " S ="; S 81 PRINT " toch = 1.398717" 90 GOTO 40 100 H = (B - A) / N: A1 = A: B1 = A + H: S = 0 110 FOR I = 1 TO N 120 R = (A1 + B1) / 2: Q = (B1 - A1) / 2: S1 = 0 130 FOR J = 1 TO 6: S1 = S1 + C(J) * FNA(R + Q * x(J)): NEXT J 160 S = S + S1: A1 = B1: B1 = A1 + H: NEXT I 170 S = S * Q 190 RETURN 200 END
|