%2020 L=L*0.981601893; pens=pens*1.375067815; eta=eta*1.375067815 %theta_pens=0.254*theta_pens+0.746*theta_work; theta_pens=0.627*theta_pens+0.373*theta_work sumL=sum(L); sumpens=sum(pens); oldw=ones(N,1); oldact_work=ones(N,1); oldact_pens=ones(N,1); goon=1; while (goon) expend; [optw,msg]=fsolve("xssw",w(2:N)); w=[1;optw]; expend; Hp=house(H); p=price(); [util_work,util_pens]=util(p,Hp); loc_work=locshare(util_work,theta_work); loc_pens=locshare(util_pens,theta_pens); act_work=L/sum(L); act_pens=pens/sum(pens); % printf("act_work act_pens\n"); % [act_work act_pens] norm=(w-oldw)'*(w-oldw); norm=min(norm,(oldact_work-act_work)'*(oldact_work-act_work)); norm=min(norm,(oldact_pens-act_pens)'*(oldact_pens-act_pens)); if (norm<1e-20) goon=0; end L=sumL*(relax*loc_work+(1-relax)*act_work); pens=sumpens*(relax*loc_pens+(1-relax)*act_pens); pensshare=pens/sum(pens); oldw=w; oldact_work=act_work; oldact_pens=act_pens; end workshare=act_work; inhab=L+pens; rentincome=sum(Hp.*H)+r*sumK; workerincome=w+(1-eta)*rentincome/sum(L) pensincome=eta*rentincome/sum(pens) check=L.*workerincome+pens.*pensincome-expenditures printf("Simulation 2020\nWages\n"); for ii=1:N printf("%f %f %f%% %s\n",init_w(ii),w(ii),100*((w(ii)-init_w(ii))/init_w(ii)),prov(ii,:)); end printf("Expenditures\n"); for ii=1:N printf("%f %f %f%% %s\n",init_expend(ii),expenditures(ii),100*((expenditures(ii)-init_expend(ii))/init_expend(ii)),prov(ii,:)); end printf("Worker income\n"); for ii=1:N printf("%f %f %f%% %s\n",init_workincome(ii),workerincome(ii),100*((workerincome(ii)-init_workincome(ii))/init_workincome(ii)),prov(ii,:)); end printf("Pensioner income\n"); printf("%f %f %f%% \n",init_pensincome,pensincome,100*((pensincome-init_pensincome)/init_pensincome)); printf("Workshare\n"); for ii=1:N printf("%f %f %f%% %s\n",init_workshare(ii),workshare(ii),100*(workshare(ii)-init_workshare(ii)),prov(ii,:)); end printf("Pensshare\n"); for ii=1:N printf("%f %f %f%% %s\n",init_pensshare(ii),pensshare(ii),100*(pensshare(ii)-init_pensshare(ii)),prov(ii,:)); end printf("House price\n"); for ii=1:N printf("%f %f %f%% %s\n",init_Hp(ii),Hp(ii),100*((Hp(ii)-init_Hp(ii))/init_Hp(ii)),prov(ii,:)); end printf("Price index\n"); for ii=1:N printf("%f %f %f%% %s\n",init_p(ii),p(ii),100*((p(ii)-init_p(ii))/init_p(ii)),prov(ii,:)); end printf("Inhabitants 20+\n"); for ii=1:N printf("%f %f %f%% %s\n",init_inhab(ii),inhab(ii),100*((inhab(ii)-init_inhab(ii))/init_inhab(ii)),prov(ii,:)); end printf("Pensioners\n"); for ii=1:N printf("%f %f %f%% %s\n",init_pens(ii),pens(ii),100*((pens(ii)-init_pens(ii))/init_pens(ii)),prov(ii,:)); end printf("Labor\n"); for ii=1:N printf("%f %f %f%% %s\n",init_L(ii),L(ii),100*((L(ii)-init_L(ii))/init_L(ii)),prov(ii,:)); end printf("util_pens\n"); for ii=1:N printf("%f %f %f%% %s\n",init_upens(ii),util_pens(ii),100*((util_pens(ii)-init_upens(ii))/abs(init_upens(ii))),prov(ii,:)); end printf("util_work\n"); for ii=1:N printf("%f %f %f%% %s\n",init_uwork(ii),util_work(ii),100*((util_work(ii)-init_uwork(ii))/init_uwork(ii)),prov(ii,:)); end