Опитвам се да създам c програма за интегриране на sin(x)/sqrt(x) между 0 и Infinity. Използвам правилото на трапеца, като отрязвам крайните точки, тъй като функцията клони към безкрайност.
Общата върната сума обаче е твърде висока и не знам защо. Ето кода:
#include<math.h>
#include<stdio.h>
double func(double u)
{ double a;
a = ((sin(u))/(sqrt(u)));
return a;}
void main()
{
int i, N;
double sum, u, a, b, h, Fa, Fb, F;
printf("Enter value of N\n");
scanf("%d" ,&N);
a=0.01;
b=1000;
h=(b-a)/(N-1);
sum=0;
F=func(a);
u=a;
for(i=0; i<N; i++)
{
sum=sum+F;
u=u+h;
F=fabs(func(u));
}
Fa=func(a);
Fb=func(b);
sum=sum-(0.5*Fa)-(0.5*Fb);
sum=sum*h;
printf("I: %lf\n", sum);
}
някакви мисли?
scanf()
, така че може да се случи вашият код да извиква недефинирано поведение. - person Iharob Al Asimi   schedule 17.03.2015