88 lines
1.2 KiB
Lua
88 lines
1.2 KiB
Lua
local globalize = require "strict"
|
|
local nn = require "nn"
|
|
local qr = require "qr"
|
|
local qr2 = require "qr2"
|
|
local qr3 = require "qr3"
|
|
|
|
local A
|
|
|
|
if false then
|
|
A = {
|
|
12, -51, 4,
|
|
6, 167, -68,
|
|
-4, 24, -41,
|
|
|
|
-1, 1, 0,
|
|
2, 0, 3,
|
|
}
|
|
A = nn.reshape(A, 5, 3)
|
|
|
|
elseif false then
|
|
A = {
|
|
0, 1, 2, 3, 4,
|
|
5, 6, 7, 8, 9,
|
|
10, 11, 12, 13, 14
|
|
}
|
|
A = nn.reshape(A, 5, 3)
|
|
|
|
elseif false then
|
|
A = {
|
|
1, 2, 0,
|
|
2, 3, 1,
|
|
3, 4, 0,
|
|
4, 5, 1,
|
|
5, 6, 0,
|
|
}
|
|
|
|
A = {
|
|
1, 0, 0,
|
|
2, 0, 1,
|
|
3, 0, 0,
|
|
4, 0, 1,
|
|
5, 0, 0,
|
|
}
|
|
|
|
A = nn.reshape(A, 5, 3)
|
|
--A = nn.transpose(A)
|
|
|
|
else
|
|
A = {
|
|
1, 2, -3,
|
|
2, 4, 5,
|
|
-3, 5, 6,
|
|
}
|
|
|
|
A = nn.reshape(A, 3, 3)
|
|
end
|
|
|
|
print("A")
|
|
print(nn.pp(A, "%9.4f"))
|
|
print()
|
|
|
|
local Q, R = qr(A)
|
|
|
|
print("Q (reference)")
|
|
print(nn.pp(Q, "%9.4f"))
|
|
print()
|
|
|
|
local Q, R = qr3(A)
|
|
|
|
print("Q")
|
|
print(nn.pp(Q, "%9.4f"))
|
|
print()
|
|
|
|
print("R")
|
|
print(nn.pp(R, "%9.4f"))
|
|
print()
|
|
|
|
print("Q @ R")
|
|
print(nn.pp(nn.dot(Q, R), "%9.4f"))
|
|
print()
|
|
|
|
--print("Q @ Q.T = I")
|
|
--print(nn.pp(nn.dot(Q, nn.transpose(Q)), "%9.4f"))
|
|
--print()
|
|
|
|
--A = nn.reshape(A, 5, 3)
|
|
--Q, R = qr(A)
|