Calcolatore SIR
Con 990 persone suscettibili e 10 infette, un tasso di infezione di 0,3 e uno di guarigione di 0,1, il numero di riproduzione di base è 3 e al giorno 5 ci sono circa 24 infetti. Ottenga la tabella giornaliera di S, I e R. Gratis nel suo browser.
- Gratis
- Funziona nel suo browser
- Senza registrazione
- I suoi dati restano sul dispositivo
Esegui gratis nel browser
Esempio risolto
- Tasso di infezione
- 0,3
- Tasso di guarigione
- 0,1
- Suscettibili
- 990
- Infetti
- 10
- Guariti
- 0
- Giorni
- 5
- Popolazione
- 1000
- Picco di infetti
- 24,35274342
- Giorno del picco
- 5
- Suscettibili finali
- 968,26496445
Il modello epidemico SIR classico divide una popolazione chiusa in tre compartimenti: chi è ancora suscettibile all'infezione, chi è infettivo in questo momento e chi è guarito e viene trattato come immune per il resto della simulazione. Questo calcolatore SIR di infezione virale fa avanzare quel modello un giorno alla volta a partire da un tasso di infezione, un tasso di guarigione, le tre dimensioni iniziali dei compartimenti e un orizzonte in giorni che Lei fornisce. Ogni giornata le nuove infezioni passano dai suscettibili agli infetti in proporzione a entrambi i gruppi, e le guarigioni passano dagli infetti ai guariti secondo il tasso di guarigione. La risposta è una tabella giorno per giorno dei conteggi di suscettibili, infetti e guariti, insieme al numero di riproduzione di base implicito e al picco della curva degli infetti. Tassi di infezione o di guarigione negativi vengono rifiutati come ingresso non valido anziché essere piegati in valori assoluti.
Come è definito il modello epidemico SIR
Il modello suscettibili-infetti-guariti è l'epidemia a popolazione chiusa più piccola che mostra ancora una curva degli infetti che sale e scende. Ognuno inizia in uno di tre stock: suscettibili che possono contrarre l'agente, infetti che possono trasmetterlo e guariti trattati come immuni per il resto di questa esecuzione. Non vi sono nascite, decessi né migrazioni, così il totale N uguale a S più I più R resta costante e serve solo da scala per il contatto.
Quei flussi lasciano S, entrano in I, poi lasciano I verso R. Un valore sopra uno è la condizione classica di decollo epidemico, e la soglia educativa di immunità di gregge uno meno uno su R0 viene segnalata solo in quel caso. L'implementazione è il metodo di Euler quotidiano da manuale, non un solutore adattivo di equazioni differenziali ordinarie, non un modello stocastico ad agenti e non una previsione di un focolaio reale nominato.
I tassi elevati sono limitati affinché un solo passo non renda negativo un compartimento, perché un conteggio negativo non è uno stock valido. I valori frazionari di compartimento sono ammessi: l'approssimazione continua non è ristretta alle persone intere. Tratti ogni serie come una traiettoria educativa di questa regola pubblicata, mai come una predizione clinica, una previsione di posti letto o un sostituto di un modello di sanità pubblica strutturato con strati di età, comportamento o vaccinazione che questo strumento non raccoglie.
Dove i calcolatori SIR compaiono nel lavoro reale
I corsi di epidemiologia, l'orientamento infermieristico e i laboratori di sanità pubblica assegnano senza sosta esercizi SIR da tassi e stock iniziali da manuale, così un oracolo affidabile che restituisce la tabella quotidiana accanto a R0 e al picco degli infetti accelera la correzione e il montaggio delle dimostrazioni.
Gli assistenti di ricerca che preparano insiemi sintetici di focolai necessitano di etichette di compartimento stabili da tassi noti senza chiamate di rete né deriva di modello, e di un rifiuto netto quando arriva un tasso negativo affinché estratti sporchi non si fingano traiettorie. Se in seguito Le servono SEIR con una classe esposta, dinamica vitale, struttura per età, campagne vaccinali o un modello stocastico ad agenti, li tratti come intenzioni di ricerca e pagine distinte, senza sovraccaricare questa pagina SIR di infezione virale.
Presenti sempre i risultati come stime educative della regola di Euler quotidiana pubblicata; le decisioni operative richiedono professionisti qualificati, sorveglianza locale e modelli che questo strumento non pretende di sostituire. Tenga le richieste entro il tetto di trecentosessantacinque giorni, ancori la serie nei test e otterrà cifre SIR riproducibili per i compiti, i plugin LMS e i worker di bordo senza allestire una propria pila di modellazione dei focolai.
Casi d'uso
Esercizi di focolaio nel laboratorio di epidemiologia
Mostri il decollo e il riflusso SIR a popolazione chiusa nei laboratori didattici senza mescolare SEIR, struttura per età né agenti stocastici sulla stessa pagina.
Domande frequenti
Che cos'è il modello epidemico SIR?
SIR divide una popolazione chiusa in compartimenti di suscettibili, infetti e guariti. Le nuove infezioni passano da S a I in proporzione a entrambi i gruppi; le guarigioni passano da I a R. Il totale N = S + I + R resta costante. Questo calcolatore segnala i conteggi quotidiani di quei tre stock.
Quale formula usa ogni giorno?
Un passo di Euler quotidiano delle equazioni di Kermack–McKendrick: new infections = β S I / N, new recoveries = γ I, then S' = S − new infections, I' = I + new infections − new recoveries, R' = R + new recoveries. Il passo di tempo è un giorno. Quando γ > 0, R0 = β / γ.
Che succede se un tasso di infezione o di guarigione è negativo?
Un tasso negativo al giorno viene rifiutato anziché essere convertito in un valore assoluto o in un NaN silenzioso.
Quanto costa?
Lo strumento del browser è gratuito e gira in locale.
Che cosa significa un numero di riproduzione di base pari a 3 nel modello SIR?
È il tasso di infezione diviso per quello di guarigione: 0,3 diviso 0,1 dà 3, cioè una persona contagiosa ne infetterebbe altre tre in una popolazione del tutto suscettibile. Sopra uno l'epidemia decolla, e solo allora viene indicata la soglia di immunità di gregge.
Strumenti correlati
Per sviluppatori — accesso via API
Tutto quello che vedi in questa pagina è disponibile anche via API. Questa sezione è per i team che vogliono integrarlo nei propri sistemi; chi non ne ha bisogno può semplicemente usare lo strumento qui sopra.
Endpoint
Autenticazione con Bearer token: un POST mette in coda l'attività e il risultato arriva via webhook o link firmato.
Chiamala dal tuo stack
curl -X POST https://api.kit.forhosting.com/health/viral-infection-sir \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"infection_rate":0.3,"recovery_rate":0.1,"susceptible":990,"infected":10,"recovered":0,"days":5}'const res = await fetch("https://api.kit.forhosting.com/health/viral-infection-sir", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"infection_rate": 0.3,
"recovery_rate": 0.1,
"susceptible": 990,
"infected": 10,
"recovered": 0,
"days": 5
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/viral-infection-sir",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"infection_rate": 0.3,
"recovery_rate": 0.1,
"susceptible": 990,
"infected": 10,
"recovered": 0,
"days": 5
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/viral-infection-sir", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"infection_rate":0.3,"recovery_rate":0.1,"susceptible":990,"infected":10,"recovered":0,"days":5}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"infection_rate":0.3,"recovery_rate":0.1,"susceptible":990,"infected":10,"recovered":0,"days":5}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/viral-infection-sir", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Esempio di richiesta
{
"infection_rate": 0.3,
"recovery_rate": 0.1,
"susceptible": 990,
"infected": 10,
"recovered": 0,
"days": 5
}Esempio di risposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.viral_infection_sir",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L'API è asincrona: ricevi subito un task_id e puoi fare polling fino a 1 richiesta al secondo.
Prezzi
Prezzo pubblicato, senza token né crediti. Se l'attività fallisce, non paghi.
Limiti
max_days | 365 |
max_population | 1000000000000 |
Errori
| HTTP | Codice | Significato |
|---|---|---|
401 | unauthorized | Chiave API mancante o non valida: controlla l'header Authorization. |
402 | insufficient_balance | Credito esaurito: ricarica per continuare a eseguire attività. |
404 | unknown_type | Tipo di attività sconosciuto: controlla il campo type della richiesta. |
429 | rate_limited | Troppe richieste in poco tempo: rallenta e riprova tra qualche secondo. |
Note tecniche
Le chiamate API riuscite usano il $0.002 pubblicato per elemento; l'ingresso non valido non viene addebitato.
Come è definito il modello epidemico SIR
Ogni giorno il calcolatore applica un passo di Euler delle equazioni di Kermack–McKendrick con passo temporale unitario di un giorno: le nuove infezioni valgono il tasso di infezione beta per S per I diviso N, e le nuove guarigioni valgono il tasso di guarigione gamma per I. Quando gamma è positivo, il numero di riproduzione di base R0 vale beta diviso gamma, il numero di casi secondari che una persona infettiva produrrebbe in una popolazione pienamente suscettibile.
Che cosa invia e che cosa ottiene in risposta
Invii sei campi obbligatori. Il campo days è l'orizzonte intero da uno a trecentosessantacinque; la serie include il giorno zero fino a quel giorno. Le chiavi opzionali sono omesse anziché impostate a null. Ancori la serie e il picco nei test affinché un cambiamento successivo del passo di Euler non passi inosservato. Il campo infection_rate è il parametro di infezione al giorno beta e deve essere un numero finito non negativo; un valore negativo fallisce con invalid_input nominando quel campo. Si accettano gli alias beta, beta_rate, transmission_rate e infectivity. Il campo recovery_rate è il parametro di guarigione al giorno gamma e deve essere un numero finito non negativo; si accettano gli alias gamma, gamma_rate e recover_rate. I campi susceptible, infected e recovered sono i conteggi di compartimento al giorno zero e devono essere finiti e non negativi; la loro somma N deve essere maggiore di zero perché il termine di contatto sia definito. Si accettano gli alias s, s0, i, i0, rec, initial_susceptible, initial_infected e initial_recovered. Campi obbligatori assenti, stringhe vuote, testo non numerico, NaN, Infinity, un orizzonte non intero e una popolazione totale nulla falliscono con invalid_input e non vengono addebitati. In caso di successo la risposta rieccheggia i tassi puliti, i compartimenti iniziali, days e population, restituisce series come un array di record day, susceptible, infected e recovered, segnala peak_infected e peak_day, segnala final_susceptible, final_infected e final_recovered, e include stringhe formula e method per la visualizzazione e per ancorarle nei test. Quando recovery_rate è positivo la risposta include anche r0 uguale a beta su gamma, e quando r0 è maggiore di uno include herd_immunity_threshold. Il prezzo delle chiamate API riuscite è il $0.002 pubblicato per elemento; i fallimenti di convalida non consumano il saldo prepagato.
Dove i calcolatori SIR compaiono nel lavoro reale
I centri di simulazione e i prodotti di fogli elettronici vogliono un percorso documentato di beta, gamma, S, I, R e days che i clienti possano verificare a mano, non una previsione neurale opaca che mescola mobilità, meteo e comportamento senza divulgarlo. Poiché questa capacità è un motore parse puro, il prezzo API è la base pubblicata di $0.002 per elemento riuscito e la convalida fallita non consuma saldo.
Casi di integrazione
Chiavi di correzione SIR per l'aula
Generi la tabella quotidiana di suscettibili, infetti e guariti più R0 da beta, gamma e stock iniziali da manuale, così docenti e autocorrettori condividono una verità di riferimento trasparente.
Fixture deterministiche di focolaio
Produca in massa serie SIR stabili per insiemi epidemici sintetici e test di regressione, con invalid_input netto di fronte a un tasso di infezione o di guarigione negativo.
Domande tecniche
Come formatto l'ingresso?
Invii infection_rate e recovery_rate come numeri finiti non negativi (ad esempio 0.3 e 0.1), susceptible, infected e recovered come conteggi finiti non negativi (ad esempio 990, 10 e 0), e days come un intero da 1 a 365. Si accettano anche gli alias beta, gamma, s, i e rec.