Вычислить интеграл методом средних прямоугольников - C (СИ)

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

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

Вычислить интеграл методом средних прямоугольников. Для этого составить функцию, реализующую вычислительный метод. Подинтегральную функцию передать в качестве параметра (указатель на функцию). Предусмотреть использование одного параметра по умолчанию. Интеграл вычислить: с умалчиваемым значением параметра; с другим значением этого параметра; по формуле Ньютона-Лейбница.

Решение задачи: «Вычислить интеграл методом средних прямоугольников»

textual
Листинг программы
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <graphics.h>
#include <math.h>
 
 
double trap (double (*func) (double), double a, double b, double n=2000)
{
  double i=func(a)+func(b)/2, h=(b-a)/n, x;
  for (x=a; n>1; n--) i+=func(x+=h);
  return h*i;
  }
double func (double x)
{
  return (x*sinh(x));
  }
double pervoobraznaya (double x)
{
  return (x*cosh(x)-sinh(x));
  }
double N_L (double (*pervoobraznaya) (double), double a, double b)
{
  double rezultat;
  rezultat=pervoobraznaya(b)-pervoobraznaya(a);
  return(rezultat);
  }
void main()
{
  clrscr ();
  char abort=0;
  while (!abort)
  {
    double a=0, b=2,n;
    double i=trap (func, a, b);
    textcolor (YELLOW);
    cputs ("Vi4islit' integral ot (x*sh(x)) v predelah ot 0 do 2 metodom srednih pryamougol'nikov. Dlya etogo sostavit' funkciyu, realizuyushuyu metod. Podintegral'nuyu funkciyu peredat' v ka4estve parametra (ukazatel' na funkciyu. Predusmotret' ispol'zovanie odnogo parametra po umol4aniyu. Integral vy4eslit':\n ");
    textcolor (GREEN);
    cputs ("\r\n1. S umal4ivaemym zna4eniem parametra");
    cputs ("\r\n2. S drugim zna4eniem etogo parametra");
    cputs ("\r\n3. Po formule Newtona-Leybnica");
    cout<<"\n\nZna4enie integrala po metodu srednih pryamougolnikov v predelah ot 0 do 2 = "<<i<<"\n";
    double K=N_L (pervoobraznaya,a,b);
    cout<<"Zna4enie integrala po formule Newtona-Leybnica v predelah ot 0 do 2 = "<<K<<"\n\n";
    cout<<"Vvedite 4islo n = ";
    cin >> n;
    i=trap(func, a, b, n);
    cout<<"Zna4enie integrala po formule srednih pryamougolnikov s drugim zna4eniem parametra="<<i<<"\n";
    char ch;
    cputs ("\n\n\nDlya povtornogo ras4eta nazhmite Enter, dlya vihoda iz programmi nazhmite Esc ");
    do
    {
      ch=getch();
      }
    while (ch !=13&& ch !=27);
    if(ch !=13) abort=1;
    clrscr();}
 
}

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

  1. В функции trap вычисляется интеграл методом средних прямоугольников.
  2. В функции func задаётся функция, которую необходимо интегрировать.
  3. В функции pervoobraznaya вычисляется первая производная функции func.
  4. В функции N_L вычисляется интеграл функции pervoobraznaya от a до b.
  5. В функции main происходит взаимодействие с пользователем.
  6. Переменные a и b задают пределы интегрирования.
  7. Переменная n используется для вычисления интеграла методом средних прямоугольников с другим шагом.
  8. В цикле while происходит повторение вычислений до тех пор, пока пользователь не введет команду для выхода из программы.
  9. Команда break используется для выхода из цикла при нажатии клавиши Esc.
  10. Команда continue используется для пропуска вычислений при нажатии клавиши Enter.
  11. Ввод числа n осуществляется с помощью функции getch.
  12. Значение переменной abort используется для контроля выхода из программы.
  13. Функция clrscr очищает экран.
  14. Функция cputs выводит текст на экран.
  15. Функция textcolor меняет цвет текста на экране.
  16. Функция cout выводит текст на экран.
  17. Функция cin считывает число с экрана.
  18. Функция getch считывает нажатую клавишу.
  19. Функция pow используется для возведения в степень.
  20. Функция sinh используется для вычисления гиперболического синуса.
  21. Функция cosh используется для вычисления гиперболического косинуса.

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


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

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

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