Задание
Составить программу на языке программирования С++ и блок-схему для решения следующей задачи:
Вычислить интеграл с заданной точностью e= 0,001. Используем формулу Симпсона.
Интеграл:
n=20 - количество отрезков
Блок-схема алгоритма вычисления интеграла
листинг кода
#include "stdio.h"
#include "conio.h"
#include "math.h"
// функция для вычисления интеграла
float Integ(float z)
{
return pow(log(z),2)/z;//возвращаемое значение
}
//формула Симпсона
float S2n(int n,float a,float b)
{
int i=1;
float sum=0,h;
h=(b-a)/(2*n);
for(i=1;i<=(2*n-1);i++)
sum+=(3+pow(-1,i+1))*Integ(a+i*h);
return h/3*(Integ(a)+Integ(b)+sum);
}
// главная функция
void main()
{
float a, b, e=0.001;// объявление переменных
int n=20;
a=3.14/2;
b=3.14;
while (fabs(S2n(4*n,a,b)-S2n(2*n,a,b))>=e) // цикл
{
n*=2;
}
printf("S4n=%f",S2n(4*n,a,b)); // вывод результатов
getch();
}
результат
Похожие публикации
2015-06-29 • Просмотров [ 2177 ]