LoveHateDynamics

Romeo and Juliet model as introduced by Strogatz

Diagram

Information

This information is part of the Business Simulation Library (BSL). Please support this work and ► donate.

Using the →LinearInteraction we can model Steven H. Strogatz' differential equation model for the dynamics in a love affair—conspiciously between Juliet and Romeo [16].

In his example—given in 1988—Strogatz described Romeo as a "fickle" lover who is "turned off" the more Juliet starts to warm up to him. On the other hand, the more Juliet dislikes him, the more he starts to approach Juliet. Juliet in comparison is a rather "regular" lover: The more Romeo loves her, the more she will love him and, conversely, the more he hates her, the more she hates him.

To put this in mathematical form, we use stocks to account for Romeo's (reomeo) and Juliet's feelings (reomeo) at any time in the simulation. We define, that 1 is to describe the highest possible degree of love, while -1 is to express the highest possible degree of hate. Initially, Romeo is fully in love with Juliet (i.e., romeoInitial = 1), while Juliet does not care about him (i.e., julietInitial = 1).

The relationship's dynamics arise from coupled differential equations, which can be compactly expressed using an → Interaction flow. Using a bit of shorthand notation, the system is described more generally by the following equations:

Formula.svg

The change in the states for Romeo (R) and Juliet (J) depends upon coupling coefficients. Both lovers have an intrinsic and and extrinsic coupling coefficient. In our example, there is no intrinsic coupling (i.e., romeoIntrinsic = julietIntrinsic = 0). The extrinsic coupling factors given according to the above description are: romeoExtrinsic = -1, julietExtrinsic = 1:

Formula.svg

Simulating the example quickly shows, why the technical term for this system is harmonic oscillator.

Parameters (6)

romeoInitial

Value: 1

Type: Real

Description: Initial level (should be different from 0 to find non-trivial steady state solution) (romeo.initialValue)

julietInitial

Value: 0

Type: Real

Description: Initial level (should be different from 0 to find non-trivial steady state solution) (juliet.initialValue)

romeoIntrinsic

Value: 0

Type: Rate (1/s)

Description: Gain for Romeo's feelings independent from Juliet

julietIntrinsic

Value: 0

Type: Rate (1/s)

Description: Gain for Juliet's feelings independent from Romeo

romeoExtrinsic

Value: -1

Type: Rate (1/s)

Description: Gain for Romeo's love aroused by Juliet

julietExtrinsic

Value: 1

Type: Rate (1/s)

Description: Gain for Juliet's love aroused by Romeo

Connectors (1)

modelOutput

Type: DataOutPort

Description: The model's main output

Components (4)

modelSettings

Type: ModelSettings

Description: Setting important global variables within a model

romeo

Type: InformationLevel

Description: Romeo's love (>0) or hate (<0) for Juliet

juliet

Type: InformationLevel

Description: Juliet's love (>0) or hate (<0) for Romeo

loving

Type: LinearInteraction

Description: Interacting forces of love

Revisions

  • Added modelOutput and updated plots in v2.0.0.