June 2018 Update
This commit is contained in:
parent
ba8067c3b7
commit
22f33d4004
5278 changed files with 84726 additions and 14379 deletions
29
Task/Gaussian-elimination/Stata/gaussian-elimination-1.stata
Normal file
29
Task/Gaussian-elimination/Stata/gaussian-elimination-1.stata
Normal 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]
|
||||
}
|
||||
}
|
||||
43
Task/Gaussian-elimination/Stata/gaussian-elimination-2.stata
Normal file
43
Task/Gaussian-elimination/Stata/gaussian-elimination-2.stata
Normal 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]
|
||||
}
|
||||
}
|
||||
21
Task/Gaussian-elimination/Stata/gaussian-elimination-3.stata
Normal file
21
Task/Gaussian-elimination/Stata/gaussian-elimination-3.stata
Normal 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 |
|
||||
+----------------------------------------------+
|
||||
Loading…
Add table
Add a link
Reference in a new issue