Помогите пожалуйста кто шарит в Pascal.Составить программу приближенного вычисления

Помогите пожалуйста кто шарит в Pascal.
Составить программку приближенного вычисления определенного интеграла, используя формулы численного интегрирования: Формулу левых прямоугольников.

Задать свой вопрос
1 ответ

Пусть l=x_0lt;x_1lt;\dotslt;x_n=b - какое-то разбиение отрезка [a, b]. Формулой левых прямоугольников именуется приближение

\displaystyle \int_a^b f(x)\,dx\approx\sum_i=0^n-1 f(x_i)(x_i+1-x_i)

Часто избирают равномерное разбиение, в котором все точки расположены на схожем расстоянии h = (b - a) / n, при этом x_i=a+ih.

Реализация (PascalABC.NET): функция int_lr воспринимает подинтегральную функцию, левую и правую границы отрезка интегрирования и количество отрезков в разбиения. В главной программе интеграл рассчитывается для n = 1, 2, 4, 8, ..., 1024, выводится n, результат численного интегрирования и разность между приобретенным значением и четким значением интеграла. Можно увидеть, что при увеличении n в 2 раза ошибка убавляется примерно в 2 раза.

function int_lr(f: real-gt; real; l, r: real; n: integer): real;

begin

 var h := (r - l) / n;

 var s := 0.To(n - 1).Select(i -gt; f(l + i * h)).Sum;

 result := s * h;

end;

const exact = 1250 / 3;

begin

 var n := 1;

 for var _ := 1 to 11 do

 begin

   var int := int_lr(x -gt; (x - 5) ** 2 * (10 - x), 0, 10, n);

   writeln(n:4, int:9:3, abs(int - exact):9:3);

   n := 2 * n;

 end;

end.

Вывод программки:

  1 2500.000 2083.333

  2 1250.000  833.333

  4  781.250  364.583

  8  585.938  169.271

 16  498.047   81.380

 32  456.543   39.876

 64  436.401   19.735

128  426.483    9.816

256  421.562    4.896

512  419.111    2.445

1024  417.888    1.221

, оставишь ответ?
Имя:*
E-Mail:


Добро пожаловать!

Для того чтобы стать полноценным пользователем нашего портала, вам необходимо пройти регистрацию.
Зарегистрироваться
Создайте собственную учетную запить!

Пройти регистрацию
Авторизоваться
Уже зарегистрированны? А ну-ка живо авторизуйтесь!

Войти на сайт