UNPKG

1.65 kBJavaScriptView Raw
1var M = require("../rlab").M;
2var v = [1,2,3];
3print("v.sin()=", v.sin());
4print("v.norm2()=", v.norm2());
5print("v.norm2Squared()=", v.norm2Squared());
6
7var A = [[1,2,3],[4,5,6],[7,3,9]];
8var AiA = A.inv().dot(A);
9print("AiA=\n", AiA.strM());
10print("AiA.tr()=\n", AiA.tr().strM());
11print("A=\n", A.str());
12print("A.mul(0.1)=\n", A.mul(0.1).strM());
13print("A.row(1)=", A.row(1));
14print("A.col(1)=", A.col(1));
15print("A.sumM()=", A.sum());
16print("A.rowSum()=", A.rowSum());
17print("A.colSum()=", A.colSum());
18print("A.mean(row)=", A.rowMean().str());
19print("A.mean(col)=", A.colMean().str());
20
21var D = M.diag(v);
22print("D=", D);
23
24print("===========eigen================");
25var Eλ = M.eigR(A);
26var E = Eλ.E, λ=Eλ.lambda;
27print("E*[λ]*E-1=", E.dot(λ.diag()).dot(E.inv()).strM());
28
29print("===========LU================");
30var lu = M.cLU([[0,0,1,1,1,2,2],[0,1,0,1,2,1,2],[2,-1,-1,2,-1,-1,2]]);
31print('lu:', M.str(lu));
32var luSolve = M.cLUsolve(lu,[5,-8,13]);
33print('luSolve:', luSolve.strM());
34
35print("===========Sparse================");
36var S = [
37[0,0,0,0,0,0],
38[0,3,0,0,0,0],
39[0,0,0,6,0,0],
40[0,0,9,0,0,0],
41[0,0,0,0,12,0],
42[0,0,0,0,0,5],
43[0,0,1,1,0,0],
44[0,0,0,0,0,0],
45];
46print("sparse(S)=", M.sparse(S));
47// The relation between A and its sparse representation SA is:
48// A[i][SA[1][k]] = SA[2][k] with SA[0][i] ≤ k < SA[0][i+1]
49// 雖然有點不同,但可參考: http://openhome.cc/Gossip/AlgorithmGossip/SparseMatrix.htm
50// sparse(S)=[[0, 0, 1, 3, 5, 6, 7 ], // (行)
51// [ 1, 3, 6, 2, 6, 4, 5 ], // (列)
52// [ 3, 9, 1, 6, 1, 12, 5 ] ] // (值)