diff options
author | priyanka | 2015-06-24 15:03:17 +0530 |
---|---|---|
committer | priyanka | 2015-06-24 15:03:17 +0530 |
commit | b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b (patch) | |
tree | ab291cffc65280e58ac82470ba63fbcca7805165 /845/CH3/EX3.5 | |
download | Scilab-TBC-Uploads-b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b.tar.gz Scilab-TBC-Uploads-b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b.tar.bz2 Scilab-TBC-Uploads-b1f5c3f8d6671b4331cef1dcebdf63b7a43a3a2b.zip |
initial commit / add all books
Diffstat (limited to '845/CH3/EX3.5')
-rwxr-xr-x | 845/CH3/EX3.5/Ex3_5.sce | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/845/CH3/EX3.5/Ex3_5.sce b/845/CH3/EX3.5/Ex3_5.sce new file mode 100755 index 000000000..653871380 --- /dev/null +++ b/845/CH3/EX3.5/Ex3_5.sce @@ -0,0 +1,50 @@ +//Example 3.5
+clc
+clear
+
+A = [5 -2 1; 7 1 -5; 3 7 4];
+B = [4; 8; 10];
+
+n = length (B);
+L = zeros(n,n); // L = Lower Triangular Matrix Initiation
+U = eye(n,n); // U = Upper Triangular Matrix Initiation
+
+// LU Decomposition
+for i = 1:n
+ sum1 = zeros(n-i+1,1);
+ for k = 1:i-1
+ sum1 = sum1 + L(i:n,k) * U(k,i);
+ end
+ L(i:n,i) = A(i:n,i) - sum1;
+
+ sum2 = zeros(1,n-i);
+ for k = 1:i-1
+ sum2 = sum2 + L(i,k) * U(k,i+1:n);
+ end
+ U(i,i+1:n) = (A(i,i+1:n) - sum2) / L(i,i);
+end
+
+// Forward Substitution
+D = ones(n,1);
+for i = 1:n
+ sum3 = 0;
+ for k = 1:i-1
+ sum3 = sum3 + L(i,k) * D(k);
+ end
+ D(i) = (B(i) - sum3) / L(i,i);
+end
+
+// Back Substitution
+x = ones(n,1);
+for i = n:-1:1
+ sum4 = 0;
+ for k = i+1:n
+ sum4 = sum4 + U(i,k) * x(k);
+ end
+ x(i) = D(i) - sum4;
+end
+
+disp(strcat(["x1 = ",string(x(1))]))
+disp(strcat(["x2 = ",string(x(2))]))
+disp(strcat(["x3 = ",string(x(3))]))
+
|