Matlab project 3 | Computer Science homework help

MATLAB PROJECT 3Please open and read the file Instructions on Project, placed on Project Assignment page, prior to working on the Project: “How to Create a Diary file” and “How to create and Run Function in MATLAB”.Failure to fulfill the requirements on the format will result in a loss of points.BEGIN with creating a diary file Project3.Note: All exercises in this project will be placed in this diary file. Each exercise in the diary file should begin with the line% Exercise#Please use the commandformat compactto suppress extra line-feeds.Part I. Subspaces & Bases Difficulty: ModerateExercise 1 (6 points) In this exercise, you will be given two matrices A and B. You will write a set of commands in MATLAB that will determine whether the Col A and Col B are subspaces of the same space m. If yes, your code has to determine if dim ColA = dim ColB and, finally, whether Col A = Col B. (Obviously, when two subspaces have the same dimension, it might not be true that they are the same set. For example, a line through the origin in 3 is a one dimensional subspace of 3 but two lines might be different sets – the sets are equal if they have the same elements.)Use MATLAB function rank within your code. Remember, the rank of a matrix can be defined as the dimension of the column space of the matrix.INSTRUCTIONS:**In MATLAB, createfunction [ ] = subspace(A,B)Begin the function with comparing the numbers of rows in matrices A and B. If the numbers of rows are different, Col A and Col B are subspaces of different spaces and cannot be equal – the program terminates (the command return terminates the program).A possible code for this part with an output message is:2m=size(A,1);n=size(B,1);if m ~ = ndisp(‘Col A and Col B are subspaces of different spaces’)returnelsefprintf(‘Col A and Col B are subspaces of R^ % i n’, m)end(Note: “n” in “% i n” has nothing to do with size(B,1) – it is a part of the syntax for the command “fprintf”.)If Col A and Col B are subspaces of the same space, the program will continue:You will calculate the dimensions of Col A and Col B which should be k and l, respectively, and display them in your message. (I suggest using “fprintf” command.).Next, you will compare k and l and, if they are equal, compare their common value with the rank of a certain matrix that you will create using matrices A and B in order to decide whether Col A = Col B. After the comparison is made in your code, the output will be one of the three possible messages:“k ~ = l, the dimensions of Col A and Col B are different”,“k = l, the dimensions of Col A and Col B are the same, but Col A ~ = Col B”,or“Col A = Col B”.Finally, you will compare k and l with m and return messages that will specify whether Col A and Col B are all m for the corresponding m or not. An example of the code of one of the four possible output messages is:fprintf(‘k = m (% i = % i) Col A is all R^% i n’, k, m, m)**Type the function subspace in your diary file**Run the function subspace(A,B) on the following matrices:(a) A=24236958273942216334−−−−−−−−−− , B = rref(A)(b) A= magic(4), B = eye(4) (c) A= magic(4), B = eye(3) (d) A = magic (5); B=eye(5)%Comment in your diary file, based on the output for the matrices in part (a), on a possible effect of elementary row operations on the column space of a matrix.3Exercise 2 (6 points) In this exercise you will be given an mn× matrix A. Your program has to create two bases (both are named B): one – for Col A and one – for m if Col A m≠, by using the columns of the given matrix A.Your program should allow a possibility that the columns of A are not linearly independent, that is, not all columns of A will be in a basis. The set of columns of A can be “shrunk” to a basis for Col A by using the function shrink. Here is the code:function B = shrink(A)[~, pivot] = rref(A);B = A(: , pivot);**Create the function B = shrink(A) in MATLAB.**Type the function shrink in your diary file**Run each of the commands listed below (separately) on the matrix A=magic(4)[~, pivot] = rref(A)B = A(: , pivot)% Place a comment in your diary file on the output for each of the commands.**Create the function in MATLABfunction B=basis(A)The function should start with the commands:m=size(A,1);A=shrink(A);sprintf(‘a basis for Col A is n’)B=AThis part will give you as an answer a basis B for Col A.Then, you will be using a conditional MATLAB statement within your code to check whether the matrix B, that you found, is a basis for m (or, the same, whether Col A = m). If yes, the program breaks with the message:sprintf(‘a basis for R^% i is n’, m)(it will return your B)If B is not a basis for m, you should expand B to a basis for m. Use the matrices B and eye(m) and the command shrink to create a new matrix D, which will be a basis for m. (A basis has to contain all vectors from B and some vectors from the matrix eye(m)). You should also write a set of commands within your code to verify whether the new matrix D is, indeed, a basis for m – the command rank will be helpful. If your code confirms that D is a basis for m, the output message should be:sprintf(‘a basis for R^% i is n’, m)B=D;4otherwise, the program breaks with a message similar to that:disp (‘What? It is not a basis!?’)**Type the function basis within the diary file.**Run the function B=basis(A) for the following matrices:(a) A = 10000001 (b) A= 24481200 (c) A=magic(5) (d) A= magic(4)Part II. Isomorphism & Change of Basis Difficulty: HardExercise 3 (8 points) In this exercise you will be given a set of polynomials P. You will determine whether it is a basis for the corresponding space of the polynomials. This could be done by using the isomorphism between a linear space of polynomials and n, for the corresponding n. If B is a basis, your function will (1) find a vector y of the P-coordinates of the polynomial Q (originally Q is written through the standard basis); and (2) write a given polynomial R through the standard basis if the vector r of its P-coordinates is the given.**First, you should create the following function in MATLAB that will help you to run the code and also will be used later for a presentation of a matrix with some entries that are very close to 0:function B=closetozeroroundoff(A)[m,n]=size(A);for i=1:mfor j=1:nif abs(A(i,j))