Вычислить интеграл методом средних прямоугольников - 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 используется для вычисления гиперболического косинуса.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д