3)Amaliy mashg’ulot topshiriqlari.
Quyidagi masalalar uchun chiziqli regressiya tenglamasidan (y=ax+b) foydalanib, algoritm va dastur tuzing:
Javobi:
Chiziqli regressiya tenglamasi y=ax+b shaklida beriladi, bu yerda x masofa, y esa protektor chuqurligi (eskiroq), a esa o'zaro aloqador bo'lgan koeffitsiyent, b esa konstanta. Eng kichik kvadratlar usuli orqali chiziqli regressiya koeffitsiyentlarini topish uchun quyidagi formulalardan foydalaniladi:
n = soni
Σx = xi ning yig'indisi
Σy = yi ning yig'indisi
Σx² = xi kvadrati yig'indisi
Σy² = yi kvadrati yig'indisi
Σxy = xi*yi yig'indisi
a = (nΣxy - ΣxΣy) / (nΣx² - (Σx)²)
b = (Σy - aΣx) / n
42 ming km uchun protektorning eskirishini (chuqurligini) hisoblash uchun y=42 ni tegishli qiymat sifatida chiziqli regressiya tenglamasiga kiritamiz.
DASTUR KODI:
#include
using namespace std;
int main() {
float x[] = {0, 5, 10, 15, 20, 30, 40, 50, 60, 70};
float y[] = {9.0, 8.5, 7.9, 7.5, 7.0, 6.1, 5.0, 4.1, 3.0, 2.0};
float n = sizeof(x) / sizeof(x[0]);
float sum_x = 0, sum_y = 0, sum_xy = 0, sum_x2 = 0;
for (int i = 0; i < n; i++) {
sum_x += x[i];
sum_y += y[i];
sum_xy += x[i] * y[i];
sum_x2 += x[i] * x[i];
}
float a = (n * sum_xy - sum_x * sum_y) / (n * sum_x2 - sum_x * sum_x);
float b = (sum_y - a * sum_x) / n;
float protektor_eskiroq = a * 42 + b;
cout << "Chiziqli regressiya koeffitsiyentlari:" << endl;
cout << "a = " << a << endl;
cout << "b = " << b << endl;
cout << "42 ming km uchun protektorning eskirishini (chuqurligini): " << protektor_eskiroq << " mm" << endl;
return 0;}
Dostları ilə paylaş: |