math - 简单的 MATLAB/Octave 模拟

标签 math matlab simulation octave

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

我有以下系统(或 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/

相关文章:

algorithm - Pagerank - 麻烦

actionscript-3 - 找到满足特定范围的抛物线的角度和速度

algorithm - 寻找连续的数列

ruby - 如何在数学解析器(ruby)中实现加法运算符

matlab:如果 x > 1 可以产生 NaN 的快速函数

python - 需要 SimPy 模拟可用性方面的帮助

arrays - 在 Matlab 中创建二进制矩阵,报告数量不断增加

python - 用小波滤波心电信号

java - 我正在尝试在java中模拟直接映射的缓存。关于使用哪种数据结构来表示缓存有什么想法吗?

algorithm - 连续物理引擎的碰撞检测技术