Code covered by the BSD License
-
ell_center_ode(t, x, mydata, ...
% ELL_CENTER_ODE - ODE for the center of the reach set.
-
ell_demo1
-
ell_demo2
-
ell_demo3
-
ell_eesm_ode(t, X, l0, mydata...
% ELL_EESM_ODE - ODE for the shape matrix of the external ellipsoid.
-
ell_eesm_ode(t, X, l0, mydata...
% ELL_EEDIST_ODE - ODE for the shape matrix of the external ellipsoid
-
ell_enclose(V)
% ELL_ENCLOSE - computes minimum volume ellipsoid that contains given vectors.
-
ell_fusionlambda(a, q1, Q1, q...
% ELL_FUSIONLAMBDA - function whose root in the interval (0, 1) determines
-
ell_iesm_ode(t, X, l0, mydata...
% ELL_IEDIST_ODE - ODE for the shape matrix of the internal ellipsoid
-
ell_iesm_ode(t, X, xl0, l0, m...
% ELL_IESM_ODE - ODE for the shape matrix of the internal ellipsoid.
-
ell_iesm_ode(t, X, xl0, l0, m...
% ELL_IESM_ODE - ODE for the shape matrix of the internal ellipsoid.
-
ell_inv(A)
% ELL_INV - computes matrix inverse treating ill-conditioned matrices properly.
-
ell_nlfnlc(objf, x0, nlcf, Op...
% ELL_NLFNLC - computes minimum of nonlinear function with nonlinear constraints.
-
ell_ode_solver(fn, t, x0, var...
% ELL_ODE_SOLVER - caller for particular ODE solver.
-
ell_plot(x, varargin)
-
ell_regularize(Q, delta)
% ELL_REGULARIZE - regularization of singular matrix.
-
ell_simdiag(A, B)
% ELL_SIMDIAG - computes the transformation matrix that simultaneously
-
ell_square_facets(epoints_num...
% ELL_SQUARE_FACETS - generates square facets to be used in PATCH function call.
-
ell_stm_ode(t, x, mydata, n, ...
% ELL_STM_ODE - ODE for state transition matrix.
-
ell_triag_facets(epoints_num,...
% ELL_TRIAG_FACETS - generates triangular facets to be used in PATCH function call.
-
ell_unitball(n)
% ELL_UNITBALL - creates unit ball object
-
ell_valign(v, x)
% ELL_VALIGN - given two vectors in R^n, computes orthogonal matrix that rotates
-
ell_value_extract(X, t, dims)
% ELL_VALUE_EXTRACT - extracts matrix value from ppform or vector array.
-
ellipsoids_init(varargin)
% ELLIPSOIDS_INIT - initializes Ellipsoidal Toolbox.
-
hyperplane2polytope(HA)
% HYPERPLANE2POLYTOPE - converts array of hyperplanes into polytope
-
install(root)
% Install Ellipsoidal Toolbox.
-
polytope2hyperplane(P)
% POLYTOPE2HYPERPLANE - converts given polytope object into the array
-
ellipsoid(varargin)
% ELLIPSOID - constructor of the ellipsoid object.
-
hyperplane(v, c)
% HYPERPLANE - creates hyperplane structure (or array of hyperplane structures).
-
linsys(A, B, U, G, V, C, W, D...
% LINSYS - constructor for linear system object.
-
reach(lsys, X0, L0, T, Option...
% REACH - computes reach set approximation of the linear system for the given
-
View all files
from
Ellipsoidal Toolbox (ET)
by Alex Kurzhanskiy
Implementation of the ellipsoidal calculus and ellipsoidal methods for reachability analysis.
|
| ellipsoid(varargin)
|
function [E] = ellipsoid(varargin)
%
% ELLIPSOID - constructor of the ellipsoid object.
%
%
% Description:
% ------------
%
%
% E = ELLIPSOID Creates an empty ellipsoid.
% E = ELLIPSOID(Q) Creates an ellipsoid with shape matrix Q, centered at 0.
% E = ELLIPSOID(q, Q) Creates an ellipsoid with shape matrix Q and center q.
%
% Here q is a vector in R^n, and Q in R^(nxn) is positive semi-definite matrix.
% These parameters can be accessed by PARAMETERS(E) function call.
% Also, DIMENSION(E) function call returns the dimension of the space
% in which ellipsoid E is defined and the actual dimension of the ellipsoid;
% function ISDEGENERATE(E) checks if ellipsoid E is degenerate.
%
%
% Output:
% -------
%
% E = { x : <(x - q), Q^(-1)(x - q)> <= 1 } - ellipsoid.
%
%
% See also:
% ---------
%
% ELLIPSOID/CONTENTS.
%
%
% Author:
% -------
%
% Alex Kurzhanskiy <akurzhan@eecs.berkeley.edu>
%
global ellOptions;
if ~isstruct(ellOptions)
evalin('base', 'ellipsoids_init;');
end
if nargin == 0
E.center = [];
E.shape = [];
E = class(E, 'ellipsoid');
return;
end
if nargin > 2
error('ELLIPSOID: arguments must be center (optional) and shape matrix.');
end
if nargin == 1
Q = real(varargin{1});
[m, n] = size(Q);
q = zeros(n, 1);
k = n;
l = 1;
else
q = real(varargin{1});
Q = real(varargin{2});
[k, l] = size(q);
[m, n] = size(Q);
end
if l > 1
error('ELLIPSOID: center of an ellipsoid must be a vector.');
end
if (m ~= n) | (min(min((Q == Q'))) == 0)
error('ELLIPSOID: shape matrix must be symmetric.');
end
% We cannot just check the condition 'min(eig(Q)) < 0'
% because the zero eigenvalue may be internally represented
% as something like -10^(-15).
mev = min(eig(Q));
if (mev < 0)
%tol = n * norm(Q) * eps;
tol = ellOptions.abs_tol;
if abs(mev) > tol
error('ELLIPSOID: shape matrix must be positive semi-definite.');
end
end
if k ~= n
error('ELLIPSOID: dimensions of the center and the shape matrix do not match.');
end
E.center = q;
E.shape = Q;
E = class(E, 'ellipsoid');
return;
|
|
Contact us at files@mathworks.com