Имам система от ODE, както следва:
dx1/dt = (x1,x2,x3)
dx2/dt = (x1,x2,x3)
dx3/dt = (x1,x2,x3)
Началните условия са x1=x2=x3=0 @ t=0, а ограниченията са dx1/dt = 0, dx2/dt = 0, dx3/dt = 0 за x1 = 1, x2 = 1, x3 = 1 съответно. След като x1, x2, x3 достигнат стойност 1, те трябва да останат на 1 за по-нататъшно увеличаване на t.
Трябва да намеря (1) x1, x2, x3 при различни t и (2) да оценя стойностите на t, когато всяка от тях стане 1. Имах трудности при получаването на резултати за (2).
Опитах се да използвам следната функция за събитие:
function [val,stop,dir] = event(t,X)
X1 = x1;
X2 = x2;
X3 = x3;
val = [X1 -1; X2 -1; X3 -1];
stop= [1;1;1];
dir = [1;1;1];
end
Не проработи. След това опитах друг код, за да намеря поне t, съответстващ на x3 = 1 (защото x3 нараства бавно в сравнение с x1 и x2).
function [val,stop,dir] = event(t,X)
X3 = x3;
val = X3 -1;
stop= 1;
dir = 1;
end
Може ли някой да ме насочи в това отношение?
С уважение. Судип