about summary refs log tree commit diff
path: root/usth/MATH2.2/labwork/3/subst.m
diff options
context:
space:
mode:
authorNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-16 21:31:18 +0700
committerNguyễn Gia Phong <vn.mcsinyx@gmail.com>2019-12-16 21:31:18 +0700
commite461df7573c2b7b7e26c965d8cf2d8e175d67378 (patch)
tree193b8439edac52c1749764395fe5f7787889eda9 /usth/MATH2.2/labwork/3/subst.m
parentc1008fe39217be7f91f0ea23483e747bfbc5743e (diff)
downloadcp-e461df7573c2b7b7e26c965d8cf2d8e175d67378.tar.gz
[usth/MATH2.2] Numerical Methods
The future starts now.
Diffstat (limited to 'usth/MATH2.2/labwork/3/subst.m')
-rw-r--r--usth/MATH2.2/labwork/3/subst.m17
1 files changed, 17 insertions, 0 deletions
diff --git a/usth/MATH2.2/labwork/3/subst.m b/usth/MATH2.2/labwork/3/subst.m
new file mode 100644
index 0000000..5c6e783
--- /dev/null
+++ b/usth/MATH2.2/labwork/3/subst.m
@@ -0,0 +1,17 @@
+function x = subst (aug)
+  [m n] = size (aug);
+  x = zeros (m, 1);
+  if (istril (aug))
+    x(m) = aug(1, n) / aug(1, m);
+    for k = 2 : m
+      x(k) = (aug(k, n) - aug(k, k+1:m)*x(1:k-1)) / aug(k, k);
+    end
+  elseif (istriu (aug))
+    x(m) = aug(m, n) / aug(m, m);
+    for k = m - 1 : -1 : 1
+      x(k) = (aug(k, n) - aug(k, k+1:m)*x(k+1:m)) / aug(k, k);
+    end
+  else
+    error ('aug must be a triangular matrix');
+  end
+end