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