一百分求达人修改matlab程序

来源:百度知道 编辑:UC知道 时间:2024/05/29 06:12:54
我的程序是
m文件:
function f=virus(t,x)
Uvir=420;
Kcdv=0.024;
Kva=1;
Kvi=0.002;

Kcdf=0.001;
Kvd=0.003;
Um=0.03;
Cm=1200000;
f(1)=Um*(Cm-x(1)-x(2))*x(1)/Cm-Kcdf*x(1)-Kvi*x(1)*x(3);
f(2)=Kvi*x(1)*x(3)-Kcdv*x(2);
f(3)=Uvir*x(2)-Kvd*x(3)-Kva*x(1)*x(3);
f=f(:);
matlab命令:
clear;[t,x]=ode23s(@virus,[0 200],[1200000;0;26000000]);
plot(t,x(:,1),':',t,x(:,2));
plot(t,x(:,3));
max(x(:,3))

请达人帮我改以下,f(3)=Uvir*x(2)-Kvd*x(3)-Kva*x(1)*x(3);这个方程改成这个意思:f(3)=Uvir*x(2)(t-4.5)-Kvd*x(3)-Kva*x(1)*x(3);
也就是说,那个x(2)要替换成t-4.5时刻的x(2)的值,求达人帮我改改,谢谢了
确实是问题,那就将第三个方程改成这样可以吗?
0-4.5时刻,f(3)=Kvd*x(3)-Kva*x(1)*x(3);
4.5时刻以后,f(3)=Uvir*x(2)(t-4.5)-Kvd*x(3)-Kva*x(1)*x(3);

问题很大条!本人愚见

初值还是t=0得初值,就这样就能解方程得话 就必须知道x(2)在时间
-4.5 到0得值,如果不知道得话,普通的解方程就行不通。

x(2)在时间-4.5 到0得值知道吗?

如果:
方程存在某些约束或限制以及要求,猜想一组x(2)在时间-4.5 到0得值,进行优化,最终得到x(2)在时间-4.5 到0得真值,接下来上方法了。

这个问题很模糊,首先你得得到4.5的X2值, 然后那个f3的数值用另一个函数代替就可以了