MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

RE: Multiplying Elements of arrays: Inner product

  • To: mathgroup at smc.vnet.net
  • Subject: [mg68553] RE: [mg68497] Multiplying Elements of arrays: Inner product
  • From: "David Park" <djmp at earthlink.net>
  • Date: Wed, 9 Aug 2006 04:20:25 -0400 (EDT)
  • Sender: owner-wri-mathgroup at wolfram.com

Gopinath,

I'm wondering why you use a complicated method to fill the arrays. Why not
just type them in?

ab = {1, 2, 3};
cd = {{1, 2, 3}, {b[2, 1], 1, b[2, 3]}, {b[3, 1], b[3, 2], 1}};

Then you can multiply a matrix time a vector by

cd.ab
{14, 2 + b[2, 1] + 3 b[2, 3], 3 + b[3, 1] + 2 b[3, 2]}

David Park
djmp at earthlink.net
http://home.earthlink.net/~djmp/


From: Gopinath Venkatesan [mailto:gopinathv at ou.edu]
To: mathgroup at smc.vnet.net

I have to dot multiply cd (3x3 matrix) by ab (3x1 column vector). Also I
defined values for the first row and the diagonal elements of cd matrix, as
well as defined the column vector ab with values. Now ab = {1, 2, 3}, and cd
= {{1, 2, 3}, {b[2,1], 1, b[2,3]}, {b[3,1], b[3,2], 1}}.

I expect the ef to be {14, 2+b[2,1]+3b[2,3], 3+b[3,1]+2b[3,2]} column
vector. But it returns the first element in unevaluated form as 1.1+2.2+3.3.
Why is this so? How to make it evaluate them? Thanks for the suggestions.
Please see below for my example.

ab = Array[a, 3];
cd = Array[b, {3, 3}];
ef = Array[c, 3];
Do[cd[[i, i]] = 1, {i, 1, 3}];
cd[[1, 2]] = 2;
cd[[1, 3]] = 3;
Do[ab[[i]] = i, {i, 1, 3}];
Do[ef[[i]] = 0, {i, 1, 3}];
Do[ef[[i]] = ef[[i]] + cd[[i, k]].ab[[k]], {i, 1, 3}, {k, 1, 3}];

Gopinath



  • Prev by Date: Re: Multiplying Elements of arrays: Inner product
  • Next by Date: Re: Multiplying Elements of arrays: Inner product
  • Previous by thread: Re: Multiplying Elements of arrays: Inner product
  • Next by thread: Re: Multiplying Elements of arrays: Inner product