June 2018 Update

This commit is contained in:
Ingy döt Net 2018-06-22 20:57:24 +00:00
parent ba8067c3b7
commit 22f33d4004
5278 changed files with 84726 additions and 14379 deletions

View file

@ -0,0 +1,29 @@
void gauss(real matrix a, real matrix b, real scalar det) {
real scalar i,j,n,s
real vector js
det = 1
n = rows(a)
for (i=1; i<n; i++) {
maxindex(abs(a[i::n,i]), 1, js=., .)
j = js[1]+i-1
if (j!=i) {
a[(i\j),i..n] = a[(j\i),i..n]
b[(i\j),.] = b[(j\i),.]
det = -det
}
for (j=i+1; j<=n; j++) {
s = a[j,i]/a[i,i]
a[j,i+1..n] = a[j,i+1..n]-s*a[i,i+1..n]
b[j,.] = b[j,.]-s*b[i,.]
}
}
for (i=n; i>=1; i--) {
for (j=i+1; j<=n; j++) {
b[i,.] = b[i,.]-a[i,j]*b[j,.]
}
b[i,.] = b[i,.]/a[i,i]
det = det*a[i,i]
}
}

View file

@ -0,0 +1,43 @@
void ludec(real matrix a, real matrix l, real matrix u, real vector p) {
real scalar i,j,n,s
real vector js
l = a
n = rows(a)
p = 1::n
for (i=1; i<n; i++) {
maxindex(abs(l[i::n,i]), 1, js=., .)
j = js[1]+i-1
if (j!=i) {
l[(i\j),.] = l[(j\i),.]
p[(i\j)] = p[(j\i)]
}
for (j=i+1; j<=n; j++) {
l[j,i] = s = l[j,i]/l[i,i]
l[j,i+1..n] = l[j,i+1..n]-s*l[i,i+1..n]
}
}
u = uppertriangle(l)
l = lowertriangle(l, 1)
}
void luback(real matrix l, real matrix u, real vector p, real matrix y) {
real scalar i,j,n
n = rows(y)
y = y[p,.]
for (i=1; i<=n; i++) {
for (j=1; j<i; j++) {
y[i,.] = y[i,.]-l[i,j]*y[j,.]
}
/*y[i,.] = y[i,.]/l[i,i]*/
}
for (i=n; i>=1; i--) {
for (j=i+1; j<=n; j++) {
y[i,.] = y[i,.]-u[i,j]*y[j,.]
}
y[i,.] = y[i,.]/u[i,i]
}
}

View file

@ -0,0 +1,21 @@
: gauss(a=(2,9,4\7,5,3\6,1,8),b=I(3),det=.)
: b
1 2 3
+----------------------------------------------+
1 | -.1027777778 .1888888889 -.0194444444 |
2 | .1055555556 .0222222222 -.0611111111 |
3 | .0638888889 -.1444444444 .1472222222 |
+----------------------------------------------+
: ludec(a=(2,9,4\7,5,3\6,1,8),l=.,u=.,p=.)
: luback(l,u,p,y=I(3))
: y
1 2 3
+----------------------------------------------+
1 | -.1027777778 .1888888889 -.0194444444 |
2 | .1055555556 .0222222222 -.0611111111 |
3 | .0638888889 -.1444444444 .1472222222 |
+----------------------------------------------+