Leg*_*end 9 parameters matlab function calculus
我有以下功能:
function ypdiff = ypdiff(t,y)
a = 0.01;
b = 0.1;
ypdiff(1) = -a*y(1)*y(2);
ypdiff(2) = b*y(1)*y(2)-b*y(2);
ypdiff(3) = b*y(2);
ypdiff = [ypdiff(1) ypdiff(2) ypdiff(3)]';
Run Code Online (Sandbox Code Playgroud)
如果我想解决这个问题,我会调用ode45函数,如下所示:
[t y] = ode45(@ypdiff, [to tf], yo);
Run Code Online (Sandbox Code Playgroud)
但是,如果我想将参数传递给此函数,我将如何使用ode45函数?具体来说,我正在尝试以下配方:
function ypdiff = ypdiff(t,y,u)
a = 0.01;
b = 0.1;
ypdiff(1) = -a*u*y(1)*y(2);
ypdiff(2) = b*u*y(1)*y(2)-b*y(2);
ypdiff(3) = b*u*y(2);
ypdiff = [ypdiff(1) ypdiff(2) ypdiff(3)]';
Run Code Online (Sandbox Code Playgroud)
您可以在matlab中使用匿名函数(类似于其他语言中的lambda函数):
u = 1.2;
[t y] = ode45(@(t, y) ypdiff(t, y, u), [to tf], yo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
19890 次 |
| 最近记录: |