function dotq = three_element_square_object_free_param( t, q, npoint, M, ...
    Jlambda, Jmu, lambda, mu, lambdav1, muv1, lambdav2, muv2, ...
    nfixed, A_fixed, alpha )
% 運動方程式（弾塑性正方形の上部を解放したとき）
% 床に固定されている節点のみに制約が生じる
    u = q(1:npoint*2);
    v = q(npoint*2+1:npoint*4);
    flambda = q(npoint*4+1:npoint*6);
    fmu     = q(npoint*6+1:npoint*8);
    
    dotu = v;
    
    coef = [ M, -A_fixed; ...
            -A_fixed', zeros(nfixed*2,nfixed*2) ];
    vec = [  -flambda-fmu; ...
              A_fixed'*(2*alpha*v + alpha^2*u) ];
    sol = coef\vec;
    dotv = sol(1:npoint*2);
 
    dotflambda = (-lambda/(lambdav1+lambdav2))*flambda ...
        + (lambda*lambdav2/(lambdav1+lambdav2))*Jlambda*v ...
        + (lambdav1*lambdav2/(lambdav1+lambdav2))*Jlambda*dotv;
    
    dotfmu = (-mu/(muv1+muv2))*fmu ...
        + (mu*muv2/(muv1+muv2))*Jmu*v ...
        + (muv1*muv2/(muv1+muv2))*Jmu*dotv;
    
    dotq = [dotu; dotv; dotflambda; dotfmu];
end
