Shared conversation
Code-Llama-34b ·
SEIRモデルによる感染症シミュレーションサンプルコードを書いてください。
SEIRモデルは、感染症の流行を模擬するための数理モデルであり、Susceptible(感染しやすい人)、Exposed(感染したが、まだ病気になっていない人)、Infectious(病気になった人)、Recovered(回復した人)の4つのグループに分けて、それぞれの人々の状態を追跡することができます。以下は、SEIRモデルに基づいた感染症シミュレーションのサンプルコードです。
scss
// 感染症のパラメータ
let beta = 0.5; // 感染率
let gamma = 0.1; // 回復率
let sigma = 0.2; // 感染者から感染される確率
// 人口のパラメータ
let N = 1000; // 全体の人口
let S0 = 900; // 感染しやすい人の数
let E0 = 100; // 感染したが、まだ病気になっていない人の数
let I0 = 0; // 病気になった人の数
let R0 = 0; // 回復した人の数
// 時間のパラメータ
let t_max = 365; // シミュレーション期間
let dt = 1; // 時間刻み
// 初期条件
let S = S0;
let E = E0;
let I = I0;
let R = R0;
// シミュレーション
for (let t = 0; t < t_max; t += dt) {
// 感染
let new_infections = beta * S * I / N;
S -= new_infections;
E += new_infections;
// 回復
let new_recoveries = gamma * I;
I -= new_recoveries;
R += new_recoveries;
// 感染者から感染される
let new_exposures = sigma * I * S / N;
S -= new_exposures;
E += new_exposures;
}
// 結果の表示
console.log("最終的な状態:");
console.log(`S: ${S}`);
console.log(`E: ${E}`);
console.log(`I: ${I}`);
console.log(`R: ${R}`);
このコードでは、感染症のパラメータとして、感染率beta
、回復率gamma
、感染者から感染される確率sigma
を設定しています。また、人口のパラメータとして、全体の人口N
、感染しやすい人の数S0
、感染したが、まだ病気になっていない人の数E0
、病気になった人の数I0
、回復した人の数R0
を設定しています。
また、時間のパラメータとして、シミュレーション期間t_max
と時間刻みdt
を設定しています。
シミュレーションは、for
文を使用して実現しています。各時間刻みごとに、感染、回復、感染者から感染されるの3つの過程が発生します。感染は、感染しやすい人の数S
から感染したが、まだ病気になっていない人の数E
へと移動します。回復は、病気になった人の数I
から回復した人の数R
へと移動します。感染者から感染されるは、感染しやすい人の数S
から感染したが、まだ病気になっていない人の数E
へと移動します。
最後に、シミュレーションの結果を表示しています。
This conversation may have been edited by the sharer.