Программа
'Вычисление интеграла методом Симпсона
'с заданной точностью
DEF FNFun! (X!) = X! * X! 'Вычисление интегрируемой функции
DEF FnIntegral! (Left!, Right!, Break%) 'Вычисление интеграла
LengthStep! = (Right! - Left!) / Break% / 2
'Вычисление длины шага интегрирования
X! = Left! + LengthStep! 'Начальное определение промежуточной абсциссы
Sum1! = 0 'Обнуление промежуточной суммы 1
Sum2! = FNFun!(X!) 'Начальное определение промежуточной суммы 2
FOR i% = 2 TO Break% 'Цикл набора промежуточных сумм
X! = X! + LengthStep! 'Переопределение абсциссы
Sum1! = Sum1! + FNFun!(X!) 'Набор промежуточной суммы 1
X! = X! + LengthStep! 'Переопределение абсциссы
Sum2! = Sum2! + FNFun!(X!) 'Набор промежуточной суммы 2
NEXT i%
FnIntegral! = LengthStep! / 3 * (FNFun!(Left!) + FNFun!(Right!) + 2 * Sum1! + 4 * Sum2!)
'Определение значения интеграла
END DEF
DEF FNExactIntegral! (Left!, Right!, Eps!)
' Функция вычисления интеграла с заданной точностью
Break% = 1 ' Оперделение начального разбиения
Integral! = FnIntegral!(Left!, Right!, Break%)
' Предварительное вычисление интеграла
DO
PredInt! = Integral! ' Сохранение предыдущего значения интеграла
Break% = Break% * 2 ' Увеличение разбиения
Integral! = FnIntegral!(Left!, Right!, Break%)
' Вычисление нового значения интеграла
LOOP UNTIL ABS(Integral - PredInt) <= Eps!
' Выход из цикла при достижении заданной точности
FNExactIntegral! = Integral! ' Определение значения функции
END DEF
'----------------------------------------------------------------------------
'Ввод данных:
INPUT "Введите левую границу интервала интегрирования ", Left!
INPUT "Введите правую границу интервала интегрирования ", Right!
PRINT "="; FNExactIntegral!(Left!, Right!, .01) 'Вычисление и вывод результата
END
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию