Проблемы с решателем ode в matlab
Использую решатель ode45 для системы ОДУ(использовал и другие решатели, проблема не исчезала). В m-файле, где записана функция, используется interp1 для нахождения коэффициентов на каждый шаг решения. В общем, саму систему решить пока не удалось, но проблема в том, что решатель в определённые моменты времени зачем-то делает 2 решения на одном временном шаге, либо вообще откатывается на несколько временных шагов назад и сразу же вперёд.
Сам решатель
[t,y] = ode45(@(t,y) Fito(t,y,Massiv(:,3,1),Ice,Massiv(:,18,1),Ligth,Massiv(:,12,1),Massiv(:,11,1),Massiv(:,10,1),Massiv(:,8,1)),...
tspan, [0.05 0.005])
Интерполяция в m-файле функции делаю так.
function dFdt = Fito(t,y,Temp,Ice,W,I0,NH4,NO3,NO2,P)
%% интерполяция значений параметров для каждого шага
Temp1 = interp1(Temp,t,'pchip');
Если кто-то сталкивался с такой проблемой, буду благодарен советам.