【发布时间】:2014-05-03 10:14:14
【问题描述】:
我被分配了以下任务并且卡住了。显然我正在返回一个长度为 4 的向量,而不是它应该是 2 的向量。
我试图绘制的微分方程是: dv/dt=v*(1-v)(v-alpha)-w+C 和 dw/dt=varepsilon(v-gamma*w)
function dydt = fun (v, alpha, w, C, gamma, varepsilon)
dydt = [v*(1-v)*(v-alpha)-w+C;varepsilon*(v-gamma*w)]
end
这是 Fitzhugh-Nagumo 模型 (http://en.wikipedia.org/wiki/FitzHugh-Nagumo_model)
现在我想在下面的脚本中通过 ode45(这是一个先决条件)求解这个方程:
tspan = [0, 6]; y0 = [1; 1];
alpha = 0.7;
gamma = 0.8;
varepsilon = 12.5;
C = 0.5;
ode = @(v,w) fun (v, alpha, w, C, gamma, varepsilon);
[v,w] = ode45(ode, tspan, y0);
plot(t,v(:,1),'r')
xlabel ('t')
ylabel('solution v & w')
title ('opdracht 1, name')
hold on
plot(t,w(:,1),'b')
shg
目标是根据 t(时间,由 tspan 定义)绘制 v 和 w。但我收到以下错误: 使用 oearguments 时出错(第 92 行) @(V,W)OPDRACHT1FUNCTIEV(V,ALPHA,W,C,GAMMA,VAREPSILON) 返回一个长度为 4 的向量,但初始条件向量的长度为 2.@(V,W)OPDRACHT1FUNCTIEV(V,ALPHA,W,C,GAMMA,VAREPSILON)返回的向量和初始条件向量必须相同 元素的数量。
谁能告诉我这 4 个解决方案来自哪里,而应该只有 2 个?句柄 @(v,w) 只包含两个值,这还不够吗? 提前致谢!
【问题讨论】:
标签: matlab plot differential-equations