function dz = general_network_dynamics(t,zz) % USAGE dz = general_network_dynamics(t,zz) global A prorate degrate active inactive tspan d wts b alpha lse_out penalty_out counter parms parmnames dz = zeros(size(zz)); parms_used = 0; b_used = 0; for ii = 1:length(zz) nAii = sum(A(ii,:)); jj = find(A(ii,:)==1); p1 = parms_used+1; p2 = parms_used+nAii; wtii = wts(p1:p2); % % % if parms(1) == 0 % % % bii = b(p1:p2); % % % bii = bii(:); % % % end zii = zz(jj); zii = zii(:); wtii = wtii(:); % bii = bii(:); if isempty(zii) pro = prorate(active(ii))/2; else wz = (zii.*(wtii)); awz = abs(wz); WW = sum(awz); mmw = wz.*awz./(1+awz); smw = sum(mmw); pro = prorate(active(ii))*(smw*(smw>0)/WW); end deg = degrate(active(ii))*zz(ii); dz(ii) = pro - deg ; parms_used = parms_used + nAii; end return