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