Вычислить интеграл - C (СИ) (158140)
Формулировка задачи:
интеграл от а до b f(x)d(x)=b-a:n[0.5f(0)+f(1)+f(2)+f(n-1)+0.5f(n)]
где f(n)=f(x c индексом n)
Проверьте пожалуйста, где я ошиблась? Примерно такое решение:
Листинг программы
- #include<stdio.h>
- #include<math.h>
- float f(float x);
- float f(float x){ return x*x; };
- main()
- {
- int i,n,It,maxIt;
- float a,b,eps,S,S1;
- printf(”\nВведитеa,b,eps,maxIt\n”);
- scanf(”%f %f %f %d”, &a,&b,&eps,&maxIt);
- printf(”\na=%f, b=%f, eps=%f, mIt=%d”,a,b,eps,maxIt);
- n=1; It=0;
- S=(b-a)*f(b);
- do
- {
- S1=S;
- n*=2; It++;
- h=(b-a)/n;
- x=a;
- S=0;
- for(i=0;i<n;i++)
- {
- x+=h;
- S+=f(x);
- if (i=o) или? (i=n) go to next S+=-0.5f(x);
- }
- S*=h;
- } while(fabs(S-S1)>eps && It<=maxIt);
- if (It>maxIt) printf(”\nРешение не найдено за %d итераций”,maxIt);
- else printf(”\nРешение: %f, итераций: %d”,S,It);
- }
Решение задачи: «Вычислить интеграл»
textual
Листинг программы
- S = 0.5*(f(a) + f(b));
- for( i = 1; i < n; i++ )
- {
- x += h;
- S += f(x);
- }
Объяснение кода листинга программы
- В начале вычисляется значение S, которое представляет собой сумму функций f(a) и f(b).
- Затем происходит итерация по переменной i от 1 до n-1.
- На каждой итерации значение переменной x увеличивается на h.
- Значение переменной S увеличивается на f(x).
- Значения переменных a, b и h не указаны в коде.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д