【问题标题】:Reading a file that corresponds to time step in solving ODE读取与求解 ODE 的时间步对应的文件
【发布时间】:2015-07-03 10:53:30
【问题描述】:

我正在尝试在 Matlab 中解决 ODE,但遇到以下问题: 我的代码如下:

xinit=[0.19;25;0;7];
t=0:768:76800; %% 101 cells
[t1,y]=ode45(@Model_Bio,t,xinit);

在@Model_Bio 函数中,我有一个参数,我需要读取每个时间步的对应值(101 个值)! 所以,我的@Model_Bio 不知何故如下:

load 'mydata'
a=mydata;    
.....

问题是,当我执行 ode45(@Model_Bio,t,xinit) 时,它会使用自动时间步长(例如 50 次!)调用我的函数,而我的问题是我无法为每个函数分配值我的时间步长(101)! 另外,我认为将颂歌的时间步长更改为与我的 101 步相同不是一个好主意! 非常感谢任何帮助我的人!

【问题讨论】:

    标签: matlab ode sampling


    【解决方案1】:

    您似乎需要为您的数据提供一个包装器,将其插入任意 t,例如

    my_interp = @(t) interp1(my_data_t, my_data_x, t)

    http://se.mathworks.com/help/matlab/ref/interp1.html

    然后根据 my_interp 实施您的 RHS (@Model_Bio)

    【讨论】:

    猜你喜欢
    • 2016-02-17
    • 2017-02-09
    • 2013-05-07
    • 1970-01-01
    • 1970-01-01
    • 2019-02-14
    • 1970-01-01
    • 2017-07-26
    • 1970-01-01
    相关资源
    最近更新 更多