1: #include<stdio.h>
2: #include<math.h>
3: float factorial(int);
4: void main()
5: {
6: float ax[10],y[10];
7: float dy[10][10],u,h,x,a,sum=0,l,olda=1;
8: int i,j,k,n,mid=0;
9: printf("\n\t\tGauss Forward Difference Formula");
10: printf("\n=======================================================\n");
11: printf("Enter the number of terms ");
12: scanf("%d",&n);
13: printf("\n=======================================================\n");
14: printf("Enter the array ax \n");
15: for(i=0;i<n;i++)
16: {
17: printf("Enter the value of ax[%d] = ",i);
18: scanf("%f",&ax[i]);
19: }
20: printf("\n=======================================================\n");
21: for(i=0;i<n;i++)
22: {
23: printf("Enter the value of y[%d] = ",i);
24: scanf("%f",&y[i]);
25: }
26: printf("\nEnter the interpolation point ");
27: scanf("%f",&x);
28: h=ax[1]-ax[0];
29: for(i=0;i<n;i++)
30: {
31: for(j=0;j<=n;j++)
32: dy[i][j]=-1;
33: }
34: for(i=0;i<n;i++)
35: {
36: dy[i][0]=y[i];
37: }
38: k=1;
39: j=1;
40: while(j<n)
41: {
42: i=1;
43: while(i<=n-k)
44: {
45: dy[i-1][j]=dy[i][j-1]-dy[i-1][j-1];
46: i++;
47: }
48: j++;
49: k++;
50: }
51: i=0;
52: printf("\n================================================================================\n");
53: printf("\ty");
54: for(i=1;i<n;i++)
55: printf("\td^%dy",i);
56: printf("\n");
57: for(i=0;i<n;i++)
58: {
59: for(j=0;j<=n;j++)
60: {
61: if(dy[i][j]==-1.0)
62: printf("\t_");
63: else
64: printf("\t%-4.4f",dy[i][j]);
65: }
66: printf("\n");
67: }
68: i=0;
69: do{
70: i++;
71: }while(ax[i]<x);
72: i--;
73: mid=i;
74: u=(x-ax[mid])/h;
75: sum=sum+y[mid]+(u*dy[mid][1]);
76: a=u;
77: for(i=2;i<n;i++)
78: {
79: a=u;
80: if(i%2==1)
81: {
82: sum=sum + ((olda/factorial(i))*dy[mid][i]);
83: }
84: else
85: {
86: for(l=1;l<=i/2;l++)
87: {
88: a=a*(u-l);
89: }
90: if(i>=3)
91: a=a*(u+1);
92: mid-=1;
93: sum=sum + ((a/factorial(i))*dy[mid][i]);
94: olda=a;
95: }
96: }
97: printf("\nValue at %f is %f ",x,sum);
98: getchar();
99: }
100: float factorial(int x)
101: {
102: int i,j=1;
103: for(i=1;i<=x;i++)
104: j=j*i;
105: return j;
106: }
Tuesday, 11 October 2011
Gauss Central Difference Formula(Forward)
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment