shoot

Purpose

Compute the maximal value of a multiplier in the desired direction.

Syntax

alpha = S.shoot(x)
alpha = shoot(S, x)

Description

Compute the maximal value of the multiplier ../../../../../../fig/mpt/modules/geometry/sets/@YSet/shoot1.png in the direction given by the point ../../../../../../fig/mpt/modules/geometry/sets/@YSet/shoot2.png by solving an optimization problem

../../../../../../fig/mpt/modules/geometry/sets/@YSet/shoot4.png

This problem is usually referred as shooting towards the point x because the point ../../../../../../fig/mpt/modules/geometry/sets/@YSet/shoot3.png should lie on the edge of the set.

Input Arguments

S

A convex set described as YSet object.

Class: YSet

x

A point given as vector. Note that for YSet with symmetric matrix variable, the point x must be given as vector with symmetric terms.

Class: double

Output Arguments

alpha

The optimal value of the multiplier alpha such that alpha*x lies inside the Set. If the set is empty, not-a-number is returned. For unbounded direction, an inf-value is returned.

Class: double

Example(s)

Example 1

Create a set S in 2D as follows.
x = sdpvar(2,1);

F = [x'*x-2*x<=1; x(2)+x(1)<=1];

S = YSet(x,F);
Compute the multiplier in the direction of the point v=[0.7; 0.7].
v = [0.7; 0.7];

alpha = S.shoot(v)
alpha =

         0.714285714284946

The computed extreme point is lying the edge We can plot the set and see the points v, alpha*v.
 S.plot; hold on; text(v(1),v(2),'\bf x'); text(alpha*v(1),alpha*v(2),'\bf x');
Plotting...
25 of 40

../../../../../../fig/mpt/modules/geometry/sets/@YSet/shoot_img_1.png

See Also

contains, extreme, project


© 2010-2013 Colin Neil Jones: EPF Lausanne, colin.jones@epfl.ch

© 2010-2013 Martin Herceg: ETH Zurich, herceg@control.ee.ethz.ch