
Bu çalışma, epidemiyolojide kullanılan klasik SI ve SIR bölmeli modellerinin sayısal çözümünde Python, MATLAB ve R ortamlarını hem hesaplama süresi hem de sayısal doğruluk açısından karşılaştırmaktadır. Aynı matematiksel modeller üç farklı sayısal yöntemle — birinci mertebe Euler yöntemi, dördüncü mertebe Runge–Kutta (RK4) yöntemi ve Predictor–Corrector (P-C) yöntemi — uygulanmıştır. SI modeli için analitik çözüm bulunduğundan sayısal sonuçların doğruluğu R² ölçütüyle değerlendirilmiş; SIR modelinde ise MATLAB'ın ODE45 çözücüsü yüksek doğruluklu referans olarak kullanılarak MATLAB RK4 sonuçları bu referansla karşılaştırılmıştır.
SI modelinde RK4, incelenen bütün h = 0,25, 0,10 ve 0,01 adım büyüklüklerinde Python, MATLAB ve R için tabloda yedi ondalık basamağa yuvarlandığında R² = 1,0 vermiştir. P-C yöntemi h = 0,25 için R² = 0,9994189, h = 0,10 için 0,9999798 ve h = 0,01 için 1,0 değerine ulaşırken Euler yöntemi aynı adım büyüklüklerinde sırasıyla 0,9585463, 0,9927564 ve 0,9999239 değerlerini üretmiştir. Böylece kaynak koşullarında adım büyüklüğü küçüldükçe Euler ve P-C çözümleri analitik SI çözümüne yaklaşmış, RK4 ise kullanılan çözünürlükte en yüksek R² değerlerini vermiştir.
Çalışma sürelerinde Python bütün raporlanan SI ve SIR kombinasyonlarında MATLAB ve R'den daha düşük değerler üretmiştir. Bununla birlikte bu bulgu tek bir Apple M4 tabanlı bilgisayar, kaynakta açıklanmayan yazılım sürümleri ve tekil zamanlama düzeni için geçerlidir. Ayrıca kaynak sonuç bölümünde R'nin sürekli olarak en yavaş ortam olduğu belirtilmesine rağmen tablolar bazı koşullarda R'nin MATLAB'dan daha hızlı olduğunu göstermektedir. Bu nedenle çalışma, belirli uygulama ve donanım altında Python lehine güçlü bir süre farkı gösterse de genel amaçlı bir programlama dili performans sıralaması olarak yorumlanmamalıdır.
Çalışmanın temel sorusu nedir?
Araştırmanın temel sorusu şudur: Aynı epidemiyolojik diferansiyel denklem sistemi aynı sayısal yöntemle çözüldüğünde Python, MATLAB ve R arasında hesaplama süresi açısından nasıl bir fark oluşur ve kullanılan sayısal yöntem çözüm doğruluğunu nasıl etkiler?
Bu nedenle çalışma iki farklı karşılaştırmayı birbirinden ayırmaktadır:
- Sayısal yöntem karşılaştırması: Euler, RK4 ve Predictor–Corrector.
- Yazılım ortamı karşılaştırması: Python, MATLAB ve R.
Bu ayrım önemlidir çünkü yüksek doğruluk doğrudan kullanılan yazılım ortamının değil, büyük ölçüde sayısal yöntemin ve adım büyüklüğünün sonucudur. Nitekim SI modelindeki R² değerleri aynı yöntem ve aynı h kullanıldığında Python, MATLAB ve R için kaynak tablosunda aynıdır.
SI modeli nedir?
SI, popülasyonu iki bölmeye ayıran en temel epidemiyolojik modellerden biridir:
- S — Susceptible: enfeksiyona duyarlı bireyler,
- I — Infected: enfekte bireyler.
Kaynakta kullanılan model:
\[ \frac{dS}{dt}=-\alpha SI \]
ve:
\[ \frac{dI}{dt}=\alpha SI \]
denklemlerinden oluşmaktadır.
Toplam popülasyon:
\[ N=S+I \]
olarak sabit kabul edilmektedir. \(\alpha\), çalışmada enfeksiyonun aktarım parametresidir.
SI deneyinde kaynak:
| Parametre | Değer |
|---|---|
| α | 2,18 × 10⁻³ |
| S(0) | 762 |
| I(0) | 1 |
| Toplam başlangıç popülasyonu | 763 |
| Zaman aralığı | 0–14 gün |
| İncelenen h değerleri | 0,25; 0,10; 0,01 |
kullanmıştır.
SI modelinin analitik çözümü neden önemli?
SI modelinin bu biçimi için kaynakta analitik çözüm verildiğinden sayısal yöntemlerin ürettiği eğriler doğrudan referans çözümle karşılaştırılabilmektedir.
Kaynakta:
\[ S(t)= \frac{Ne^{-\alpha tN}c} {1+e^{-\alpha tN}c} \]
ve:
\[ I(t)= \frac{N(N-S_0)} {N-S_0+e^{-N\alpha t}S_0} \]
ifadeleri verilmekte, burada:
\[ c=\frac{S_0}{N-S_0} \]
olarak tanımlanmaktadır.
Bu analitik çözüm, Euler, RK4 ve P-C yöntemlerinin yaklaşık sonuçlarının ne kadar yaklaştığını ölçmek için referans görevi görmektedir.
SIR modeli SI modelinden nasıl farklı?
SIR modeline üçüncü bir bölme eklenir:
- S: duyarlı,
- I: enfekte,
- R: iyileşmiş/çıkarılmış bireyler.
Kaynakta SIR sistemi:
\[ \frac{dS}{dt}=-\alpha SI \]
\[ \frac{dI}{dt}=\alpha SI-\beta I \]
\[ \frac{dR}{dt}=\beta I \]
olarak tanımlanmaktadır.
Toplam popülasyon:
\[ N=S+I+R \]
şeklindedir.
| SIR parametresi | Kaynakta kullanılan değer |
|---|---|
| α | 2,18 × 10⁻³ |
| β | (2,18 × 10⁻³) × 202 |
| S(0) | 762 |
| I(0) | 1 |
| R(0) | 0 |
| Zaman aralığı | 0–14 gün |
Kaynak bu parametreleri, Murray'nin aktardığı ve 1978'de bir erkek yatılı okulundaki influenza salgınıyla ilişkilendirilen verilere dayandırmaktadır.
Euler yöntemi nasıl çalışıyor?
Euler yöntemi çalışmadaki en basit ve birinci mertebeden sayısal yöntemdir. Genel başlangıç değer problemi:
\[ \frac{dy}{dx}=f(x,y) \]
için çözüm:
\[ y_{n+1}=y_n+h f(x_n,y_n) \]
ile adım adım ilerletilmektedir.
Adım büyüklüğü:
\[ h=\frac{b-x_0}{n} \]
olarak tanımlanmıştır.
SI modeli için:
\[ S_{n+1}=S_n-h\alpha S_n I_n \]
\[ I_{n+1}=I_n+h\alpha S_n I_n \]
elde edilir.
Euler yöntemi her adımda yalnız mevcut noktadaki eğimi kullandığından hesaplama maliyeti düşüktür; ancak kaynak sonuçları, özellikle daha büyük h değerlerinde RK4 ve P-C'ye göre daha düşük R² değerleri üretildiğini göstermektedir.
RK4 neden daha doğru sonuç veriyor?
Dördüncü mertebe Runge–Kutta yöntemi her zaman adımında dört ara eğim hesaplayarak çözümün değişimini daha ayrıntılı temsil etmektedir.
Genel RK4 güncellemesi:
\[ y_{n+1} = y_n+ \frac{h}{6} (k_1+2k_2+2k_3+k_4) \]
şeklindedir.
Kaynakta \(k_1\), \(k_2\), \(k_3\) ve \(k_4\) hem SI hem de SIR sistemlerinin S, I ve gerektiğinde R değişkenleri için ayrı ayrı türetilmiştir.
SI sonuçlarında RK4, h = 0,25 gibi incelenen en büyük adım büyüklüğünde bile tabloda yedi ondalık basamak düzeyinde R² = 1,0 vermektedir. Bu değer kaynağın yuvarlatılmış raporudur ve RK4 çözümünün analitik çözümle matematiksel olarak tam özdeş olduğunu kanıtlamaz.
Predictor–Corrector yöntemi nasıl çalışıyor?
P-C yöntemi iki aşamalıdır. Önce Euler benzeri predictor adımıyla bir sonraki nokta tahmin edilir:
\[ \tilde y_{i+1} = y_i+h f(x_i,y_i) \]
Ardından tahmin edilen noktadaki türev de kullanılarak corrector uygulanır:
\[ y_{i+1} = y_i+ \frac{h}{2} \left[ f(x_i,y_i)+ f(x_{i+1},\tilde y_{i+1}) \right] \]
Kaynak sonuçlarında P-C'nin doğruluğu Euler'den belirgin biçimde yüksek, ancak RK4'ün hemen altında veya raporlama hassasiyetinde ona eşit görünmektedir.
| field | value |
|---|---|
| title | Epidemiyolojik modelden performans karşılaştırmasına |
| subtitle | SI/SIR diferansiyel denklemleri, sayısal çözüm seçimi, adım büyüklüğü, yazılım ortamı, doğrulama ve süre analizini birleştiren çalışma akışı |
- 1. SI veya SIR diferansiyel denklem sistemi ile başlangıç koşulları tanımlanır ve S, I, gerekirse R zaman serileri hedeflenir
- 2. Euler, RK4 veya Predictor–Corrector yöntemlerinden biri seçilerek adım adım yaklaşık çözüm elde edilir
- 3. h = 0,25; 0,10 veya 0,01 adım büyüklükleri uygulanarak farklı çözünürlükte hesaplamalar oluşturulur
- 4. Aynı yöntem Python, MATLAB ve R ortamlarında çalıştırılarak üç ayrı çalışma süresi kaydedilir
- 5A. SI doğrulamasında sayısal çözüm analitik SI çözümüyle karşılaştırılır ve R² hesaplanır
- 5B. SIR doğrulamasında MATLAB RK4 çözümü, MATLAB ODE45 referansıyla karşılaştırılarak S, I ve R için R² üretilir
- 6. Doğruluk ile saf algoritma çalışma süresi birlikte değerlendirilir ve yöntem/yazılım karşılaştırması tamamlanır
fidelity: source-faithful
source: Süreç, çalışmanın yöntem ve performans değerlendirme zincirinden türetilmiştir.
R² burada neyi ölçüyor?
Kaynak, sayısal çözüm ile referans çözüm arasındaki uyumu:
\[ R^2 = 1- \frac{ \sum_{i=1}^{n} (y_i-\tilde y_i)^2 }{ \sum_{i=1}^{n} (y_i-\bar y)^2 } \]
ile değerlendirmektedir.
Burada \(y_i\) exact/reference çözümü, \(\tilde y_i\) sayısal yöntemin tahminini ve \(\bar y\) referans çözümün ortalamasını temsil eder.
SI modelinde referans analitik çözümdür. SIR modelinde ise kaynak yalnız MATLAB RK4 değerlendirmesi için MATLAB ODE45 çıktısını referans olarak kullanmıştır.
SI modelinde hangi yöntem daha doğru?
Kaynağın Tablo 1'i açık bir sıralama göstermektedir. Aynı h değerinde Python, MATLAB ve R aynı R² değerini vermektedir; fark yazılım ortamından değil sayısal yöntemden kaynaklanmaktadır.
Verianla Live: SI modelinde yöntem doğruluğu
Tablo S değişkenini göstermektedir; kaynakta I için verilen R² değerleri aynıdır.
| Adım büyüklüğü h | Euler R² | P-C R² | RK4 R² |
|---|---|---|---|
| 0,25 | 0,9585463 | 0,9994189 | 1,0000000 |
| 0,10 | 0,9927564 | 0,9999798 | 1,0000000 |
| 0,01 | 0,9999239 | 1,0000000 | 1,0000000 |
Verianla Live: Değerler kaynak çalışmanın Tablo 1'inden alınmıştır ve yedi ondalık basamağa yuvarlanmış kaynak değerleridir. “1,0000000” görünümü matematiksel olarak sıfır hata anlamında yorumlanmamalıdır.
Euler yöntemi h = 0,25'te R² = 0,9585463 iken h = 0,01'de 0,9999239'a ulaşmaktadır. P-C aynı koşullarda 0,9994189'dan kaynak raporlama hassasiyetinde 1,0'a yükselmektedir.
RK4 ise incelenen üç h değerinin tamamında yedi ondalık basamağa yuvarlandığında R² = 1,0 olarak raporlanmıştır.
Sayfa 6'daki SI grafikleri ne gösteriyor?
Kaynağın 6. sayfasında üç ayrı satır hâlinde Python, MATLAB ve R sonuçları bulunmaktadır. Her satırda Euler, RK4 ve P-C olmak üzere üç grafik yer almaktadır.
Euler grafiklerinde farklı h değerleri için sayısal eğriler arasında özellikle S ve I eğrilerinin hızlı değiştiği geçiş bölgesinde gözle görülebilen ayrışma bulunmaktadır. Adım küçüldükçe eğriler exact solution'a yaklaşmaktadır.
RK4 grafiklerinde farklı h çözümleri ile exact solution görsel olarak neredeyse üst üste binmektedir. P-C grafiklerinde de yakın bir uyum görülmektedir. Bu görsel davranış Tablo 1'deki R² değerleriyle uyumludur.
SI modelinde çalışma süreleri ne kadar?
| Yöntem / h | Python (s) | MATLAB (s) | R (s) |
|---|---|---|---|
| Euler / 0,25 | 0,000037 | 0,004027 | 0,015112 |
| Euler / 0,10 | 0,000081 | 0,007183 | 0,011526 |
| Euler / 0,01 | 0,000764 | 0,018744 | 0,009426 |
| RK4 / 0,25 | 0,000163 | 0,012201 | 0,024517 |
| RK4 / 0,10 | 0,000398 | 0,021967 | 0,024647 |
| RK4 / 0,01 | 0,003950 | 0,025777 | 0,031478 |
| P-C / 0,25 | 0,000097 | 0,007261 | 0,016191 |
| P-C / 0,10 | 0,000187 | 0,015156 | 0,010234 |
| P-C / 0,01 | 0,001742 | 0,018358 | 0,022058 |
Python, SI tablosundaki dokuz yöntem/adım kombinasyonunun tamamında en düşük süreyi vermektedir.
Ancak MATLAB ile R arasında kaynak sonuç bölümünün ifade ettiği kadar kesin bir sıralama yoktur. Örneğin Euler/h=0,01 ve P-C/h=0,10 deneylerinde R, MATLAB'dan daha kısa süre raporlamıştır.
Adım büyüklüğü küçüldüğünde neden süre çoğunlukla artıyor?
Daha küçük h, aynı 14 günlük zaman aralığında daha fazla hesaplama adımı anlamına gelir. Kaynak tablolarında özellikle Python'da bu davranış oldukça açık görülmektedir.
Örneğin SI–RK4 için Python süresi:
- h = 0,25 → 0,000163 s,
- h = 0,10 → 0,000398 s,
- h = 0,01 → 0,003950 s
olarak artmaktadır.
R ve MATLAB değerleri ise bazı küçük deneylerde tamamen monoton değildir. Bu durum kaynakta ayrıca analiz edilmemiştir ve çalışma zamanlamasının tekrar sayısı veya ölçüm değişkenliği raporlanmadığı için küçük zaman farklarının nedenini kaynaktan kesin biçimde belirlemek mümkün değildir.
SIR modelinde eğriler ne gösteriyor?
Kaynağın 8. sayfasında yine Python, MATLAB ve R için üçer panel bulunmaktadır. SIR modelinde susceptible popülasyon zamanla azalırken infected popülasyon önce yükselip tepe yaptıktan sonra düşmekte, recovered popülasyon ise zaman içinde artmaktadır.
Euler yöntemi için farklı h değerleri arasında daha belirgin ayrışma görülürken RK4 ve P-C grafiklerindeki çözümler birbirine daha yakın görünmektedir.
Bu şekiller nitel davranışı karşılaştırmaktadır. Kaynak SIR için bütün yöntem ve yazılımları kapsayan ortak bir R² tablosu sunmamaktadır.
MATLAB ODE45 neden kullanılmış?
SIR sisteminin bu çalışma kapsamında analitik bir exact solution'ı kullanılmadığından yazarlar MATLAB'ın ODE45 çözücüsünü yüksek doğruluklu referans olarak seçmiştir.
Ardından yalnız MATLAB'daki RK4 çözümleri bu referansla karşılaştırılmıştır.
| Değişken | h = 0,25 | h = 0,10 | h = 0,01 |
|---|---|---|---|
| S için R² | 0,9999998 | 0,9999998 | 0,9999998 |
| I için R² | 0,9999996 | 0,9999996 | 0,9999996 |
| R için R² | 0,9999998 | 0,9999998 | 0,9999998 |
Bu sonuçlar kaynak koşullarında MATLAB RK4 çözümünün ODE45 referansına çok yakın olduğunu göstermektedir.
Ancak üç h değerinde aynı yedi ondalık basamak değerlerinin bulunması, farklı adım büyüklüklerinin gerçekte aynı hata değerine sahip olduğunu kanıtlamaz; çalışma sonuçları yedi ondalık basamağa yuvarlamaktadır.
Ayrıca kaynak, ODE45'in tolerans ayarlarını vermemektedir. Bu nedenle ODE45 burada çalışmanın seçtiği yüksek doğruluklu referanstır, matematiksel exact solution olarak değerlendirilmemelidir.
SIR modelinde çalışma süreleri ne kadar?
| Yöntem / h | Python (s) | MATLAB (s) | R (s) |
|---|---|---|---|
| Euler / 0,25 | 0,000089 | 0,008406 | 0,012420 |
| Euler / 0,10 | 0,000125 | 0,006414 | 0,007369 |
| Euler / 0,01 | 0,001185 | 0,015666 | 0,016969 |
| RK4 / 0,25 | 0,000244 | 0,015694 | 0,054937 |
| RK4 / 0,10 | 0,000555 | 0,024379 | 0,031706 |
| RK4 / 0,01 | 0,005373 | 0,030900 | 0,034045 |
| P-C / 0,25 | 0,000140 | 0,010834 | 0,020174 |
| P-C / 0,10 | 0,000294 | 0,017722 | 0,029155 |
| P-C / 0,01 | 0,002685 | 0,025391 | 0,018921 |
Python burada da dokuz koşulun tamamında en düşük raporlanan çalışma süresine sahiptir.
SIR P-C için h = 0,01 koşulunda ise R'nin 0,018921 saniyelik süresi MATLAB'ın 0,025391 saniyelik süresinden düşüktür. Bu değer kaynak sonuçlarındaki “R consistently slowest” ifadesinin bütün deney kombinasyonları için geçerli olmadığını açık biçimde göstermektedir.
Verianla Live: h = 0,01 koşulunda RK4 çalışma süreleri
| Model | Python (s) | MATLAB (s) | R (s) |
|---|---|---|---|
| SI | 0,003950 | 0,025777 | 0,031478 |
| SIR | 0,005373 | 0,030900 | 0,034045 |
Verianla Live: Veriler kaynak çalışmanın Tablo 2 ve Tablo 4'ünden alınmıştır. Ölçümler tek donanım ve kaynakta belirtilen zamanlama prosedürü bağlamındadır; genel Python/MATLAB/R benchmark sonucu olarak genellenmemelidir.
Python gerçekten MATLAB'dan daha hızlı mı?
Bu çalışmanın raporladığı deneylerde evet; genel olarak bütün Python ve MATLAB programları için böyle bir sonuç çıkarılamaz.
Kaynak tablolarında Python, toplam 18 SI/SIR yöntem–h kombinasyonunun tamamında MATLAB ve R'den daha düşük süre vermektedir. Bu, çalışma verisinin desteklediği güçlü bir bulgudur.
Ancak deney tasarımında şu bilgiler verilmemektedir:
- Python sürümü,
- MATLAB sürümü,
- R sürümü,
- kullanılan interpreter/compiler ayrıntıları,
- her dilde kullanılan kesin timing fonksiyonu,
- aynı testin kaç kez tekrarlandığı,
- ortalama veya medyan süre kullanılıp kullanılmadığı,
- sürelerin standart sapması veya güven aralığı,
- warm-up veya JIT etkilerinin nasıl yönetildiği.
Ölçümler ayrıca yalnız Apple M4 işlemcili ve 16 GB RAM'li tek bir MacBook Air üzerinde gerçekleştirilmiştir.
Bu nedenle sonuç, “kaynak uygulamaları bu donanım ve yöntem altında Python'da daha kısa çalışma süresi üretmiştir” biçiminde yorumlanmalıdır.
MATLAB açısından çalışmanın ana sonucu nedir?
MATLAB bu çalışmada iki ayrı rol üstlenmektedir. Birincisi, Euler, RK4 ve P-C yöntemlerinin Python ve R ile karşılaştırıldığı genel hesaplama ortamlarından biridir. İkincisi ve MATLAB'a özgü olan rol, SIR çözümünün doğrulanmasında ODE45 referans çözücüsünün kullanılmasıdır.
MATLAB'ın çalışma süreleri Python'dan yüksek olmasına rağmen SIR modelindeki MATLAB RK4 sonuçları ODE45 referansına karşı:
- S için R² = 0,9999998,
- I için R² = 0,9999996,
- R için R² = 0,9999998
seviyesinde raporlanmıştır.
Dolayısıyla çalışma MATLAB açısından “en hızlı ortam” sonucu üretmemekte; ancak hem kullanıcı tarafından kodlanan klasik RK4 çözümünün hem de yerleşik ODE45 referansının aynı çalışma içinde karşılaştırılmasını sağlamaktadır.
Türkiye açısından neden ayrıca dikkat çekici?
Çalışmanın iki yazarı da Ankara Üniversitesi Matematik Bölümü bağlantılıdır. Dolayısıyla araştırma doğrudan Türkiye'deki bir akademik kurumdan çıkmıştır.
Bununla birlikte kullanılan epidemiyolojik parametreler Türkiye'deki güncel bir salgın verisinden gelmemektedir. Kaynak, SI/SIR parametrelerini Murray tarafından aktarılan ve 1978 tarihli yatılı okul influenza verisiyle ilişkilendirilen örnekten almaktadır.
Bu nedenle çalışma Türkiye'deki bir enfeksiyonun yayılımını tahmin eden epidemiyolojik saha araştırması değil, epidemiyolojik diferansiyel denklem modelleri üzerinden yapılan sayısal yöntem ve hesaplama ortamı karşılaştırmasıdır.
Çalışmanın desteklediği sonuçlar
- SI ve SIR modelleri Euler, RK4 ve Predictor–Corrector yöntemleriyle Python, MATLAB ve R ortamlarında çözülebilmiştir.
- SI modelinde aynı yöntem ve h değeri için Python, MATLAB ve R aynı raporlanan R² değerlerini üretmiştir.
- SI modelinde RK4 kaynak tablosunda bütün h değerlerinde R² = 1,0 olarak raporlanmıştır.
- P-C, SI modelinde Euler'den daha yüksek R² değerleri üretmiştir.
- Euler çözümünün SI doğruluğu h küçüldükçe belirgin biçimde yükselmiştir.
- Python bütün raporlanan SI ve SIR çalışma süresi kombinasyonlarında en düşük süreyi vermiştir.
- MATLAB RK4 SIR çözümü ODE45 referansına çok yüksek R² değerleriyle yaklaşmıştır.
- RK4 ve P-C yöntemleri genel olarak Euler'den daha fazla işlem gerektiren algoritmalardır ve kaynak tablolarında çoğu karşılaştırmada daha yüksek süreler görülmektedir.
Çalışmanın desteklemediği, test etmediği veya kanıtlamadığı sonuçlar
- Python'ın bütün sayısal bilimsel hesaplamalarda MATLAB ve R'den daha hızlı olduğu gösterilmemektedir.
- R'nin bütün test koşullarında MATLAB'dan daha yavaş olduğu kaynak tabloları tarafından desteklenmemektedir.
- Çalışma farklı CPU, işletim sistemi veya bilgisayar mimarilerinde aynı hız sıralamasının korunacağını göstermemektedir.
- Çalışma yazılım sürümleri arasında performans karşılaştırması yapmamaktadır.
- Çalışma tekrar ölçümlerinden elde edilen varyans, standart sapma veya güven aralığı sunmamaktadır.
- SIR modelinde Python, MATLAB ve R'nin doğrulukları ortak bir ODE45 R² tablosuyla karşılaştırılmamıştır.
- SIR modelinde Euler ve P-C yöntemlerinin ODE45'e karşı R² doğrulaması raporlanmamıştır.
- Tabloda R² = 1,0 görülmesi sayısal çözümün exact solution ile matematiksel olarak tamamen eşit olduğunu kanıtlamaz; değerler yuvarlanmıştır.
- Çalışma gerçek zamanlı salgın tahmini veya epidemiyolojik politika etkinliği değerlendirmesi değildir.
- Çalışma Python, MATLAB veya R'nin kod geliştirme süresi, bellek kullanımı, ekosistem, kullanılabilirlik veya lisans maliyetini karşılaştırmamaktadır.
Çalışmanın Yöntemi ve Bulguları
Deney tasarımının özeti
| Özellik | Çalışmada kullanılan yapı |
|---|---|
| Modeller | SI ve SIR |
| Sayısal yöntemler | Euler, RK4, Predictor–Corrector |
| Hesaplama ortamları | Python, MATLAB, R |
| Adım büyüklükleri | 0,25; 0,10; 0,01 |
| SI referansı | Analitik çözüm |
| SI doğruluk ölçütü | R² |
| SIR referansı | MATLAB ODE45 |
| SIR nicel doğrulama | MATLAB RK4 ile ODE45 arasında R² |
| Zamanlama | Yalnız saf sayısal algoritma hesaplama süresi |
| Donanım | MacBook Air, Apple M4, 16 GB RAM |
SI doğruluk sonuçlarının tamamı ne söylüyor?
SI modelinde yazılım ortamı değiştirilmesine rağmen aynı yöntem ve adım büyüklüğünde R² değişmemektedir. Örneğin Euler/h=0,25 için Python, MATLAB ve R'nin her biri R² = 0,9585463 vermektedir.
Bu nedenle SI accuracy tablosu, Python–MATLAB–R arasında sayısal doğruluk farkından çok Euler–P-C–RK4 arasındaki yöntem farkını göstermektedir.
| Yöntem | h = 0,25 | h = 0,10 | h = 0,01 |
|---|---|---|---|
| Euler | 0,9585463 | 0,9927564 | 0,9999239 |
| P-C | 0,9994189 | 0,9999798 | 1,0000000 |
| RK4 | 1,0000000 | 1,0000000 | 1,0000000 |
Bu değerler hem S hem I için aynıdır.
Hız karşılaştırmasının en sağlam bulgusu nedir?
Kaynak verilerindeki en tutarlı çalışma süresi bulgusu Python'ın en düşük süreyi vermesidir.
Örneğin en küçük adım büyüklüğü h = 0,01 kullanıldığında:
| Model / yöntem | Python (s) | MATLAB (s) | R (s) |
|---|---|---|---|
| SI – Euler | 0,000764 | 0,018744 | 0,009426 |
| SI – RK4 | 0,003950 | 0,025777 | 0,031478 |
| SI – P-C | 0,001742 | 0,018358 | 0,022058 |
| SIR – Euler | 0,001185 | 0,015666 | 0,016969 |
| SIR – RK4 | 0,005373 | 0,030900 | 0,034045 |
| SIR – P-C | 0,002685 | 0,025391 | 0,018921 |
Python bu altı karşılaştırmanın tamamında en küçük değere sahiptir. Buna karşılık MATLAB ve R'nin sıralaması yönteme göre değişmektedir.
Kaynağın “R en yavaş” sonucundaki tutarsızlık
Çalışmanın sonuç bölümü R'nin üç ortam arasında sürekli olarak en yavaş olduğunu ifade etmektedir. Ancak Tablo 2 ve Tablo 4 bu mutlak ifadeyle tam uyumlu değildir.
| R'nin MATLAB'dan hızlı olduğu kaynak örneği | MATLAB | R |
|---|---|---|
| SI, Euler, h=0,01 | 0,018744 s | 0,009426 s |
| SI, P-C, h=0,10 | 0,015156 s | 0,010234 s |
| SIR, P-C, h=0,01 | 0,025391 s | 0,018921 s |
Dolayısıyla kaynak tablosuna sadık sonuç şudur: Python bütün raporlanan kombinasyonlarda en hızlıdır; MATLAB ve R arasındaki ikinci/üçüncü sıra ise bütün koşullarda sabit değildir.
Zaman ölçümünün kapsamı
Kaynak çalışmada zamanlayıcı algoritmanın başlangıç ve bitişine yerleştirilmiş ve yalnız sayısal yöntemin saf hesaplama süresi kaydedilmiştir.
Aşağıdaki işlemler ölçüme dahil edilmemiştir:
- parametre tanımlama,
- değişken initialization,
- model setup,
- grafik çizimi.
Bu yaklaşım sayısal loop'un çalışma süresine odaklanmaktadır; fakat kullanıcının gerçek uçtan uca analiz süresini ölçmemektedir.
Benchmark'ın yeniden üretilebilirlik sınırları
Kaynak donanımı açıklamakta ancak performans karşılaştırmasını tam olarak yeniden üretmek için gerekli bazı teknik ayrıntıları raporlamamaktadır.
| Bilgi | Kaynak durumu |
|---|---|
| Bilgisayar | MacBook Air |
| İşlemci | Apple M4 |
| RAM | 16 GB |
| Python sürümü | Belirtilmemiş |
| MATLAB sürümü | Belirtilmemiş |
| R sürümü | Belirtilmemiş |
| Timing fonksiyonları | İsimleri belirtilmemiş |
| Tekrar sayısı | Belirtilmemiş |
| Ortalama/medyan süre | Belirtilmemiş |
| Standart sapma / CI | Raporlanmamış |
| Warm-up / JIT prosedürü | Raporlanmamış |
Özellikle en küçük ölçümlerin onlarca veya yüzlerce mikrosaniye düzeyinde olması nedeniyle bu ayrıntılar genel programlama dili performansı hakkında çıkarım yaparken önemlidir. Kaynak kendi ölçüm prosedüründe bu unsurların etkisini ayrı olarak analiz etmemektedir.
SIR doğrulamasının kapsamı
SIR için Tablo 3'ün başlığı “R² values of each numerical method in MATLAB” ifadesini kullanmasına rağmen tablonun kendisi yalnız RK4 Method – MATLAB sonuçlarını içermektedir.
Bu nedenle kaynaktan:
- MATLAB Euler'in ODE45'e göre R²'si,
- MATLAB P-C'nin ODE45'e göre R²'si,
- Python RK4'ün ODE45'e göre R²'si,
- R RK4'ün ODE45'e göre R²'si
çıkarılamaz.
Kaynağın doğruladığı daha dar sonuç, MATLAB'da yazarların uyguladığı RK4 çözümünün ODE45 referansına çok yakın olmasıdır.
Çalışmanın ana sonucu
Kaynak verileri birlikte değerlendirildiğinde iki farklı sonuç ortaya çıkmaktadır:
- Doğruluk açısından: SI modelinde RK4 en yüksek raporlanan R² değerlerine sahiptir; P-C çok yakındır ve Euler özellikle büyük adım büyüklüğünde daha düşük doğruluk gösterir.
- Kaynak uygulamalarındaki süre açısından: Python bütün raporlanan deney kombinasyonlarında MATLAB ve R'den daha kısa çalışma süresi verir.
Bu iki sonuç birbirine karıştırılmamalıdır. Python'ın daha kısa çalışma süresi, RK4'ün sayısal doğruluğundan ayrı bir bulgudur.
Temel sınırlılıklar
- Performans testi tek bilgisayarda gerçekleştirilmiştir.
- Python, MATLAB ve R sürümleri raporlanmamıştır.
- Zaman ölçümünün tekrar sayısı verilmemiştir.
- Çalışma süreleri için varyans veya güven aralığı bulunmamaktadır.
- Yalnız algoritmanın saf hesaplama süresi ölçülmüştür.
- Farklı implementasyonların kod optimizasyon düzeylerinin eşdeğer olup olmadığı ayrıntılı olarak gösterilmemiştir.
- SI accuracy değerlendirmesi R² ile sınırlıdır; mutlak hata veya maksimum hata tablosu bulunmamaktadır.
- SIR accuracy testi yalnız MATLAB RK4 ile ODE45 karşılaştırmasına uygulanmıştır.
- ODE45 tolerans ayarları kaynakta raporlanmamıştır.
- Model yalnız SI ve SIR gibi küçük denklem sistemlerini kapsar; büyük ölçekli ODE sistemlerine hız sonuçları doğrudan genellenemez.
Kaynak ve Yöntem Notu
Tam özgün çalışma adı: Performance comparison of Python, MATLAB and R for numerical solutions of SI and SIR epidemiological models
Yazarlar ve özgün sıralama: Berkay Özışık; Elif Demirci.
Sorumlu yazar: Yüklenen PDF'de ayrı bir corresponding-author işareti bulunmamaktadır. Her iki yazar için ayrı e-posta adresi verilmiştir.
Eş birinci/eş katkı: Yüklenen sürümde eş katkı beyanı bulunmamaktadır.
Kurum: Ankara University, Faculty of Sciences, Department of Mathematics, Besevler, Ankara, Türkiye.
Kaynak türü: Sayısal analiz, epidemiyolojik matematiksel modelleme ve programlama ortamı performans karşılaştırması çalışması.
Yayın durumu: Yüklenen çalışma hakem değerlendirmesinden geçmemiş bir arXiv preprintidir; bulguları bu yayın aşaması dikkate alınarak değerlendirilmelidir.
Platform: arXiv.
arXiv kimliği: 2603.01916.
Yüklenen sürüm: v2 [math.NA].
İlk gönderim: 2 Mart 2026.
v2 revizyon tarihi: 4 Mart 2026.
DOI: 10.48550/arXiv.2603.01916.
Hakemli yayın sürümü: 24 Ağustos 2026 itibarıyla bibliyografik kontrolde aynı başlıkla doğrulanmış ayrı bir hakemli dergi sürümü tespit edilmemiştir.
Makale lisansı: arXiv kaydının lisans bağlantısı CC BY-SA 4.0 lisansına yönlenmektedir.
Temel modeller: Susceptible–Infected (SI) ve Susceptible–Infected–Recovered (SIR).
Sayısal yöntemler: Euler yöntemi, dördüncü mertebe Runge–Kutta (RK4) ve Predictor–Corrector.
Karşılaştırılan ortamlar: Python, MATLAB ve R.
SI doğrulaması: Kaynakta verilen analitik SI çözümüne karşı R².
SIR doğrulaması: MATLAB ODE45 referansına karşı yalnız MATLAB RK4 çözümü için R².
Donanım: Apple M4 işlemcili ve 16 GB RAM'li MacBook Air.
Çalışma süresi kapsamı: Yalnız sayısal algoritmanın saf hesaplama süresi ölçülmüş; parameter definition, variable initialization, model setup ve plotting hariç bırakılmıştır.
Reproducibility sınırı: Kaynak Python, MATLAB ve R sürümlerini, kesin timing fonksiyonlarını, benchmark tekrar sayısını, warm-up/JIT yöntemini, sürelerin ortalama/medyan olup olmadığını ve timing varyansını raporlamamaktadır.
Kaynak-içi sonuç tutarsızlığı — R çalışma süresi: Sonuç bölümünde R'nin üç ortam arasında sürekli olarak en yavaş olduğu ifade edilmektedir. Ancak Tablo 2'de SI Euler/h=0,01 için R = 0,009426 s ve MATLAB = 0,018744 s; SI P-C/h=0,10 için R = 0,010234 s ve MATLAB = 0,015156 s'dir. Tablo 4'te SIR P-C/h=0,01 için R = 0,018921 s ve MATLAB = 0,025391 s'dir. Bu nedenle “R her koşulda en yavaş” sonucu kaynak tablolarıyla tam uyumlu değildir. Python ise bütün raporlanan kombinasyonlarda en düşük süreye sahiptir.
Kaynak-içi tablo ifadesi — SIR R²: Tablo 3 açıklaması “each numerical method in MATLAB” ifadesini kullanmasına rağmen tabloda yalnız RK4 Method için MATLAB–ODE45 karşılaştırması bulunmaktadır. Euler ve P-C için ODE45 R² değerleri kaynakta sunulmamıştır.
Yuvarlama sınırı: SI Tablo 1'de RK4 ve bazı P-C değerleri R² = 1,0; SIR Tablo 3'te ise farklı h değerleri aynı yedi ondalık değerlerle raporlanmaktadır. Kaynak değerleri yedi ondalık basamağa yuvarladığından bunlar exact numerical equality veya sıfır hata olarak yorumlanmamıştır.
ODE45 sınırı: Kaynak ODE45'i SIR için high-accuracy reference solution olarak kullanmaktadır ancak solver tolerans ayarlarını raporlamamaktadır. ODE45 çıktısı analitik exact solution olarak sunulmamıştır.
Veri bağlamı: SI/SIR başlangıç koşulları ve parametreleri kaynakta Murray (2002) üzerinden 1978 tarihli yatılı okul influenza salgını verileriyle ilişkilendirilmiştir. Çalışma Türkiye'ye ait epidemiyolojik saha verisini modellememektedir.
Finansman: Yüklenen preprintte ayrı bir funding statement bulunmamaktadır.
Çıkar çatışması: Yüklenen preprintte ayrı bir competing-interest beyanı bulunmamaktadır; bundan çıkar çatışması olmadığı sonucu çıkarılmamıştır.
CRediT/yazar katkıları: Yüklenen sürümde ayrı bir CRediT authorship contribution statement bulunmamaktadır.
Bilimsel yorum sınırı: Çalışmadaki çalışma süresi sonuçları belirli SI/SIR implementasyonları, tek donanım ve raporlanan zamanlama prosedürü için geçerlidir. Bunlar Python, MATLAB ve R'nin bütün bilimsel hesaplama görevlerindeki genel veya donanımdan bağımsız performans sıralaması değildir.
Bilimsel içerik sınırı: Bu Verianla makalesindeki diferansiyel denklemler, sayısal yöntemler, parametreler, R² değerleri, çalışma süreleri, ODE45 karşılaştırması ve sonuç sınırlılıkları yüklenen arXiv v2 çalışmasına dayanmaktadır. Dış bibliyografik kontrol yalnız yazar kimliği, arXiv sürümü, DOI, tarih, yayın durumu ve makale lisansının doğrulanması amacıyla kullanılmış; kaynakta bulunmayan epidemiyolojik sonuç eklenmemiştir.

Bir yorum bırakın
E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir