The writer is very fast, professional and responded to the review request fast also. Thank you.
1
MATLAB PROJECT 4A
GROUP # ___________
FIRST & LAST NAMES:
_1.___________________________________________________________
_2.___________________________________________________________
_3.____________________________________________________________
_4.____________________________________________________________
By signing your names above, each of you had confirmed that you did the work and
agree with the work submitted.
2
Please follow the instructions below unless a specific requirement on
the submission format is indicated in the exercise. Failure to fulfill the
requirements on the format will result in a loss of points on the Project.
Below is an example of how an output of your work for the commands executed in MATLAB
should look. A page similar to the one below has to be created in MATLAB for each exercise
and called exercise# (please put the corresponding number). The file will be created by using
the command diary exercise#. After the file diary exercise# is initiated, the next command
will be diary on – the beginning of recording. Everything that you put in the Command
Window will be recorded in the created file. The command diary off will end up the
recording. Within the diary file: the command type function name types the function that has
to be previously created using the text editor and saved in MATLAB with the extension .m.
Then you should assign values to the arguments in the function and call the function. Please
refer to MATLAB help page on the subject of creating functions in files:
http://www.mathworks.com/help/matlab/matlab_prog/create-functions-in-files.html
After you got the required outputs, execute the last command diary off and your file is ready
for printing. The printed “diary” file for each exercise has to be turned in as a part of the
Project.
Example of the function “add” placed into a “diary file” and executed:
diary on
type add
function c=add(a,b)
% c=add(a,b). This is the function which adds
% the matrices a and b. It duplicates the MATLAB
% function a+b.*
[m,n]=size(a);
[k,l]=size(b);
if m~=k | n~=l,
disp(‘ERROR using add: matrices are not the same size’)
return,
end
c=zeros(m,n);
for i=1:m,
for j=1:n,
c(i,j)=a(i,j)+b(i,j);
end
end
format compact
a=[1 2 3;4 5 6]
a =
1 2 3
4 5 6
b=ones(2,3);
c=add(a,b)
c =
2 3 4
5 6 7
diary off
*Comments are supplied with % sign – they are not executed in MATLAB.
3
Part I. Eigenvectors & Diagonalization
Exercise4_1a (8 points) Difficulty: Hard
In this exercise, you will find all eigenvalues of a given n n × matrix A. Then you will choose
the distinct eigenvalues and, for each of them, you will find a “rational” basis for the
corresponding eigenspace and the dimension of that eigenspace. Then you will decide whether
A is diagonalizable applying the general theory. If the matrix is diagonalizable, an
OPTIONAL output has to also contain an invertable matrix P and the diagonal matrix D, such
that, 1 A PDP− = , or, equivalently, AP PD = .
You will write a set of commands for an n n × matrix A which will produce the following
outputs. Each output has to be supplied with the corresponding message (you could use the
commands disp or fprintf)
(1) A row vector L (use the command transpose) of all eigenvalues – each eigenvalue repeats
as many times as its multiplicity. You should also use closetozeroroundoff function (the code
is below) to ensure that zero eigenvalues will be the 0’s. The basic MATLAB command for
this part is eig(A) which returns a column vector of all eigenvalues of A.
(2) A row vector M of all distinct eigenvalues (no repetition is allowed). The MATLAB
command unique can be used here, which returns the same values of the array but sorted (in
ascending order) and with no repetition.
(3) The sum of multiplicities Q of all eigenvalues (Q has to be equal to n) with the message:
“The sum of multiplicities of the eigenvalues is Q =” (output Q).
(4) For each distinct eigenvalue, the output has to include a “rational” basis W for the
corresponding eigenspace and its dimension. An appropriate command in MATLAB that
creates a rational basis by using the row-operations is null( , ‘ ‘ r ). (Note: command null( )
creates an orthonormal basis for the null space – use help null command in MATAB for more
information). Within the code for this part, BONUS points can be earned (see (5) and (6)
below).
(5) The total sum N of the dimensions of all eigenspaces with the message: “The total sum of
the dimensions of the eigenspaces is N =” (output N). The value of N has to be compared with
Q (or n) and, based on the comparison, one of the two messages has to be displayed: “Yes,
matrix A is diagonalizable since N=Q” or “No, matrix A is not diagonalizable since N<Q”. If
matrix A is not diagonalizable, the program terminates.
(BONUS! 2 points) If A is diagonalizable output the matrix P whose columns are the bases
for the eigenspaces, which you have calculated above, and the diagonal matrix D with the
corresponding eigenvalues on the main diagonal (you might need to sort the elements of L to
ensure that D would be constructer property – use the MATLAB command sort when
calculating L). Verify that the matrix F=closetozeroroundoff( AP PD ∗−∗ ) is the zero
matrix. If it is the case, the output has to be the message: “Great! I got a diagonalization!”
And, if it is not the case, the output will be the message: “Oops! I got a bug in my code.”
(6) (BONUS! 2 points) display the multiplicity of each eigenvalue in part (4). Compare each
multiplicity with the dimension of the corresponding eigenspace and, if they do not match,
display a message: “Matrix A is not diagonalizable since the dimension of the eigenspace is
less than the multiplicity of the corresponding eigenvalue”.
4
A for loop can be used, if needed, along with the MATLAB functions eig, null( ,’r’), size
within your code.
Create a function in MATLAB:
function L = eigen(A)
Please! use the command
format compact (a few blank lines will be printed)
Also, print 2 pages per sheet if possible (it will save a lot of paper!)
Here is a code for closetozeroroundoff:
function B=closetozeroroundoff(A)
[m,n]=size(A);
for i=1:m
for j=1:n
if abs(A(i,j))<10^(-7)
A(i,j) = 0;
end
end
end
B=A;
Run the function eigen(A) on the following matrices
(a) A =
2 2
0 2
; (b)
Delivering a high-quality product at a reasonable price is not enough anymore.
That’s why we have developed 5 beneficial guarantees that will make your experience with our service enjoyable, easy, and safe.
You have to be 100% sure of the quality of your product to give a money-back guarantee. This describes us perfectly. Make sure that this guarantee is totally transparent.
Read moreEach paper is composed from scratch, according to your instructions. It is then checked by our plagiarism-detection software. There is no gap where plagiarism could squeeze in.
Read moreThanks to our free revisions, there is no way for you to be unsatisfied. We will work on your paper until you are completely happy with the result.
Read moreYour email is safe, as we store it according to international data protection rules. Your bank details are secure, as we use only reliable payment systems.
Read moreBy sending us your money, you buy the service we provide. Check out our terms and conditions if you prefer business talks to be laid out in official language.
Read more