Используя метод Симпсона, составить программу вычисления определенного интеграла на отрезке - C (СИ)
Формулировка задачи:
Используя метод СИмпсона, составить программу вычисления определенного интеграла на отрезке [a,b]
Интеграл от П\4 до П\2, под знаком интеграла pow(sin(x),2)*dx
Решение задачи: «Используя метод Симпсона, составить программу вычисления определенного интеграла на отрезке»
textual
Листинг программы
- #include <stdio.h>
- #include <math.h>
- #include <conio.h>
- double ffunc(double x)
- {
- double pop;
- pop=1/sqrt(x);
- return pop;
- }
- double integral(double (*f)(double), double a, double b)
- {
- int n=10;
- int i;
- double h=(b-a)/n;
- double s,x=a;
- double pop2;
- s=f(a)+f(b);
- for (i = 1; x < b ; i++) {
- x=x+2*h;
- s+=f(x)*2;
- }
- x=a-h;
- for (i = 1; x < b; i++) {
- x=x+2*h;
- s+=f(x)*4;
- }
- pop2=s*h/3;
- return pop2;
- }
- void main()
- {
- double pi=3.141592653589, b,a;
- a=pi/4;
- b=pi/2;
- printf("\n integral = %le",integral(ffunc,a,b));
- scanf("%f",a);
- }
Объяснение кода листинга программы
- Объявлены функции
ffunc
иintegral
. - В функции
ffunc
вычисляется значение функцииf(x)
=1/sqrt(x)
. - В функции
integral
задается количество подмотокn=10
, а также значенияa
иb
, ограничивающие интервал интегрирования. - Вычисляется шаг
h
какh=(b-a)/n
. - Инициализируется переменная
s
как суммаf(a)
иf(b)
. - В цикле выполняется интегрирование методом Симпсона, где каждая итерация добавляет в
s
значенияf(x)
умноженные на 2 или 4 в зависимости от того, находится ли x в интервале [a,b]. - Вычисляется значение
pop2
какs*h/3
. - В функции
main
задаются значенияa
иb
для интеграции. - Вычисляется и выводится результат интеграции
integral(ffunc,a,b)
. - Пользователю предлагается ввести новое значение для
a
, но ввод не происходит, так как функцияscanf
ожидает ввода в переменнуюa
, которая уже содержит значение после выполнения программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д