对于任何在这方面有一定经验的人来说,这应该是一个非常简单的问题,但我对此还是个新手。
我有以下系统(或 here is an image with better resolution ):
alt text http://img199.imageshack.us/img199/2140/equation1.png
给定以下输入:
u = min(2 - t/7.5, 2*(mod(t, 2) < 1));
我需要绘制系统 y 的输出。
我正在描述具有以下功能的系统:
function xprime = func(t, x)
u = min(2 - t/7.5, 2*(mod(t, 2) < 1));
xprime = [
x(2);
x(3);
0.45*u - 4*x(3)^2 - x(2)*x(1) - 4*x(2) - 2*x(1);
x(5);
sin(t) - 3*x(5)*x(1);
];
并使用 ode23
进行模拟,如下所示:
[tout, xout] = ode23(@func, [0 15], [1.5; 3; -0.5; 0; -1])
模拟后,xout
将有五列。我的问题是:我怎么知道哪个是 y 系统的输出?
编辑:好的,简单来说,我想像这样绘制解决方案:
a = 1 % what goes here? 1, 2, 3, 4 or 5?
plot(tout, xout(:,a))
最佳答案
对应于 y 的那个,当然是 x(1)。
如果将代码与方程式进行比较,您会发现 x(1) 出现在代码中方程式中出现 y 的每个地方。那将是我最好的猜测。
关于math - 简单的 MATLAB/Octave 模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2129367/