kaynama
unread,Apr 5, 2011, 3:37:29 PM4/5/11Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to ellipsoids, kay...@ece.ubc.ca
Hi,
I was trying to compute the backward reach set of a switched system
that I ran into an issue with the function "evolve". Let's say we try
to iteratively evolve an already computed reach set twice (or more).
If the first reach set is computed using only the EXTERNAL
approximating ellipsoids, then an error is generated when evolving the
output of a previously applied evolve function. Interestingly,
there's no error when either internal or both external and internal
approximating ellipsoids are used for the computation of the first
reach set. I'm providing a trivial example below to re-generate the
error. Any ideas as to why this happens?
Regards,
Shahab
Consider a simple example in which the dynamics change 3 times within
the backward time interval T=[1 0]:
n = 2; m = 1;
a1 = rand(n);
b1 = rand(n,m);
a2 = rand(n);
b2 = rand(n,m);
a3 = rand(n);
b3 = rand(n,m);
op.approximation = 0; % 0:external, 1:internal, 2:both
L0 = rand(n,5) - .5;
U = ell_unitball(m);
X0 = ell_unitball(n);
lsys1 = linsys(a1, b1, U, [], [], []);
rs1 = reach(lsys1, X0, L0, [1 0.7], op);
lsys2 = linsys(a2, b2, U, [], [], []);
rs2 = evolve(rs1, 0.4, lsys2);
lsys3 = linsys(a3, b3, U, [], [], []);
rs3 = evolve(rs2, 0, lsys3); %The error is generated here
??? Index exceeds matrix dimensions.
Error in ==> reach.evolve at 747
l0 = RS.initial_directions(:, ii);