Программа


'Вычисление интеграла методом трапеций
'с заданной точностью
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%
                             'Вычисление длины шага интегрирования
  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%
  Integral! = Sum! * LengthStep!   'Определение интегральной суммы
END FUNCTION


Бесплатные примеры программ
Примеры написанных программ
Помощь студентам по программированию