MatLab ode45解释

时间:2015-10-06 14:40:49

标签: matlab project explain ode45

对于一个项目我需要理解一个matlab代码,但由于我很新,我真的不明白发生了什么。我有一个函数文件和一个脚本文件。

功能:

function dxdt = sniffer_ode(t,x,par,tu)

X = x(1);

R = x(2);


k1 = par(1);

k2 = par(2);

k3 = par(3);

k4 = par(4);


S = interp1(tu(:,1),tu(:,2),t); 


dxdt(1) = k3*S-k4*X;

dxdt(2) = k1*S-k2*X*R;


dxdt = dxdt(:); %dxdt should be column

和脚本文件:

%sniffer
close all

%initial conditions:
X0=0; R0=0;
x0=[X0 R0];
%parameters:
k1=1; k2=1; k3=1; k4=1;
par=[k1 k2 k3 k4];
%input:
tu=[ 0   , 0
     1   , 0
     1.01, 1
    20   , 1];

[t,x] = ode45(@sniffer_ode,[0 20],x0, [],par,tu);

plot(t,x); 

所以问题是:发生了什么?我还需要在与X和R相同的图中绘制S.我该怎么做?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

这是一个非常基本的Matlab问题。您tons of informationrequested topic就是slides。我认为这些interp1将帮助您走上正确的道路。

然而,快速解释;您提供的第一个代码是描述您的常微分方程的函数。此函数必须始终为x' = f(t,x,...)形式。此处t是时间,x是州。在状态之后(在点...的位置),您可以定义其他输入参数,例如在您的ode函数中完成的。此外,interpolates函数search engine提供了数据。

您提供的第二个代码是您在Matlab中启动的代码。定义参数,然后求解和绘制常微分方程。

如果您有任何其他问题,我建议您先使用 tags open in a new window/tab? {{44}} {{55}}

I'm making a webpage with a lot of links, which should all open in a new tab using target="_blank".

Is it possible to apply this to all <a> tags by default, so I can spare the time by not inserting it a every link?