Write a C program to implement the polynomial regression algorithm
.
Algorithm:
Step 1: Start Step 2: Read n Step 3: Initialize sumx = 0, sumxsq = 0, sumy = 0, sumxy = 0, sumx3 = 0, sumx4 = 0, sumxsq = 0 Step 4: Initialize i = 0 Step 5: Repeat steps 5 to 7 until i < n Step 6: Read x, y Step 7: Sumx = sumx + x Sumxsq = sumxsq + pow(x, 2) Sumx3 = sumx3 + pow(x, 3) Sumx4 = sumx4 + pow(x, 4) Sumy = sumy + y Sumxy = Sumxy + x * y Sumxsqy = Sumxsqy + pow(x, 2) * y Step 8: Increment I by 1 Step 9: Assign a[0][0] = n a[0][1] = n a[0][2] = n a[0][3] = n a[1][0] = n a[1][1] = n a[1][2] = n a[1][3] = n a[2][0] = n a[2][1] = n a[2][2] = n a[2][3] = n Step 10: Initialize i = 0 Step 11: Repeat steps 11 to 15 until i < 3 Step 12: Initialize j = 0 Step 13: Repeat step 13 to 14 until j <= 3 Step 14: Write a[i][j] Step 15: Increment j by 1 Step 16: Increment I by 1 Step 17: Initialize k = 0 Step 18: Repeat steps 18 to 27 until k <= 2 Step 19: Initialize i = 0 Step 20: Repeat step 20 to 26 until i <= 2 Step 21: If I not equal to k Step 22: Assign u = a[i][k] / a[k][k] Step 23: Initialize j = k Step 24: Repeat steps 24 and 25 until j <= 3 Step 25: Assign a[i][j] = a[i][j] – u * a[k][j] Step 26: Increment j by 1 Step 27: Increment i by 1 Step 28: Increment k by 1 Step 29: Initialize I = 0 Step 30: Repeat steps 31 to 33 until i < 3 Step 31: Assign b[i] = a[i][3] / a[i][i] Step 32: Write I, b[i] Step 33: Increment I by 1 Step 34: Write b[2], b[i], b[0] Step 35: Stop
Flowchart:
Program:
#include<stdio.h> #include<math.h> main() { int n, I, j, k; float sumx, sumxsq, sumy, sumxy, x, y; float sumx3, sumx4, sumxsqy, a[20][20], u = 0.0, b[20]; printf(“\n Enter the n value”); scanf(“%d”, &n); sumx = 0; sumxsq = 0; sumy = 0; sumxy = 0; sumx3 = 0; sumx4 = 0; sumxsqy = 0; for(i = 0; i < n; i++) { scanf(“%f %f”, &x, &y); sumx += x; sumxsq += pow(x, 2); sumx3 += pow(x, 3); sumx4 += pow(x, 4); sumy += y; sumxy += x * y; sumxsqy += pow(x, 2) * y; } a[0][0] = n; a[0][1] = sumx; a[0][2] = sumxsq; a[0][3] = sumy; a[1][0] = sumx; a[1][1] = sumxsq; a[1][2] = sumx3; a[1][3] = sumxy; a[2][0] = sumxsq; a[2][1] = sumx3; a[2][2] = sumx4; a[2][3] = sumxsqy; for(i = 0; i < 3; i++) { for(j = 0; j <= 3; j++) printf(“%10.2f”, a[i][j]); printf(“\n”); } for(k = 0; k <= 2; k++) { for(i = 0; i <= 2; i++) { if(i != k) u = a[i][k]/a[k][k]; for(j = k; j <= 3; j++) a[i][j] = a[i][j] – u * a[k][j]; } } for(i = 0; i < 3; i++) { b[i] = a[i][3]/a[i][i]; printf(“\nx[%d] = %f”, I, b[i]); } printf(“\n”); printf(“y = %10.4fx + 10.4 fx + %10.4f”, b[2], b[i], b[0]); }
Input & Output:
Enter the n value 10 -4 21 -3 12 -2 4 -1 1 0 2 1 7 2 15 3 30 4 45 5 67 10.00 5.00 85.00 204.00 5.00 85.00 125.00 513.00 85.00 125.00 1333.00 3193.00 X[0] = 2.030303 X[1] = 2.996970 X[2] = 1.984848 Y = 1.9848xsq + 2.9979x + 2.0303
-
UpdatedOct 21, 2014
-
Views11,942
You May Like
Write a C program to find the roots of a quadratic equation
.
Write a C program to count the lines, words and characters in a given text.
Write a C program to find the sum of individual digits of a positive integer.
Write a C program, which takes two integer operands and one operator from the user, performs the operation and then prints the result. (Consider the operators +,-,*, /, % and use switch statement
)
Write a C program to generate all the prime numbers
between 1 and n, where n is a value supplied by the user.
Write C programs that use both recursive
and non-recursive functions
- To find the
factorial
of a given integer. - To find the
GCD
(greatest common divisor) of two given integers.