Data update
This commit is contained in:
parent
8e4e15fa56
commit
72eb4943cb
1853 changed files with 35514 additions and 9441 deletions
|
|
@ -0,0 +1,67 @@
|
|||
Module Task_Multiple_regression{
|
||||
Function Multiple_regression(X(), Y()){
|
||||
Form 14*5, 32
|
||||
Print $(0, 14)
|
||||
integer M=2, Q=3, n=len(x())-1
|
||||
Dim s(0 to 2*M), t(0 to 2*M)
|
||||
For k = 0 To 2*M
|
||||
S(k) = 0 : T(k) = 0
|
||||
For i = 0 To N
|
||||
S(k) += X(i) ^ k
|
||||
If k <= M Then T(k) += Y(i) * X(i) ^ k
|
||||
Next i
|
||||
Next k
|
||||
dim a(0 to M, 0 to Q)
|
||||
For r = 0 To M
|
||||
For c = 0 To M
|
||||
A(r, c) = S(r+c)
|
||||
Next c
|
||||
A(r, c) = T(r)
|
||||
Next r
|
||||
Print "Linear system coefficents:"
|
||||
Print $("0.0")
|
||||
For i = 0 To M
|
||||
For j = 0 To M+1
|
||||
Print A(i,j),
|
||||
Next j
|
||||
Print
|
||||
Next i
|
||||
Print $(0)
|
||||
For j = 0 To M
|
||||
For i = j To M
|
||||
If A(i,j) <> 0 Then Exit For
|
||||
Next i
|
||||
If i = M+1 Then
|
||||
Print "SINGULAR MATRIX"
|
||||
break
|
||||
End If
|
||||
For k = 0 To M+1
|
||||
Swap A(j,k), A(i,k)
|
||||
Next k
|
||||
z = 1 / A(j,j)
|
||||
For k = 0 To M+1
|
||||
A(j,k) = z * A(j,k)
|
||||
Next k
|
||||
For i = 0 To M
|
||||
If i <> j Then
|
||||
z = -A(i,j)
|
||||
For k = 0 To M+1
|
||||
A(i,k) += z * A(j,k)
|
||||
Next k
|
||||
End If
|
||||
Next i
|
||||
Next j
|
||||
Flush
|
||||
For i = 0 To M
|
||||
data A(i,M+1)
|
||||
Next i
|
||||
=array([])
|
||||
}
|
||||
Dim Solution()
|
||||
DataX=(1.47,1.50,1.52,1.55,1.57, 1.60,1.63,1.65,1.68, 1.70,1.73,1.75,1.78,1.80,1.83)
|
||||
DataY=(52.21,53.12,54.48,55.84,57.20,58.57,59.93,61.29,63.11,64.47, 66.28,68.10,69.92,72.19,74.46)
|
||||
Solution()=Multiple_regression(DataX, DataY)
|
||||
Print "Solutions:"
|
||||
Print $("0.0000000"), Solution()
|
||||
}
|
||||
Task_Multiple_regression
|
||||
|
|
@ -0,0 +1,26 @@
|
|||
uses NumLibABC;
|
||||
|
||||
function multipleRegression(y, x: Matrix): Matrix;
|
||||
begin
|
||||
var cy := y.Transpose;
|
||||
var cx := x.Transpose;
|
||||
result := ((x * cx).Inv * x * cy).Transpose;
|
||||
end;
|
||||
|
||||
begin
|
||||
var y := new Matrix(1, 5, 1, 2, 3, 4, 5);
|
||||
var x := new Matrix(1, 5, 2, 1, 3, 4, 5);
|
||||
multipleRegression(y, x).println(18, 15);
|
||||
|
||||
y := new Matrix(1, 3, 3, 4, 5);
|
||||
x := new Matrix(2, 3, 1, 2, 1, 1, 1, 2);
|
||||
multipleRegression(y, x).Println(4, 1);
|
||||
|
||||
y := new Matrix(1, 15, 52.21, 53.12, 54.48, 55.84, 57.20, 58.57, 59.93, 61.29,
|
||||
63.11, 64.47, 66.28, 68.10, 69.92, 72.19, 74.46);
|
||||
var a := |1.47, 1.5, 1.52, 1.55, 1.57, 1.6, 1.63, 1.65, 1.68, 1.7, 1.73, 1.75, 1.78, 1.8, 1.83|;
|
||||
var aa := a.Select(x -> x.Sqr).ToArray;
|
||||
var c := |1.0| * a.Length + a + aa;
|
||||
x := new Matrix(3, a.Length, c);
|
||||
multipleRegression(y, x).Println(18, 12);
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue