model
Model was written in NetLogo 6.2.0
•
Viewed 65 times
•
Downloaded 3 times
•
Run 0 times
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
Comments and Questions
Please start the discussion about this model!
(You'll first need to log in.)
Click to Run Model
globals [seed-number R-rate R*-rate R**-rate Taxes deathcounter] Extensions [array] breed [householders householder] breed [banks bank] breed [firms firm] breed [centralbanks Centralbank ] householders-own [income NBK W dep C0 conso wealth Div infoLevel ethicLevel ethical ethicalExperience ETHIQUE ] banks-own [K Mcb TP FP P Prem RL deposits] firms-own [firmMoney NBF price act Work LL Y TY N I Pr chP chA Fpp Rent TDIV debt money-Need se-index fin-index positiveImpact weightedImpact Se-weight] Centralbanks-own [TMCB] to setup clear-all set-random-seed setup-patches setup-turtles reset-ticks end to set-random-seed let my-seed 123; user-input "Enter a random seed (an integer):" end to setup-patches ask patches [ set pcolor brown ] end to setup-turtles create-householders howManycapitalists [set shape "person" set size 1 set color 2 set label "c" setxy random-xcor random-ycor set infoLevel infoHouseholders + random-float 5 ; info level retourne un nb aléatoire entre 0 et 5 , on rajoute l'infohouseholders sur le slider set ethicLevel EthicsHouseholders + random-float 5 set ethical nobody ; boolean var, true or false ; la consommation initiale set C0 random 5998 ; valeur de la consommation moyenne des ménages Bam Aout 2019 set Taxes 0.5 set ethicalExperience 1 set conso 4000 set dep 4500 set income 9000 ] create-householders howManyWorkers [set shape "person" set size 1 set color 2 set label "w" setxy random-xcor random-ycor set infoLevel infoHouseholders + random-float 5 set ethicLevel EthicsHouseholders + random-float 5 set ethical nobody set C0 random 5998 set Taxes 0.5 set ethicalExperience 1 set conso 4000 set dep 4500 set income 9000 ] create-banks howManytraditionalBanks ; 19 [set shape "house" set size 2.5 set color gray set label "Trad" setxy random-xcor random-ycor ; position au hasard ask banks [if any? other banks-here[move-to one-of patches]] ; une banque par patch set FP 50000000 set K 1000000 set R-rate 0.04 set R*-rate 0.0225 set R**-rate 0.0225 ; la prime de risque set Prem (R-rate - R**-rate) ] create-banks howManyEthicalBanks ; 5 [set shape "house" set size 2.5 set color 53 setxy random-xcor random-ycor set label "Ethic" set FP 50000000; set K 1000000 set R-rate 0.04 set R*-rate 0.0225 set R**-rate 0.0225 ] create-Centralbanks 1 [set shape "house" set size 4 set color 2 set label " centralbank" setxy 0 0 ] create-firms howManyFirms [set shape "factory" set size 2 set color yellow setxy random-xcor random-ycor set se-index EindexFirms set fin-index random-float 10 set firmMoney 10000 + random 1000 set positiveImpact 0 set weightedImpact 0 ] end to go ask householders [ set W 1500 + random 8000 Myincome ask my-links [ die ] create-link-with one-of firms [set color 8] consumption householderAct set wealth wealth + dep forward random 4 left random 180 householders-interaction ] Ask banks [ create-link-with min-one-of Centralbanks [distance myself][set color 1] CBdeposit set TP (FP + deposits + Mcb ) set Prem (R-rate - R**-rate) set P ((R-rate * K) - (R*-rate * deposits) - (R**-rate * Mcb) ) set FP FP + P set RL FP / K if TP < 5000000 [ set label "Fall" die ] ] Ask firms [ firmact ; Let T 0 ask my-links [ ask other-end [ if label = "w" [set T T + 1 ]]] set Work T let cap 0 ask my-links [ ask other-end [ if label = "c" [set cap cap + 1 ]]] set Act cap Set N (T + Act ) let At 1 let Ut 1 Let L 0 ask my-links [ ask other-end [ if label = "w" or label = "c" [set L L + W ]]] set LL L let alpha 0.7 set Y (At * (( Ut * firmMoney ) ^ alpha) * (( LL ) ^ ( 1 - alpha )) ) set TY TY + Y Loan set I (I + firmMoney) set ChP LL set Pr ( chA - ChP - (R-rate * firmMoney ) ) set Fpp (Fpp + Pr) ifelse I != 0 [ set Rent Fpp / I ] [set Rent 0] If Rent > 0 [ set fin-index 10 - Random-float 5 ] dividente ; Bankrupt ] if random 200 > 180 [createFirm] tick end to Myincome ifelse any? links with [color = green or color = blue ] [let D (R-rate * dep) set income (W + D + Div)] [set income (W + Div)] end to consumption let sigma random-float 0.45 set conso (C0 + sigma * ( income - (Taxes * income))) let Con conso ask my-links [ ask other-end [set chA chA + Con ]] end to householderAct set NBK 0; Set ETHIQUE (infoLevel * ethicLevel * (1.1 - random-float 0.2) * (ethicalExperience )) ifelse ETHIQUE > 49 [set ethical true if ethicLevel > 6 or ethicLevel = 6 [ifelse any? banks with [label = "Ethic"] [move-to one-of banks with [label = "Ethic"]] [set NBK NBK + 1]] if ethicLevel < 6 [ ifelse any? banks with [label = "Ethic"] [move-to one-of banks with [label = "Ethic"]] [if any? banks with [label = "Trad"] [move-to one-of banks with [label = "Trad"]]]]] [set ethical false ifelse any? banks with [label = "Trad"] [move-to one-of banks with [label = "Trad"]] [if any? banks with [label = "Ethic"] [move-to one-of banks with [label = "Ethic"]]]] ; effectuer un dépôt If any? banks-here [if income > conso [ Let myDeposit (income - conso) set dep myDeposit ask banks-here [set deposits deposits + myDeposit] ] ] ; effectuer un retrait If any? banks-here [if income < conso [let myWithdraw (conso - income) set dep (-1 * myWithdraw) ask banks-here [set deposits deposits - myWithdraw ] set color 16]] end to householders-interaction forward random 2 right random 360 let speaker one-of other householders-here if speaker != nobody [ifelse [ethicLevel] of speaker > 6 [if ethicalExperience < 10 [ set ethicalExperience ethicalExperience + 1 ]] [if ethicalExperience > 1 [ set ethicalExperience ethicalExperience - 1 ]]] end to CBdeposit let F (0.7 * (FP + deposits)) ifelse K > F [ Let M ( K - F ) Ask my-links [ask Centralbanks [set TMCB TMCB + M ]] set Mcb M ] [ set Mcb 0 ] end to firmact set NBF 0 ask my-links with [color = green or color = blue] [die] ifelse se-index + random-float 3 > 5 [ ifelse any? banks with [label = "Ethic"] [ create-link-with one-of banks with [label = "Ethic"] [set color green ]] [ set NBF NBF + 1 ]] [ create-link-with one-of banks with [label = "Trad"] [set color blue ]] end to Loan If y < chA [ let q (LL ^ 0.3) ; if q != 0 [let H (( chA / q ) ^ ( 1 / 0.7)) let crd (H - FirmMoney) if any? links with [color = green or color = blue ] [set firmMoney firmMoney + crd ask my-links with [color = green] [ask other-end [set k k + crd]] ask my-links with [color = blue] [ask other-end [set k k + crd]]]]] end to Bankrupt if Pr < -30000 [set color black set deathcounter deathcounter + 1 ] if Pr < -30000 [die] end to createFirm create-firms 1 [set shape "factory" set size 2 set color yellow setxy random-xcor random-ycor set se-index EindexFirms set fin-index random-float 10 set firmMoney 10000 + random 1000 set positiveImpact 0 set weightedImpact 0 ] end to dividente if Act > 0 [ Let beta random-float 0.3 Let A (beta * Pr) ; if A > 0 [set TDIV A Let B A / Act ask my-links [ ask other-end [ if label = "c" [set Div B ]]] ] ] end
There is only one version of this model, created 9 months ago by ifelab lerma.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
model.png | preview | Preview for 'model' | 9 months ago, by ifelab lerma | Download |
This model does not have any ancestors.
This model does not have any descendants.