Netlogo中的Herfindahl索引代码

Netlogo中的Herfindahl索引代码,netlogo,Netlogo,我在Netlogo中编程Herfindahl索引时遇到问题。我想让Netlogo计算一下。我很难告诉程序以下公式: 我希望Netlogo报告并绘制它。请帮助:-s.这里是一个完整的工作示例。出于您的目的,您只需要calc HI过程(记住在go过程中调用它),但我已经为您提供了一个单独的模型,您可以自己测试它。测试它的方法是运行setup,然后在命令中心运行go,然后运行show HI。通过检查每只海龟,你可以看到它们的变量值,并使用计算器检查是否匹配HI值 globals [ HI ] tu

我在Netlogo中编程Herfindahl索引时遇到问题。我想让Netlogo计算一下。我很难告诉程序以下公式:


我希望Netlogo报告并绘制它。请帮助:-s.

这里是一个完整的工作示例。出于您的目的,您只需要
calc HI
过程(记住在
go
过程中调用它),但我已经为您提供了一个单独的模型,您可以自己测试它。测试它的方法是运行
setup
,然后在命令中心运行
go
,然后运行
show HI
。通过检查每只海龟,你可以看到它们的变量值,并使用计算器检查是否匹配HI值

globals [ HI ]

turtles-own [ val ]

to setup
  clear-all
  create-turtles 3
  [ setxy random-xcor random-ycor
    set val random 5
  ]
  reset-ticks
end

to go
  set HI calc-HI
  tick
end

to-report calc-HI
  let num count turtles
  let total sum [ val ] of turtles
  let herf sum [ ( val / total ) ^ 2 ] of turtles
  report herf
end

对于打印,您只需在plot小部件中执行
plot HI

以下是一个完整的工作示例。出于您的目的,您只需要
calc HI
过程(记住在
go
过程中调用它),但我已经为您提供了一个单独的模型,您可以自己测试它。测试它的方法是运行
setup
,然后在命令中心运行
go
,然后运行
show HI
。通过检查每只海龟,你可以看到它们的变量值,并使用计算器检查是否匹配HI值

globals [ HI ]

turtles-own [ val ]

to setup
  clear-all
  create-turtles 3
  [ setxy random-xcor random-ycor
    set val random 5
  ]
  reset-ticks
end

to go
  set HI calc-HI
  tick
end

to-report calc-HI
  let num count turtles
  let total sum [ val ] of turtles
  let herf sum [ ( val / total ) ^ 2 ] of turtles
  report herf
end

对于绘图,您只需在绘图小部件中
plot HI

假设您有一个使用百分比的市场份额列表。将每个市场份额映射到广场并汇总:

;;e.g. let market-shares (list .5 .5)
to-report calculate-herfindahl [market-shares]
    report (sum (map [? * ?] market-shares))
end
如果您想根据实际股份计算股份。将每个共享映射到一个百分比,然后应用上述公式:

;;e.g. let market-shares (list 30 40)
to-report calculate-herfindahl [market-shares]
    let market-size sum market-shares
    report (sum (map [(? / market-size) ^ 2] market-shares))
end

假设您有一个使用百分比的市场份额列表。将每个市场份额映射到广场并汇总:

;;e.g. let market-shares (list .5 .5)
to-report calculate-herfindahl [market-shares]
    report (sum (map [? * ?] market-shares))
end
如果您想根据实际股份计算股份。将每个共享映射到一个百分比,然后应用上述公式:

;;e.g. let market-shares (list 30 40)
to-report calculate-herfindahl [market-shares]
    let market-size sum market-shares
    report (sum (map [(? / market-size) ^ 2] market-shares))
end

到目前为止你有代码吗?没有,还没有。我对求和元素有问题。Foreach?不,你可以简单地求和,我会写一些东西。到目前为止你有代码吗?没有,还没有。我对求和元素有问题。Foreach?不,你可以简单地取总数,我会写一些东西给你。我在玩foreach函数。非常感谢。我在玩foreach函数。