Dynamical System Viewer

版本 1.2.0.0 (15.3 KB) 作者: Henry Harrison
GUI that plots dynamical system flow fields (and more) with sliders for adjusting parameters.
1.8K 次下载
更新时间 2013/3/15

查看许可证

sysViewer Dynamical system graphical interface.
h = sysViewer(oPar, cPar, fcn, typ) builds a GUI for viewing the
effects of parameter changes on a one- or two-dimensional dynamical
system.

oPar and cPar are two-column cell arrays that define the order
parameter and control parameter(s), respectively. The first column
contains parameter names (strings to be typeset in latex). The second
column contains 1x2 vectors of parameter's range. This vector defines
plot axes limits for the order parameter and slider limits for the
control parameters.

The system is defined by the function handle fcn. For one-dimensional
systems, this should be a function with two inputs and one output. The
first input is system state, which will be a scalar in a one-
dimensional system. The second input is a vector of control parameter
values. The output of fcn can be either the rate of change of the order
parameter (in which case fcn is the flow equation), or the system
potential (in which case fcn is the potential function). Which function
is supplied can be indicated by the last input typ, one of the strings
'flow' or 'potential'. If typ is empty or omitted, 'flow' is the
default.

For two-dimensional systems defined with a flow, fcn should be a cell
array containing two function handles, each outputting the rate of
change along one dimension. Each function should take three inputs; the
first two are scalar values of the order parameters, the third is a
vector of control parameters. For two-dimensional systems defined with
a potential, fcn should take inputs as above and output a scalar.

The output h is a struct containing handles to the graphics objects in
the GUI. Intended only for advanced tweaking or troubleshooting.

sysViewer(..., defs) initializes the parameter sliders with the default
values in vector defs.

sysViewer(..., 'vectorize') speeds up computation for functions that
cannot be evaluated with a vector. In fact, any number of trailing
arguments will be passed to chebfun. See CHEBFUN for more options
(CHEBFUN2 and CHEBFUN2V for two-dimensional options).

--------
Examples:
------
One-dimensional
---
sysViewer({'\phi' [-pi pi]}, ...
{'b/a' [0 1]; '\Delta\omega' [-2 2]}, ...
@(x,c) c(2)*x-cos(x)-c(1)*cos(2*x), ...
'potential');

sysViewer({'\phi' [-pi pi]}, ...
{'b/a' [0 1]; '\Delta\omega' [-2 2]}, ...
@(x,c) c(2)-sin(x)-2*c(1)*sin(2*x), ...
'flow');

sysViewer({'\phi' [-pi pi]}, ...
{'b/a' [0 1]; '\Delta\omega' [-2 2]; 'c' [0 .5]; 'd' [0 .5]}, ...
@(x,c) c(2)*x-cos(x)-c(1)*cos(2*x)+c(3)*sin(x)+c(4)*sin(2*x), ...
'potential');

sysViewer({'\phi' [-pi pi]}, ...
{'b/a' [0 1]; '\Delta\omega' [-2 2]; 'c' [0 .5]; 'd' [0 .5]}, ...
@(x,c) c(2)-sin(x)-2*c(1)*sin(2*x)+c(3)*cos(x)+2*c(4)*cos(2*x), ...
'flow');
------
Two-dimensional
---
sysViewer('x' [-5 5]; '\dot{x}' [-5 5]}, ...
[{'\alpha'; '\beta'; '\delta'} repmat({[-5 5]}, 3, 1)], ...
{@(x,dx,r) dx, @(x,dx,r) -r(1).*x.^3 - r(2).*x - r(3).*dx}, ...
'flow')

--------
Dependencies (if missing, user will be prompted to download and install):
GUI Layout Toolbox
sliderPanel
uibutton
Chebfun:
- Stable version (one-dimensional systems only)
- Alpha release (required for viewing two-dimensional systems)
(as of March 14 2013)

引用格式

Henry Harrison (2024). Dynamical System Viewer (https://www.mathworks.com/matlabcentral/fileexchange/40812-dynamical-system-viewer), MATLAB Central File Exchange. 检索时间: .

MATLAB 版本兼容性
创建方式 R2012b
兼容任何版本
平台兼容性
Windows macOS Linux
类别
Help CenterMATLAB Answers 中查找有关 Nonlinear Systems 的更多信息

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
版本 已发布 发行说明
1.2.0.0

Added an acknowledgement I had left out.

1.1.0.0

Minor change in a user message.

1.0.0.0