Вычислить интеграл методом средних прямоугольников - 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();}
- }
Объяснение кода листинга программы
- В функции trap вычисляется интеграл методом средних прямоугольников.
- В функции func задаётся функция, которую необходимо интегрировать.
- В функции pervoobraznaya вычисляется первая производная функции func.
- В функции N_L вычисляется интеграл функции pervoobraznaya от a до b.
- В функции main происходит взаимодействие с пользователем.
- Переменные a и b задают пределы интегрирования.
- Переменная n используется для вычисления интеграла методом средних прямоугольников с другим шагом.
- В цикле while происходит повторение вычислений до тех пор, пока пользователь не введет команду для выхода из программы.
- Команда break используется для выхода из цикла при нажатии клавиши Esc.
- Команда continue используется для пропуска вычислений при нажатии клавиши Enter.
- Ввод числа n осуществляется с помощью функции getch.
- Значение переменной abort используется для контроля выхода из программы.
- Функция clrscr очищает экран.
- Функция cputs выводит текст на экран.
- Функция textcolor меняет цвет текста на экране.
- Функция cout выводит текст на экран.
- Функция cin считывает число с экрана.
- Функция getch считывает нажатую клавишу.
- Функция pow используется для возведения в степень.
- Функция sinh используется для вычисления гиперболического синуса.
- Функция cosh используется для вычисления гиперболического косинуса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д