e1:j0+m1*d=jc;

se1:solve(e1,d);

d:rhs(se1[1]);

j1:jc+m2*(1-d);

j1:ratsimp(j1);

j1:factor(j1);

e2:j1=j0;

se2:solve(e2,j0);

J0:rhs(se2[1]);

J0:factor(J0);

D0:ev(d,j0=J0);

D0:ratsimp(D0);

Jav:(J0+jc)/2;

Jav:ratsimp(Jav);

Jav:factor(Jav);

dJav:Jav-jc;

dJav:ratsimp(dJav);

dJav:factor(dJav);

Jav:jc+dJav;

djc:diff(Jav,jc);

dm1:diff(Jav,m1);

dm1:ratsimp(dm1);

dm1:factor(dm1);

dm2:diff(Jav,m2);

dm2:ratsimp(dm2);

dm2:factor(dm2);

D0;

e3:D=D0;

se3:solve(e3,m2);

M2:rhs(se3[1]);

dM1:ev(dm1,m2=M2);

dM1:ratsimp(dM1);

dM2:ev(dm2,m2=M2);

dM2:ratsimp(dM2);

dM2:factor(dM2);