# Exploring Self-Determination Theory through Mathematical Modelling

## Description

This code generates three sets of data representing different mathematical models of autonomy, competence, and relatedness over a specified time interval. Linear Model: The linear functions for autonomy, competence, and relatedness depict a steady increase over time. Each function follows a straight line with a positive slope, indicating a linear relationship between time and satisfaction level for each psychological need. Exponential Model: The exponential functions for autonomy, competence, and relatedness exhibit exponential growth patterns. As time progresses, the satisfaction level for each need increases at an accelerating rate, resulting in a curve that steepens over time. Logistic Growth Model: The logistic growth functions for autonomy, competence, and relatedness represent a sigmoidal curve, characterized by an initial rapid growth phase followed by a gradual approach towards a saturation point. These functions reflect the idea that psychological needs may experience rapid development initially but eventually reach a limit as they approach their maximum satisfaction levels. The plotted graphs visually represent the evolution of autonomy, competence, and relatedness according to each mathematical model. The x-axis represents time, while the y-axis represents the satisfaction level of each psychological need. The legend in each plot identifies which curve corresponds to autonomy, competence, or relatedness. Overall, this code provides a visual comparison of different models of Self-Determination Theory, offering insights into how these psychological needs may evolve over time according to various mathematical assumptions.

## Files

## Steps to reproduce

import numpy as np import matplotlib.pyplot as plt # Define time points t = np.linspace(0, 10, 100) # Define linear functions for autonomy, competence, and relatedness autonomy_linear = 0.2 * t competence_linear = 0.3 * t relatedness_linear = 0.25 * t # Define exponential functions for autonomy, competence, and relatedness autonomy_exp = np.exp(0.1 * t) competence_exp = np.exp(0.2 * t) relatedness_exp = np.exp(0.15 * t) # Define logistic growth functions for autonomy, competence, and relatedness autonomy_logistic = 10 / (1 + np.exp(-0.5 * (t - 5))) competence_logistic = 15 / (1 + np.exp(-0.7 * (t - 5))) relatedness_logistic = 12 / (1 + np.exp(-0.6 * (t - 5))) # Plot the functions plt.figure(figsize=(18, 12)) # Linear Model plt.subplot(2, 2, 1) plt.plot(t, autonomy_linear, label='Autonomy') plt.plot(t, competence_linear, label='Competence') plt.plot(t, relatedness_linear, label='Relatedness') plt.xlabel('Time') plt.ylabel('Satisfaction Level') plt.title('Linear Model of Self-Determination Theory') plt.legend() plt.grid(True) # Exponential Model plt.subplot(2, 2, 2) plt.plot(t, autonomy_exp, label='Autonomy') plt.plot(t, competence_exp, label='Competence') plt.plot(t, relatedness_exp, label='Relatedness') plt.xlabel('Time') plt.ylabel('Satisfaction Level') plt.title('Exponential Model of Self-Determination Theory') plt.legend() plt.grid(True) # Logistic Growth Model plt.subplot(2, 2, 3) plt.plot(t, autonomy_logistic, label='Autonomy') plt.plot(t, competence_logistic, label='Competence') plt.plot(t, relatedness_logistic, label='Relatedness') plt.xlabel('Time') plt.ylabel('Satisfaction Level') plt.title('Logistic Growth Model of Self-Determination Theory') plt.legend() plt.grid(True) plt.tight_layout() plt.show()