Determinant and Inverse problem

조회 수: 11 (최근 30일)
Ben
Ben 2015년 10월 30일
댓글: Geoff Hayes 2015년 11월 1일
I need help with the following; a function takes a generic 2×2 matrix as input, and returns two outputs: the determinant and the inverse. Also, if the determinant is zero, the inverse is set to be an empty matrix (value []), or if the determinant is non-zero, then it calculates the inverse. This needs to be done without using det() and inv() functions. Thank you for your time.
  댓글 수: 7
Geoff Hayes
Geoff Hayes 2015년 11월 1일
Ben - a link for the algorithm in finding the inverse of a 2x2 matrix was posted in @Johannes' comment. Look at the Shortcut for 2x2 matrices and you should be able to figure out what is missing. (You have the determinant, so half the work is complete.)
Ben
Ben 2015년 11월 1일
Geoff - I have attached my .m file. I don't understand whether I am required to maniuplate individual matrix values using code, but my code works anyway (I hope!). Thanks everyone for your time.

댓글을 달려면 로그인하십시오.

답변 (1개)

Jan
Jan 2015년 11월 1일
편집: Jan 2015년 11월 1일
You want to determine the inverse of a 2x2 matrix. So write down the definition paper:
[a, b; c, d] * [ai, bi; ci, di] = [1, 0; 0, 1]
This can be written as 4 equations with 4 unknowns and you can solve this manually. You get e.g.:
inv_A(2,2) = -A(1,2) / (A(1,1) * A(2,2) - A(1,2) * A(2,1))
Perhaps you recognize some parts of this expression?
  댓글 수: 6
Ben
Ben 2015년 11월 1일
편집: Ben 2015년 11월 1일
Is the 3x3 better? My 2x2 is broken now because I still can't get my head around the diagonal code that I'd have to write for a random 2x2 matrix (when you flip 1,1 and 2,2 and make 1,2 and 2,1 negative)
Geoff Hayes
Geoff Hayes 2015년 11월 1일
Ben - I don't understand the diagonal code in your 2x2 matrix inverse function which is still hard-coded as
DiagonalA2by2 = [7 -3; -8 2];
Again, look at the link posted by @Johannes in his comment. It will tell you exactly how to invert a 2x2 matrix that has the form of
A = [a b
c d]
where a, b, c, and d are real numbers. Start with that before proceeding to the 3x3 case (which your code still overwrites the input matrix with A3by3 = [1 2 3; 0 4 5; 1 0 6]).

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by