Вычисление площади криволинейной трапеции - C (СИ)

Узнай цену своей работы

Формулировка задачи:

составить программу и выполнить 2 эксперименты для вычисления площади криволинейной трапеции, верхняя сторона которой является кривой линией f(х) по формуле: f = (x*x*x*x) - 5 / 3 * x + 1.2 * sin(2 * x) + 0.6 * cos(x) Математическая модель задачи: рассмотрите функцию f(х) на интервале [а, b] или подправьте функцию, чтобы она не изменяла на нем знак. Разбейте этот интервал на десять одинаковых частей длиной h = (b-a) / 10. Проведите перпендикуляры в этих точках до пересечения с кривой (их будет 11, поскольку есть два крайних). Длина перпендикуляра = значению функции f(х) в конкретной точке х. Постройте десять прямоугольников вертикальными сторонами которых являются только левые или только правые перпендикуляры (их 10), а горизонтальными - отрезки на оси ОХ длиной h. Утверждение: площадь криволинейной трапеции приближенно = сумме площадей построенных прямоугольников. Метод решения и описание алгоритма. Рассмотрите на оси ОХ последовательность точек: a, a + h, a +2h, ..., a +9h. Найдите значение функции в этих точках: f(a), f(a + h), ..., f a +9h). Площадь S десяти левых прямоугольников вычисляют так: S = f(a)h + f(a + h)h + f(a +2h)h + ... + F(a +9h)h. По утверждению это значение принимают за значение площади фигуры с некоторой погрешностью, которой пренебрегают. Повторить вычисления, разбив отрезок [а; b] на 20 частей. Какое значение площади, по вашему мнению, будет более точным? Составить программу так, чтобы число разбиений (пусть n) можно было делать произвольным. Приняв второе значение площади за точное, вычислить относительную погрешность первого эксперимента. Заранее спасибо)

Решение задачи: «Вычисление площади криволинейной трапеции»

textual
Листинг программы
uses crt;
var n, i :integer;
a, b, s, h, x, er, r, poh, e : real;
 
begin
     write('Vvedite a: ');
     read(a);
     write('Vvedite b: ');
     read(b);
     write('Vvedite n: ');
     read(n);
     e:=1E-03;
     repeat
 
     h := (b - a) / n; s := 0; x := a;
     for i:=1 to n do begin
          s := s + ((sqr(x)*sqr(x) - 5 / 3 * x+1.2*sin(2*x)+0.6*cos(x)));
          x := x + h;
     end;
     s := s * h;
     r:=0;
     er:=abs(s-r);
     until er >= e;
 
     writeln;
     write('s = ', s);
          writeln;
     writeln('PogrewnoStb: ', er);
end.

Объяснение кода листинга программы

  1. Ввод значений переменных a, b, n с помощью функции read.
  2. Инициализация переменной e с помощью константы 1E-03.
  3. Запуск цикла repeat для вычисления площади криволинейной трапеции.
  4. Внутри цикла определены переменные h и x, которые используются для вычисления значений переменной s.
  5. В цикле for i от 1 до n происходит вычисление значения переменной s с помощью формулы sqr(x)sqr(x) - 5 / 3 x+1.2sin(2x)+0.6*cos(x).
  6. После завершения цикла for i, значение переменной s умножается на значение переменной h.
  7. Затем инициализируется переменная r значением s.
  8. Вычисляется значение переменной er как абсолютное значение разности s и r.
  9. Цикл repeat выполняется до тех пор, пока значение переменной er не станет больше или равным значению переменной e.
  10. После завершения цикла repeat выводятся значения переменных s и er на экран.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.778 из 5
Похожие ответы