Skip to content

Problems dealing with matrices

3 messages · halim10-fes, Jeff Newmiller

#
Please apologize me! Earlier I've sent a message erroneously. Following is the 
original problem for which I'm seeking help. Extremely sorry...  


Hi Arun,

Thank you very much for your response. Sorry, if I couldn't explain clearly. I 
think, I should restate the problem to get exactly what I want. Here it goes:

I have 2 matrices and 1 vector, namely,

dcmat<-matrix(c(0.13,0.61,0.25,0.00,0.00,0.00,0.52,0.37,0.09,0.00,0.00,0.00,
                0.58,0.30,0.11,0.00,0.00,0.00,0.46,0.22,0.00,0.00,0.00,0.00,
                0.09),nrow=5,ncol=5)

volmat<-matrix(c(100,0,0,0,0),nrow=5,ncol=1)

volinp<-c(1:40)

What I essentially want to do is to multiply 'dcmat' with 'volmat' and dump 
the output in a new matrix 'vol'. But before that, in the first step, I want 
to add volinp[1] with volmat[1,1]. So, the first column of the output matrix 
'vol' matrix will be:

        [,1]
[1,]   13.13
[2,]   61.61
[3,]   25.25
[4,]    0.00
[5,]    0.00

In the 2nd step, I want to replace 'volmat' with vol[,1] and add volinp[2] 
with vol[1,1]. The new 'volmat' will look like:

        [,1]
[1,]   15.13
[2,]   61.61
[3,]   25.25
[4,]    0.00
[5,]    0.00

Then multiply 'dcmat' with the new 'volmat', and the 2nd column of output 
matrix 'vol' will look like:

        [,2]
[1,]  1.9669
[2,] 41.2665
[3,] 41.2232
[4,] 13.1199
[5,]  2.7775

Then again, replace the 'volmat' with vol[,2], add volinp[3] with vol[1,2] and 
multiply the new 'volmat' with 'dcmat'. This replacement, addition, 
multiplication, and dumping will continue up to the length of 'volinp' and the 
final output matrix 'vol' will be something like:

      [,1]    [,2]      [,3]    ...length(volinp)
[1,] 13.13   1.9669   0.645697  ...
[2,] 61.61  41.2665  24.488389  ...
[3,] 25.25  41.2232  40.419786  ...
[4,]  0.00  13.1199  22.116099  ...
[5,]  0.00   2.7775   7.670905  ...   

Within my limited capacity, I've tried to come up with a solution but failed. 

I'll appreciate your/others' help with gratefulness.

Regards,

Halim

---------------
Md. Abdul Halim
Assistant Professor
Department of Forestry and Environmental Science
Shahjalal University of Science and Technology,Sylhet-3114,
Bangladesh.
Cell: +8801714078386.
alt. e-mail: xou03 at yahoo.com
 
On Sat, 23 Nov 2013 14:10:12 -0800 (PST), arun wrote
description.
volinp<-

  
    
#
I think the following is a pretty literal translation from your 
description. Looks like a linear difference equation with a ramp forcing 
function.

wt <- matrix( c(1,0,0,0,0 ), nrow=5 )
vol <- matrix( NA, nrow=5, ncol=length( volinp ) )
vol[ , 1 ] <- dcmat %*% ( volmat + wt )

for ( idx in volinp[ -1 ] ) {
   vol[ , idx ] <- dcmat %*% ( vol[ , idx-1 ] + idx * wt )
}
On Sun, 24 Nov 2013, halim10-fes wrote:

            
---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil at dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k
---------------------------------------------------------------------------
#
Hi Jeff,

Thank you very much for your response. Your code produced exactly the same as 
I described. I also like your idea of including 'wt' matrix. Can you please 
suggest me if the 'volinp' is not sequential? Consider a new 'volinp', like:  

volinp<-c(0,0.000467,0.002762,0.008621,0.020014,0.038907,0.067094)

How can I deal with this?

Regards,

Halim

On Sun, 24 Nov 2013 00:37:07 -0800 (PST), Jeff Newmiller wrote
the
clearly. I
goes:
matrix(c(0.13,0.61,0.25,0.00,0.00,0.00,0.52,0.37,0.09,0.00,0.00,0.00,
0.58,0.30,0.11,0.00,0.00,0.00,0.46,0.22,0.00,0.00,0.00,0.00,
dump
want
matrix
and
the
failed.
guide.html
guide.html
---------------
Md. Abdul Halim
Assistant Professor
Department of Forestry and Environmental Science
Shahjalal University of Science and Technology,Sylhet-3114,
Bangladesh.
Cell: +8801714078386.
alt. e-mail: xou03 at yahoo.com