Hi Songming
Multiplication can be done as follows:
parameter
vmaxt(j,k) Transposed vmax,
pmaxvmax(i,k) Matrix multiplicationof pmax and vmax;
vmaxt(j,k) = vmax(k,j);
pmaxvmax(i,k) = prod(j, pmax(i,j) * vmaxt(j,k));
display pmaxvmax;
The division of pmax by vmax is not defined, but I assume you want to have the vector divided by the first value of vmax and then by the second value.
parameter
pmaxvmaxdiv(j,i,k) Division of pmax by vmax;
pmaxvmaxdiv(j,i,k) = pmax(i,j)/vmax(k,j);
display pmaxvmaxdiv;
As set j only has one element, you could also write
parameter
pmaxvmaxdiv(i,k) Division of pmax by vmax;
pmaxvmaxdiv(i,k) = pmax(i,â€j1â€)/vmax(k,â€j1â€);
display pmaxvmaxdiv;
Cheers
Renger
_________________________________________________________________
Renger van Nieuwkoop, PhD
Department of Management, Technology and Economics | Director
Centre for Energy Policy and Economics | Modelworks
Swiss Federal Institute of Technology Zurich | Gewerbestrasse 15
Zürichbergstrasse 18, CH-8032 Zurich | CH-3600 Thun
Mobile: +41 79 818 53 73
E-Mail:
rengerv@vannieuwkoop.ch
Blog:
http://blog.modelworks.ch
From:
gamsworld@googlegroups.com [mailto:
gamsworld@googlegroups.com] On Behalf Of Songming Zhu
Sent: Dienstag, 13. Januar 2015 02:37
To:
gamsworld@googlegroups.com
Subject: Re: How to compute matrix arithmetic in Gams
Hello,
How to compute matrix A multiplied by matrix B in Gams?
And how to compute matrix A divided by matrix B in Gams?
In the example below, how can I compute matrix pmax divided by matrix vmax in Gams?
sets
i /i1*i5/
j /j1/
k /k1*k2/
scalars
b1 /5/
b2 /10/
b3 /4/
b4 /8/
b5 /6.67/
d1 /0/
d2 /6.83/
d3 /-1.25/
d4 /7.06/
d12
d23
d34
d14
d24
H;
d12=d2-d1;
d23=d3-d2;
d34=d4-d3;
d14=d4-d1;
d24=d4-d2;
table
p(j,i)
i1 i2 i3 i4 i5
j1 2.23 -1.95 -1.95 2.23 0.28;
table
v(j,k)
k1 k2
j1 0.77 -0.64;
parameters
pmax
vmax;
pmax(i,j)=p(j,i);
vmax(k,j)=v(j,k);
display pmax,p,vmax,v;
Sincerely
--
To unsubscribe from this group and stop receiving emails from it, send an email to
gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to
gamsworld@googlegroups.com.
Visit this group at
http://groups.google.com/group/gamsworld.
For more options, visit
https://groups.google.com/d/optout.
--
To unsubscribe from this group and stop receiving emails from it, send an email to
gamsworld+unsubscribe@googlegroups.com.
To post to this group, send email to
gamsworld@googlegroups.com.
Visit this group at
http://groups.google.com/group/gamsworld.
For more options, visit
https://groups.google.com/d/optout.