0

我需要对形状的两个微分方程进行交互式模拟:

der(x)= A  * x + c1 * y
der(y)= c2 * x + c3 * y

其中 der(x) 是 x 的时间导数

但是我需要能够A在模拟实时运行时进行更改。

我是 matlab 的新手,但我稍微摸索了一下,所以我不是一个完全的菜鸟

4

1 回答 1

1

我过去有两种方法。根据您是使用 Matlab 的ode函数还是您自己的函数,不同的事情可能会更容易。

如果您正在实时绘制图形并使用自己的 ODE 求解器,则可以在单个时间步上运行求解器,绘制结果并使用 akeyPressFcn修改参数。这是我的首选方法,它的工作原理如下:首先打开您的图形窗口

figHandle = figure('KeyPressFcn',@keyControl);

然后运行您的 ODE 求解器,一次一个时间步长并绘制结果。该keyControl函数如下所示:

function keyControl(varargin)
    cmd = get(figHandle,'CurrentCharacter');
    switch double(cmd)
        case 30 % up arrow for example
    end
end

如果您使用的是 Matlab ODE 求解器,您可以使用 anOutputFcn来修改一些数据(尽管这可能有点笨拙)。

于 2013-11-10T21:50:39.697 回答