Yechilishi: Funksiya jadval qiymatlari bilan birga jadvalda bir yo’la (6.3) va (6.4) sistemalar uchun zarur bo’ladigan yig’indilarni ham hisoblaymiz.
|
|
|
|
|
|
|
|
0
|
0
|
-2
|
0
|
0
|
0
|
0
|
0
|
1
|
0,1
|
-2,394
|
0,01
|
0,001
|
0,0001
|
-0,239
|
-0,024
|
2
|
0,2
|
-2,772
|
0,04
|
0,008
|
0,0016
|
-0,554
|
-0,111
|
3
|
0,3
|
-3,128
|
0,09
|
0,027
|
0,0081
|
-0,938
|
-0,282
|
4
|
0,4
|
-3,456
|
0,16
|
0,064
|
0,0256
|
-1,382
|
-0,553
|
5
|
0,5
|
-3,75
|
0,25
|
0,125
|
0,0625
|
-1,875
|
-0,938
|
6
|
0,6
|
-4,004
|
,036
|
0,216
|
0,1296
|
-2,402
|
-1,441
|
7
|
0,7
|
-4,212
|
0,49
|
0,343
|
0,2401
|
-2,948
|
-2,064
|
|
2,8
|
-25,716
|
1,4
|
0,784
|
0,4676
|
-10,338
|
-5,413
|
Bu jadvalda hisoblangan qiymatlarga ko’ra berilgan jadval funksiya uchun (6.3) (6.4) sistemalar tuzamiz va chiziqli hamda kvadratik bog’lanish modellarini tuzamiz. Chiziqli model uchun
sistema hosil bo’ladi. Bu sistemadan topiladi va chiziqli bog’lanish modeli ko’rinishi hosil bo’ladi. Shuningdek kvadratik model uchun
sistema hosil bo’ladi. Bu sistemadan topiladi. Kvadratik bog’lanish modeli ko’rinishi hosil bo’ladi. Quyidagi jadvalda chiziqli va kvadratik bog’lanishmodellari bo’yicha hisoblangan funksiya qiymatlari va ularning xatoliklari keltirilgan.
|
|
|
|
|
|
|
0
|
0
|
-2
|
-2,1
|
-1,99
|
0,1
|
0,01
|
1
|
0,1
|
-2,394
|
-2,4184
|
-2,385
|
0,022
|
0,009
|
2
|
0,2
|
-2,772
|
-2,7368
|
-2,752
|
0,035
|
0,02
|
3
|
0,3
|
-3,128
|
-3,055
|
-3,093
|
0,073
|
0,035
|
4
|
0,4
|
-3,456
|
-3,374
|
-3,406
|
0,082
|
0,05
|
5
|
0,5
|
-3,75
|
-3,692
|
-3,693
|
0,058
|
0,06
|
6
|
0,6
|
-4,004
|
-4,01
|
-3,952
|
0,006
|
0,052
|
7
|
0,7
|
-4,212
|
-4,329
|
-4,184
|
0,117
|
0,038
|
Bu jadvalga ko’ra berilgan misol uchun kvadratik bog’lanish modeli ancha yaxshi ekanligi ko’rinib turibdi. Bu yerda hamda belgilashlar ishlatilgan. xatoliklar deyarlik bir xil tartibda bo’lganligi uchun bu misolda tasodifiy xatoliklar yo’q ekan degan xulosaga kelamiz. Agar biror qiymati boshqalaridan keskin farq qiladigan darajada katta bo’lsa, bu qiymatda tasodifiy xatolikka yo’l qo’yilgan deb jadvaldan shu qiymatni chiqarib tashlab keltirilgan algoritm bo’yicha tuzatilgan model tuziladi.
topshiriq variantlari
Berilgan jadvaldan k = 2(n–1) nomerdan boshlab 10 tа qiymat ko’chirib olinsin. bunda n talabalarni guruh jurnalidagi tartib raqami. Jadvaldagi variantga deb olinadi va variant jadvali i=0,1,2,…,9 ko’rinishida belgilanadi. Jadval qiymatlaridagi sistematik bartaraf qilib bo’lmas xatoliklar tartibi tartibida ekanligi ma’lum deb funksiyaning ; ; ; nuqtalaridagi qiymatlarni aniqlang.
Berilgan to’liq jadval asosida (n=a) eng kichik kvadratlar usuli asosida chiziqli va kvadratik bog’lanish modellarini tuzing. Bu model qiymatlari bilan jadval qiymatlari farqlari aniqlansin. Kvadratik model asosida jadvalda tasodifiy xatolar bo’lsa aniqlansin. Bu xato qiymat jadvalidan chiqarib tashlansin va jadvalning qolgan qismi bo’yicha tuzilgan kvadratik bog’lanish modeli tuzilsin. Tuzilgan asosida funksiyaning , , nuqtalardagi taqribiy qiymatlari hisoblansin.
Variant (i=21-31)
i
|
x
|
y
|
25
|
-0.5
|
-1.9375
|
26
|
-0.4
|
0.3216
|
27
|
-0.3
|
2.5761
|
28
|
-0.2
|
4.7936
|
29
|
-0.1
|
6.9441
|
30
|
0.0
|
9.0370
|
31
|
0.1
|
10.9361
|
32
|
0.2
|
12.7296
|
33
|
0.3
|
14.3601
|
34
|
0.4
|
15.8096
|
#include
#include
#include
using namespace std;
int i;
float n, x[100], xS, y[100], yS, x2[100], x2S, xy[100], xyS, a0, a1, a;
int main(int argc, char *argv[])
{
cout<cout<for(i=1; i<=n; i++) {
cin>>x[i]; xS+=x[i];
}
cout<cout<for(i=1; i<=n; i++) {
cin>>y[i]; yS+=y[i];
}
cout<cout<for(i=1; i<=n; i++) {
x2[i]=x[i]*x[i]; cout<}
cout<cout<for(i=1; i<=n; i++) {
xy[i]=x[i]*y[i]; cout<}
cout<
a0=(-xyS/xS+yS/n)/(-x2S/xS+xS/n); cout<if(a1<0) cout<
cout<
for i in range(0,n):
x.append(float(input(f"x[{i}]:")))
for i in range(0,n):
y.append(float(input(f"y[{i}]:")))
for i in range(0,n):
x2.append(x[i]**2)
x3.append(x[i]**3)
x4.append(x[i]**4)
x2y.append(x2[i]*y[i])
xy.append(x[i]*y[i])
a=np.array([x,y,x2,x3,x4,xy,x2y])
df=pd.DataFrame(a.T,columns=["x","y","x2","x3","x4","xy","x2y"])
print(df)
A = np.array([[a[4].sum(), a[3].sum(), a[2].sum()], [a[3].sum(), a[2].sum(), a[0].sum()], [a[2].sum(), a[0].sum(), n]])
b = np.array([a[6].sum(), a[5].sum(), a[1].sum()])
s = np.linalg.solve(A, b)
print("y = %5.2fx^2 + (%5.2f)x + (%5.2f)" % (s[0], s[1], s[2]))
2-kvadratik model ni ishlatib o’z varyantimni ishlab ko’rdim
Do'stlaringiz bilan baham: |