Published
Edited
Aug 20, 2021
1 fork
2 stars
Insert cell
md`# Gaussian Elimination`
Insert cell
M = [
[2, -1, -1, 1, 1, 4],
[1, 7, 3, 0, 1, 4],
[2, 3, 7, -1, 1, 4],
[3, 2, 8, 1, 1, 4]
]
Insert cell
Insert cell
delay = 200
Insert cell
function* RowReduce(m, n, zero) {
let i;
let j;
let ip;
let sm = {
init: function() {
i = 1;
j = 1;
ip = 1;
return 'visit';
},
visit: function() {
if (zero(i, j)) {
i = i + 1;
if (i > m) {
i = ip;
j = j + 1;
}
if (j > n) return 'stop';
return 'visit';
} else {
return 'pivot';
}
},
pivot: function() {
if (ip == m) return 'stop';
else return 'swap';
},
swap: function() {
i = ip + 1;
return 'eliminate';
},
eliminate: function() {
i = i + 1;
if (i > m) {
j = j + 1;
if (j > n) return 'stop';
ip = ip + 1;
i = ip;
return 'visit';
} else return 'eliminate';
}
};
let st = 'init';
do {
st = sm[st]();
yield { action: st, i, j, ip };
} while (st !== 'stop');
}
Insert cell
anime = require('https://unpkg.com/animejs/lib/anime.min.js')
Insert cell
Guacyra = require('guacyra')
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more