#include <stdio.h>
#include <math.h>
int main() {
double x[8] = {0.15708, 0.23982, 0.37400, 0.57120, 0.82674, 1.04720, 1.23200, 1.43452};
double y[8] = {0.98769, 0.97138, 0.93087, 0.84125, 0.67728, 0.50000, 0.33236, 0.13586};
double Sx2 = 0, Sx4 = 0, Sy = 0, Sx2y = 0;
for (int i = 0; i < 8; i++) {
double x2 = x[i] * x[i];
Sx2 += x2;
Sx4 += x2 * x2;
Sy += y[i];
Sx2y += x2 * y[i];
}
// Normal equation matrix
double A11 = 8, A12 = Sx2;
double A21 = Sx2, A22 = Sx4;
double B1 = Sy, B2 = Sx2y;
// Solve 2x2 system
double det = A11 * A22 - A12 * A21;
double a1 = ( B1 * A22 - A12 * B2 ) / det;
double a2 = ( A11 * B2 - B1 * A21 ) / det;
printf("Model 1 coefficients:\n");
// Compute squared error
double E = 0;
for (int i = 0; i < 8; i++) {
double yhat = a1 + a2 * x[i] * x[i];
double diff = y[i] - yhat;
E += diff * diff;
}
printf("Squared error E = %.10f\n", E
);
printf("\nModel 1 predicted values:\n"); for (int i = 0; i < 8; i++) {
double yhat = a1 + a2 * x[i] * x[i];
}
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxtYXRoLmg+CgppbnQgbWFpbigpIHsKZG91YmxlIHhbOF0gPSB7MC4xNTcwOCwgMC4yMzk4MiwgMC4zNzQwMCwgMC41NzEyMCwgMC44MjY3NCwgMS4wNDcyMCwgMS4yMzIwMCwgMS40MzQ1Mn07CmRvdWJsZSB5WzhdID0gezAuOTg3NjksIDAuOTcxMzgsIDAuOTMwODcsIDAuODQxMjUsIDAuNjc3MjgsIDAuNTAwMDAsIDAuMzMyMzYsIDAuMTM1ODZ9OwoKZG91YmxlIFN4MiA9IDAsIFN4NCA9IDAsIFN5ID0gMCwgU3gyeSA9IDA7Cgpmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykgewpkb3VibGUgeDIgPSB4W2ldICogeFtpXTsKU3gyICs9IHgyOwpTeDQgKz0geDIgKiB4MjsKU3kgKz0geVtpXTsKU3gyeSArPSB4MiAqIHlbaV07Cn0KCi8vIE5vcm1hbCBlcXVhdGlvbiBtYXRyaXgKZG91YmxlIEExMSA9IDgsIEExMiA9IFN4MjsKZG91YmxlIEEyMSA9IFN4MiwgQTIyID0gU3g0OwoKZG91YmxlIEIxID0gU3ksIEIyID0gU3gyeTsKCi8vIFNvbHZlIDJ4MiBzeXN0ZW0KZG91YmxlIGRldCA9IEExMSAqIEEyMiAtIEExMiAqIEEyMTsKZG91YmxlIGExID0gKCBCMSAqIEEyMiAtIEExMiAqIEIyICkgLyBkZXQ7CmRvdWJsZSBhMiA9ICggQTExICogQjIgLSBCMSAqIEEyMSApIC8gZGV0OwoKcHJpbnRmKCJNb2RlbCAxIGNvZWZmaWNpZW50czpcbiIpOwpwcmludGYoImExID0gJS42ZlxuIiwgYTEpOwpwcmludGYoImEyID0gJS42ZlxuIiwgYTIpOwoKLy8gQ29tcHV0ZSBzcXVhcmVkIGVycm9yCmRvdWJsZSBFID0gMDsKZm9yIChpbnQgaSA9IDA7IGkgPCA4OyBpKyspIHsKZG91YmxlIHloYXQgPSBhMSArIGEyICogeFtpXSAqIHhbaV07CmRvdWJsZSBkaWZmID0geVtpXSAtIHloYXQ7CkUgKz0gZGlmZiAqIGRpZmY7Cn0KCnByaW50ZigiU3F1YXJlZCBlcnJvciBFID0gJS4xMGZcbiIsIEUpOwoKcHJpbnRmKCJcbk1vZGVsIDEgcHJlZGljdGVkIHZhbHVlczpcbiIpOwpmb3IgKGludCBpID0gMDsgaSA8IDg7IGkrKykgewpkb3VibGUgeWhhdCA9IGExICsgYTIgKiB4W2ldICogeFtpXTsKcHJpbnRmKCIlZlxuIiwgeWhhdCk7Cn0KCnJldHVybiAwOwp9Cg==