5

对于在这方面有一定经验的人来说,这应该是一个非常简单的问题,但我对此还是很陌生。

我有以下系统(或者这里是分辨率更高的图像):

替代文字 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))
4

2 回答 2

3

当然,对应于 y 的那个似乎是 x(1)。

如果您将代码与方程式进行比较,您可以看到 x(1) 出现在代码中 y 出现在方程式中的每个位置。那将是我最好的猜测。

于 2010-01-24T23:37:14.110 回答
1

[T,Y,TE,YE,IE] = ode23(odefun,tspan,y0,options)

下表列出了求解器的输出参数。

  • T 时间点的列向量。
  • Y 解数组。Y 中的每一行对应于 T 的相应行中返回的某个时间的解。
  • TE 事件发生的时间。
  • YE 事件发生时的解决方案。
  • IE 消失的事件函数的索引 i。

伊斯坦菲泽斯!

于 2010-01-24T23:28:43.053 回答