Determinant of a Matrix
The determinant of a matrix m can be found using the
command det.
Ex:
>> m=[1 3 2;6 4 7;0 9 3]
m =
>> det(m)
ans =
3
Inverse of a Matrix.
The inverse of a matrix can be found using the command inv.
Ex:
m as before
>> inv(m)
ans =
How to solve Systems of equations in MATLAB
Consider a linear equation
ax + by = p
cx + dy = q
We can write this more compactly as
AX = B
A is a matrix consisting of the coefficients of x and y .a b
c d
X is the vector of unknowns
x
y
B is the vector on the right-hand side is
p
q
If A is invertible, X = (1/A)B, or, using Matlab notation, X = A\B.
Example:
Find the solution of the following set of linear equations
How to solve?
Express system of linear equations in the form of ax = b and then solve with \
command
in matlab. You can use the backslash operator to solve a system of simultaneous
linear
equations.
>> a= [3 5 2;1 0 7;0 1 3]
a =
>> b= [3;2;5]
b =
3
2
5
>> x=a\b
x =
-3.7647
2.5294
0.8235
Or you can type
>>x=inv(a)*b
You can check your answer by typing a*x in the command
window. You will get the
same values in b .
Back substitution.
The back Substitution method is used to solve Upper
triangular Linear systems .
For example:
To solve this system we use back substitution:
The following code uses the back substitution to solve upper-triangular linear systems:
function X=backsub(A,B)
%Input - A is an n x n upper-triangular nonsingular matrix
% - B is an n x 1 matrix
%Output - X is the solution to the linear system AX = B
n=length(B); % finds the length of vector B
X=zeros(n,1); % build a matrix X of dimensions (n,1) and zero elements
X(n)=B(n)/A(n,n); % evaluate the value of X in the last row
for k=n-1:-1:1 % starts calculating the values of x
X(k)=(B(k)-A(k,k+1:n)*X(k+1:n))/A(k,k); % A(k,k+1:n) selects the
%elements k+1 to n in row k, X(k+1:n) selects the elements k+1 to n in
% the vector matrix X.
end
%Comment: to test the code enter in Matlab window (without
the %
signs):
%U = [4 -1 2 3; 0 -2 7 -4; 0 0 6 5; 0 0 0 3]
%Y = [20 -7 4 6]'
%X=backsub(U,Y)
% compare to the correct answer in Example 3.12, page 122
Trivial Pivoting
It is a pivoting strategy used when aii=0 (during Gauss
Elimination method).
When this happens, Find a row after the row i in which aki doesnt equal zero and
interchange these rows.
Ex:
To eliminate the elements in the first column in second
and third rows we multiply the
first row with 2 and subtract the result from the second row. Then we multiply
it with 3
and subtract the result from the third row to get the following matrix.
The 2,2 element is zero, we cant continue the process
unless we interchange the second
and the third rows to get
Partial Pivoting
The partial pivoting is used to reduce the error when
using Gauss Elimination method by
moving the elements with the highest absolute value to the diagonal.
Ex:
Interchange the first and the third columns
Interchange the 4th and the 2nd columns
This is the best order for Gauss elimination method.
Partial Pivoting Code
The following code uses partial pivoting in Gauss elimination method to solve a
system
of linear equations.
In the code:
1) The size of a is defined and the matrix X is initiated.
2) The augmented matrix [A l B] is built.
3) Interchanging rows and elimination.
4) Call back substitution function to solve the system.
function X = partialpivoting(A,B)
format short e
%Input - A is an N x N nonsingular matrix
% - B is an N x 1 matrix
%Output - X is an N x 1 matrix containing the solution to AX=B.
%Initialize X and the temporary storage matrix C
[N N]=size(A); % [n m]=size(a) gives n: no. of rows, m: no. of columns,
% he didn’t say N=size(A), because that would give an array with N
%values
X=zeros(N,1);
C=zeros(1,N+1); % N+1 because it’s for augmented matrix
%Form the augmented matrix: Aug=[A|B]
Aug=[A B];
for p=1:N-1 % to N-1 because when we have 1 coloum left,
no pivoting
%is possible
%Partial pivoting for column p
[Y,j]=max(abs(Aug(p:N,p))); % finds the maximum absolute
value of
%the elements of row p in the augmented matrix, the value of the
%largest element is stored in Y, the position of the that element in
%the column is stored into j.
%Interchange row p and j
C=Aug(p,:); % saves the row p in c
Aug(p,:)=Aug(j+p-1,:); % saves the row j+p-1 in row p of aug matrix
Aug(j+p-1,:)=C; % moves the row in c to j+p-1 row in aug matrix
if Aug(p,p)==0
'A was singular. No unique solution'
Break % break is used to terminate FOR loops
end
%Elimination process for column p
for k=p+1:N
m=Aug(k,p)/Aug(p,p);
Aug(k,p:N+1)=Aug(k,p:N+1)-m*Aug(p,p:N+1);
end
end
%Back Substitution on [U|Y] using Program 3.1
X=backsub(Aug(1:N,1:N),Aug(1:N,N+1));
% Aug(1:N,1:N) constructs a matrix using the rows from 1 to N and
%columns from 1 to N (equals A matrix). Aug(1:N,N+1) builds a matrix
%using the elements in column N+1 (equals B matrix).
In the command window type:
A = [1 2 1 4; 2 0 4 3; 4 2 2 1; -3 1 3 2]
B = [13 28 20 6]'
X = partialpivoting(A,B)
Compare to the correct answer in Example 3.16, page 128
Prev | Next |