Чтение файла, соответствующего временному шагу в решении ODE

Я пытаюсь решить ODE в Matlab, и у меня есть следующая проблема: мой код как показано ниже:

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

В функции @Model_Bio у меня есть параметр, который мне нужен для чтения его соответствующих значений для каждого временного шага (101 значение)! Итак, My @Model_Bio выглядит так:

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

проблема в том, что когда я выполняю ode45(@Model_Bio,t,xinit), он вызывает мою функцию с автоматическим временным шагом (например, 50 раз!), и моя проблема в том, что я не могу назначить значения для каждого своего времени шаг (101)! Кроме того, я думаю, что не стоит менять временной шаг оды так же, как мои 101 шаг! Любой, кто поможет мне в этом, действительно ценится!

1 ответ

Кажется, что вам нужно предоставить обертку ваших данных, которая интерполирует их для произвольного t, например

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

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

а затем реализовать вашу RHS (@Model_Bio) с точки зрения my_interp

Другие вопросы по тегам