Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
52
Task/Polynomial-regression/Lua/polynomial-regression.lua
Normal file
52
Task/Polynomial-regression/Lua/polynomial-regression.lua
Normal file
|
|
@ -0,0 +1,52 @@
|
|||
function eval(a,b,c,x)
|
||||
return a + (b + c * x) * x
|
||||
end
|
||||
|
||||
function regression(xa,ya)
|
||||
local n = #xa
|
||||
|
||||
local xm = 0.0
|
||||
local ym = 0.0
|
||||
local x2m = 0.0
|
||||
local x3m = 0.0
|
||||
local x4m = 0.0
|
||||
local xym = 0.0
|
||||
local x2ym = 0.0
|
||||
|
||||
for i=1,n do
|
||||
xm = xm + xa[i]
|
||||
ym = ym + ya[i]
|
||||
x2m = x2m + xa[i] * xa[i]
|
||||
x3m = x3m + xa[i] * xa[i] * xa[i]
|
||||
x4m = x4m + xa[i] * xa[i] * xa[i] * xa[i]
|
||||
xym = xym + xa[i] * ya[i]
|
||||
x2ym = x2ym + xa[i] * xa[i] * ya[i]
|
||||
end
|
||||
xm = xm / n
|
||||
ym = ym / n
|
||||
x2m = x2m / n
|
||||
x3m = x3m / n
|
||||
x4m = x4m / n
|
||||
xym = xym / n
|
||||
x2ym = x2ym / n
|
||||
|
||||
local sxx = x2m - xm * xm
|
||||
local sxy = xym - xm * ym
|
||||
local sxx2 = x3m - xm * x2m
|
||||
local sx2x2 = x4m - x2m * x2m
|
||||
local sx2y = x2ym - x2m * ym
|
||||
|
||||
local b = (sxy * sx2x2 - sx2y * sxx2) / (sxx * sx2x2 - sxx2 * sxx2)
|
||||
local c = (sx2y * sxx - sxy * sxx2) / (sxx * sx2x2 - sxx2 * sxx2)
|
||||
local a = ym - b * xm - c * x2m
|
||||
|
||||
print("y = "..a.." + "..b.."x + "..c.."x^2")
|
||||
|
||||
for i=1,n do
|
||||
print(string.format("%2d %3d %3d", xa[i], ya[i], eval(a, b, c, xa[i])))
|
||||
end
|
||||
end
|
||||
|
||||
local xa = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
|
||||
local ya = {1, 6, 17, 34, 57, 86, 121, 162, 209, 262, 321}
|
||||
regression(xa, ya)
|
||||
Loading…
Add table
Add a link
Reference in a new issue