Функция ODE в Matlab - PullRequest
       4

Функция ODE в Matlab

0 голосов
/ 30 марта 2020

Меня просят построить графики концентрации E, S, ES и P относительно подходящего времени (я выбрал одну минуту с интервалами в одну секунду?), Учитывая следующее:

E + S <- > ES

ES -> E + P

, где скорости реакции для первой реакции составляют 1,06 * 10 ^ 7 М ^ -1 с ^ -1 и 1,49 * 10 ^ 1 М ^ -1 с ^ -1. Для второй реакции скорость реакции составляет 1,6 * 10 ^ 3 М ^ -1 с ^ -1.

Начальные концентрации фермента и субстрата составляют 5 * 10 ^ -10 и 5 * 10 ^ -2 соответственно. Обратите внимание, следует использовать ode23.

Я попытался решить проблему с помощью следующего кода:

endconc=[];
for i=1:4 
    E=5e-10;
    S=5e-2;
    ES=0; P=0; 
    k1=1.06e7;
    k2=1.49e1;
    k3=1.6e3;

% E= u(1)
% S= u(2)
% ES=u(3)
% P= u(4)    

    %system of ODE
    uprim = @(t,u) [-k1*u(1)*u(2)+k2*u(3)-k3*u(3);
        -k1*u(1)*u(2)+k2*u(3)-k3*u(3);
        k1*u(1)*u(2)-k3*u(1)*u(4);
        k3*u(3);];


    E0=E; S0=S; ES0=ES; P0=P;
    u0=[E0; S0; ES0; P0;];

    ops = odeset('AbsTol',1e-9,'RelTol',1e-9);

end


    [t,U] = ode23s(uprim,0:60,u0,ops);

    plot(t,U)

Однако график выглядит не совсем правильно. Я сделал ошибку в системе ODE или я неправильно понял использование данных концентраций?

Вся помощь очень ценится!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...