求解二元微分方程组C1(P0-P1)dt=VdP1+C2(P1-P2)dt (1)C2(P1-P2)dt=VdP2+C3

3个回答

  • 移项一下,将得到:

    dP1/dt=[c1*(p0-P1)-c2*(P1-P2)]/V1;

    dP2/dt=[c2*(p1-P2)-c3*P2]/V1;

    这个是常微分方程组,可以用龙格库塔法求解.

    以下过程是用MATLAB实现的

    新建一个m文件:equ.m

    function dx = equ(t,x)

    %下面是设置参数,可以根据你的实际情况自行设置

    c1=1;

    c2=2;

    c3=3;

    P0=0.5;

    V1=1;

    V2=2;

    dx=[(c1*(P0-x(1))-c2*(x(1)-x(2)))/V1;(c2*(x(1)-x(2))-c3*x(2))/V2];

    然后返回MATLAB的命令窗口,输入

    t_end=10;

    x0=[0;1]; %系统的初值

    [t,P]=ode45('equ',[0,t_end],x0);

    plot(t,P) %作图两个变量的图

    figure;

    plot(P(:,1),P(:,2)); %相轨迹