找到equilirium点与所有参数

1视图(30天)
•拉提法
•拉提法 2023年4月2日
回答: Torsten 2023年4月3日
你好
我有学位7非线性系统的数学模型。我已经计算了平衡分无病系统(x2 = 0 x3 = 0)。
然而,它是不可能找到地方病平衡手动点,因此有必要使用数值方法。但我不知道如何使用matlab的特点的地方病平衡点(x2≠0 x3≠0)。
你能帮我改变这个脚本,在这里,我已经有了参数值。
Pg = 0.0068;
Ps = 0.012;
公关= 0.006;% 0.012 0.002 0.006
pe = 0.002;
beta1 = 0.00702;
beta2 = 0.00702;
beta3 = 0.00702;
d4 = 1.7143;
u = 0.05;
a1 = 1.10;
a2 = 4.6205;
a4 = 4.6666;
a5 = 1.10;
c1 = 0.0002;
c2 = 0.032;
c4 = 0.032;
c5 = 0.0002;
d10 = 1.2 * 10 ^ 7;
这里= 4.2 * 10 ^ 8;
d12 = 1.0 * 10 ^ 7;
d20开头= 0.2051;
d21 = 0.00431;
d22摊位= 19.4872;
d50 = 1.2 * 10 ^ 7;
d51 = 4.2 * 10 ^ 8;
d52 = 1.0 * 10 ^ 7;
τ= 0.1615;
μ= 0.00371;
ψ= 0.01813;
δ= 2.4 * 10 ^ 4;
γ= 0.136;
α= 2.0;
% t = linspace (0, 0.1,100) ';
% tspan = [0 1000];
X0 = (1.0 0.01 0.0 1.0 - 0.0 0.01 - 0.01);
t0 = 0;
tf = 1000;
选择= [];
% = odeset选项(“Abstol”、1 e-6 Reltol, 1 e-6);
[t, y0] =数值(@glioma0 t0:0.1: tf, X0,选项,Pg, Ps, pe、beta1, beta2, a1, a2, a4、a5, c1, c2, c4、c5, u, d10,这里,d12, d20开头,d21, d22摊位,d50, d51, d52, d4,τ,μ,beta3, psi,三角洲,γ,α,Pr);
函数hdot = glioma0 (t, x, Pg、Ps、pe、beta1, beta2, a1, a2, a4、a5, c1, c2, c4、c5, u, d10,这里,d12, d20开头,d21, d22摊位,d50, d51, d52, d4,τ,μ,beta3, psi,三角洲,γ,α,Pr);
%的时间期限是一个* sin (w0 * t -θ)
% H = 1 * sin (1 * t);
% G = x (1)
hdot = 0 (7, 1);
% H =亥维赛(x (5));
v = 0.0;
φ= 3.3 * 10 ^ 3;
H = 0;
如果x (6) > 0 | | x (7) > 0
H = 1;
其他% %如果(x (5) < = 0);
% H = 0;
结束
hdot (1) = Pg * x (1) * (1 - x (1) beta1 * x (1) * x (x (2) + (3) - (d10 +这里* x (4) + d12 * x (7)) * (x (1) * x (6)) / (a1 + x (1));
hdot (2) = p * x (2) * (1 - x (x(2) +(3)) /(1 +τ* x (4)) beta2 * x (1) * (2) - u * x (2) * H - (d20开头+ d21 * x (4) + d22摊位* x (7)) * (x (2) * (6)) / (a2 + x (2));
如果(hdot (4) < 0)
hdot(3) =公关* x (3) * (1 - x (x(2) +(3)) /(1 +τ* x (4)) - beta3 * (1) * x x (2) (3) + u * * H + v * hdot (4) * x (3);
elseif(hdot (4) > 0)
hdot(3) =公关* x (3) * (1 - x (x(2) +(3)) /(1 +τ* x (4)) - beta3 * (1) * x x (2) (3) + u * * H;
结束
hdot(4) =μ* x (x (2) + (3) + pe x (4) * * (1 - x (4)) d4 * (((4) * x (7)) / a4 + x (4));
如果(hdot (1) < 0)
hdot(5) =α* hdot (1) * x (5) - (d50 + d51 * x (4) + d52 * x (7)) * * x (x (5) (6)) / a5 + x (5);
elseif(hdot (1) > 0)
hdot (5) = (d50 + d51 * (4) + d52 * x (7)) * * x (x (5) (6)) / a5 + x (5);
结束
hdot(6) =φ-(ψ+ c1 * x (1) / (a1 + x (1)) + c2 * x (2) / (a2 + x (2)) + c5 * x (5) / (a5 + x (5))) * x (6);
hdot(7) =δ-(γ+ c4 * x (4) / (a4 + x (4))) * x (7);
% hdot = hdot ';
% hdot = [hdot (:); H, h1);
% xdot列
% FUN1.M年底
结束

答案(1)

Torsten
Torsten 2023年4月3日
我不知道这解决了你的问题,当然你必须扭转命令的顺序:
如果(hdot (4) < 0)
hdot(3) =公关* x (3) * (1 - x (x(2) +(3)) /(1 +τ* x (4)) - beta3 * (1) * x x (2) (3) + u * * H + v * hdot (4) * x (3);
elseif(hdot (4) > 0)
hdot(3) =公关* x (3) * (1 - x (x(2) +(3)) /(1 +τ* x (4)) - beta3 * (1) * x x (2) (3) + u * * H;
结束
hdot(4) =μ* x (x (2) + (3) + pe x (4) * * (1 - x (4)) d4 * (((4) * x (7)) / a4 + x (4));
你不能使用if语句使用hdot(4)计算。

类别

找到更多的在通用应用程序帮助中心文件交换

s manbetx 845


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!