如何在Matlab中设置ode函数

如何在Matlab中设置ode函数,matlab,integration,Matlab,Integration,对于我来说,不清楚如何使用ode45 For matlab。我有一个向量u。 有人知道这个错误是什么吗 function [v, t, d] x =deep(l) x = max(u(:,1)); v = u; t = 1; d = 1; 但是当我打电话给你的时候 ode45(@odefun, [0 85], [0 0], options) 我得到这个错误: eventValue = feval(eventFcn,t0,y0,eventArgs{:}); Error in ode45 (

对于我来说,不清楚如何使用ode45 For matlab。我有一个向量u。 有人知道这个错误是什么吗

function [v, t, d] x =deep(l)
x = max(u(:,1));
v = u;
t = 1;
d = 1;
但是当我打电话给你的时候

ode45(@odefun, [0 85], [0 0], options)
我得到这个错误:

  eventValue = feval(eventFcn,t0,y0,eventArgs{:});
Error in ode45 (line 148)
  odeevents(FcnHandlesUsed,odeFcn,t0,y0,options,varargin); ```


您的文本和代码中存在一些不一致之处

  • “我有一个向量u”:
  • 但您的函数定义是:

    function [v, t, d] x =deep(l)
    x = max(u(:,1));
    v = u;
    t = 1;
    d = 1;
    
    函数定义中的向量
    u
    在哪里

    ode45
    功能集成了以下类型的功能:

    y'=f(t,y)

    应传递给ode45的函数应具有两个参数,并应返回一个输出:

    • 输入独立参数
      t
      。该函数集成在值
      t=t0
      t=tf
      之间
    • 输入
      y
      ,因变量的向量
    • 输出
      dy
      ,带有因变量导数的向量
  • 调用
    ode45
    函数时:

    ode45(@odefun,[0 85],[0 0],选项)

  • 您没有在任何地方定义
    odefun
    ,MATLAB应该在那里抛出一个错误

    您必须更改
    deep
    函数和
    ode45
    调用才能使其工作:

    dy = deep(t,y)
    dy = ? <- define it
    

    那个错误是不完整的,你能告诉我们完整的错误吗?我想我忘了把向量放进去。给出了该函数。我必须改变ode45在第一个低点后停止计算的函数函数x=deep(l)[t,u]=ode45(@b[091],[00l]);x=最大值(u(:,1));`但对我来说,我不清楚我应该如何改变这个函数,在第一个低点之后,计算,停止。
    dy = deep(t,y)
    dy = ? <- define it
    
    ode45(@deep,tspan,y0)