Программа
'Вычисление интеграла методом трапеций
'с заданной точностью
DEF FNFun! (X!) = X! 'Вычисление интегрируемой функции
DEF FNIntegral! (Left!, Right!, Break%) 'Вычисление интеграла
LOCAL Sum!, LengthStep!, LeftY!, RightX!,i% 'Локализация переменных
Sum! = 0 'Обнуление промежуточной суммы
LengthStep! = (Right! - Left!) / Break%
'Вычисление длины шага интегрирования
LeftY! = FNFun!(Left!) 'Вычисление значения функции на левой границе
RightX! = Left! + LengthStep! 'Вычисление правой границы левого интервала
FOR i% = 1 TO Break% 'Цикл набора промежуточной суммы
RightY! = FNFun!(RightX!) 'Вычисление значения функции на правой границе
Sum! = Sum! + (LeftY! + RightY!) / 2 'Набор промежуточной суммы
LeftY! = RightY!
'Сохранение значения функции на правой границе для последующей итерации
RightX! = RightX! + LengthStep!
'Вычисление правой границы следующего участка
NEXT i%
FNIntegral! = Sum! * LengthStep! 'Определение интегральной суммы
END DEF
DEF FNExactIntegral! (Left!, Right!, Eps!)
' Функция вычисления интеграла с заданной точностью
LOCAL Break%, Integral!, PredInt! 'Локализация переменных
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!, 0.01) 'Вычисление и вывод результата
END
Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию