Re: Help needed: defining a function of a vector variable
- To: mathgroup at smc.vnet.net
- Subject: [mg18056] Re: Help needed: defining a function of a vector variable
- From: Brian Higgins <bghiggins at ucdavis.edu>
- Date: Tue, 15 Jun 1999 01:43:18 -0400
- Delivery-date: Tue Jun 15 10:26:55 1999
- Organization: Deja.com - Share what you know. Learn what you don't.
- References: <7jub1a$56u@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
In article <7jub1a$56u at smc.vnet.net>,
iaz at cs.umd.edu (Ilya Zavorine) wrote:
> Suppose I have an object (e.g. a matrix) which I want to consider as a
function
> of several variables. For instance, suppose the matrix is diagonal of
size N and the
> variables are its diagonal elements. Logically I can also consider the
same matrix
> as a function of a single N-vector variable which would contain the
diagonal elements.
> How should I define my matrix? Whatever the definition is, it has to
satisfy 2
> requirements:
>
> (1) I need to be able to assign values both to specific variables and
to the
> whole vector.
>
> (2) The definition should be the same for any N, i.e. if I want to go
from N = 2 to N = 3
> or even to N = 10, I do not want to rewrite the whole thing from
scratch.
>
> One way of defining a matrix would be something like this:
>
> M[d1_,d2_,d3_] = DiagonalMatrix[{d1,d2,d3}];
>
> Clearly, this type of definition does not really satisfy either
requirement since it is
> difficult to assign a value to the vector {d1,d2,d3} as a whole. Also,
this definition
> has to be rewritten every time I change N.
>
> I've also tried doing something like this:
>
> Size = 3;
> M[d_] = Array[d,Size];
>
> This satisfies (2) but not (1). In fact Mathematica does not seem to
relate the variable d
> in the left-hand side of the definition to the variable d inside
Array.
>
> Is there a better way of doind this?
>
> Thanks for any help,
>
> Ilya
>
>
Ilya,
Try this:
M2[d_List]:=DiagonalMatrix[d]
Here is the result for alist of 2 elements
In[11]:=M2[{a,b}]
Out[11]={{a,0},{0,b}}
and her for 3 elements
In[12]:=M2[{a,b,c}]
Out[12]={{a,0,0},{0,b,0},{0,0,c}}
Ch
Sent via Deja.com http://www.deja.com/
Share what you know. Learn what you don't.