[R] How to define new matrix based on an elementary row oper
David Winsemius
dwinsemius at comcast.net
Sat Aug 28 16:59:47 CEST 2010
On Aug 28, 2010, at 10:12 AM, (Ted Harding) wrote:
> On 28-Aug-10 13:15:47, Cuckovic Paik wrote:
>> Thank all help help. Ted's intuitive single step definition
>> is what I want.
>> I try to teach elementary Linear Algebra using R to manupilate
>> matrices.
>> Since my students have no programming experience at all, any fancy
>> and
>> muliple step definition in matrix row operation will confuse them.
>> Again, I appreciate the suggestions from all of you!
>> --
>
> Just to avoid any misunderstanding: My contribution was an explanatory
> comment to Gabor's solution. It was Gabor who gave the solution!
>
> But, while I am at it, if you are teaching elementary Linear Algebra
> and matrix manipulation, note that the desired result (rows 1, 2 & 4
> of A, with row 3 = 2*(row 1 of A) + (row 3 of A)) can be obtained
> using a matrix product:
>
> 1 0 0 0 %*% 1 5 9 13
> 0 1 0 0 2 6 10 14
> 2 0 1 0 3 7 11 15
> 0 0 0 1 4 8 12 16
Which was exactly what my solution was doing, since it becomes in
expanded form :
D2 <- I %*% A2 + matrix (c(0,0,2,rep(0,13)), 4) %*% A2 =
1 0 0 0 %*% 1 5 9 13 + 0 0 0 0 %*% 1 5 9 13
0 1 0 0 2 6 10 14 0 0 0 0 2 6 10 14
0 0 1 0 3 7 11 15 2 0 0 0 3 7 11 15
0 0 0 1 4 8 12 16 0 0 0 0 4 8 12 16
And A %*% C + B %*% C = (A+B) %*% C and
1 0 0 0 + 0 0 0 0 = 1 0 0 0
0 1 0 0 0 0 0 0 0 1 0 0
0 0 1 0 2 0 0 0 2 0 1 0
0 0 0 1 0 0 0 0 0 0 0 1
There are other elementary operations that can be expressed as matrix
operations:
Swapping rows 2 and 3 for instance by pre-multiplication by:
1 0 0 0
0 0 1 0
0 1 0 0
0 0 0 1
== matrix (c(1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1), 4)
Or swapping cols 2 and 3 by post multiplication with the same matrix.
--
David.
>
> i.e. (in R):
>
> (diag(nrow(A)) + c(0,0,2,0, 0,0,0,0, 0,0,0,0, 0,0,0,0))%*%A
> # [,1] [,2] [,3] [,4]
> # [1,] 1 5 9 13
> # [2,] 2 6 10 14
> # [3,] 5 17 29 41
> # [4,] 4 8 12 16
>
> (as before).
> Ted.
>
> --------------------------------------------------------------------
> E-Mail: (Ted Harding) <Ted.Harding at manchester.ac.uk>
> Fax-to-email: +44 (0)870 094 0861
> Date: 28-Aug-10 Time: 15:12:03
> ------------------------------ XFMail ------------------------------
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
More information about the R-help
mailing list