Currently attempting to do a numerical integration using the Trap rule.
Original integral was
cos(x)/sqrt(x)
between 0 and infinity.
With some subsitution and what not, have got it to
cos(x^2), which obviously is a fresnel integral.
My code currently looks like this, but it will only complete 1 iteration. I cannot work out why it will only complete 1 loop and give a totally wrong answer.
Thanks in advance guys!
Code:#include <stdio.h> #include <math.h> main() { int n,i; double x1,xn,h,new,old,sum,y,x,accuracyreq,accuracy; printf("Input Accuracy:"); scanf("%lf",&accuracyreq); printf("\nInput Upper Limit Value (Larger is More Accurate):"); scanf("%lf",&xn); printf("The following is the answer to the integral cos(x)/sqrt(x): "); accuracy=0; new=2; sum=0; x=x1; old=0.5; for(n=10000000;accuracy>accuracyreq;n++) { h=xn-x1/(n-1); for(i=0;x<xn;i++) { y=2*cos(pow(x,2)); if(x==x1||x==xn){ y=y/2; } sum=sum+y; x=x+h; } new=sum*h; accuracy=new/old; printf("Accuracy is %lf",accuracy); } printf("%lf\n",new); printf("%d\n",i); printf("%d\n",n); int end; scanf("%d",&end); }



LinkBack URL
About LinkBacks


