معادلات لوتكا-فولتيرا
ابدأ بعشر فرائس وخمسة مفترسات وحدد المعدلات الأربعة لتحصل على الأعداد في كل خطوة: مع معدلات 1.1 و0.4 و0.1 و0.4 يقع توازن التعايش عند 4 فرائس و2.75 مفترس. مجاني في متصفحك.
- مجاني
- يعمل في متصفحك
- دون تسجيل
- بياناتك لا تغادر جهازك
شغّل الأداة مجانًا
مثال محلول
- الفرائس
- 10
- المفترسات
- 5
- نمو الفرائس
- 1.1
- معدل الافتراس
- 0.4
- نمو المفترسات
- 0.1
- وفيات المفترسات
- 0.4
- Dt
- 0.1
- الفرائس النهائية
- 2.8810967151
- المفترسات النهائية
- 6.0674292649
- ذروة الفرائس
- 10
معادلات لوتكا–فولتيرا هما الزوج الكلاسيكي من المعادلات التفاضلية العادية الذي يصف كيف يتغيّر تعداد فريسة وتعداد مفترسات معًا عبر الزمن. تنمو الفرائس في غياب المفترسات وتتراجع بنسبة اللقاءات؛ وتتضوّر المفترسات جوعًا بلا فرائس وتنمو من تلك اللقاءات ذاتها. يحتاج الطلاب وعلماء البيئة ومحللو المصايد وواضعو النماذج إلى سلسلة زمنية حتمية من التعدادات الابتدائية ومعاملات المعدلات الأربعة، لا إلى لقطة لرسم يتعذّر إعادة تشغيله. تُكامل هذه الحاسبة dx/dt = αx − βxy و dy/dt = δxy − γy بطريقة رونج–كوتا من الرتبة الرابعة بخطوة ثابتة، وتعيد المسار والقمم والقيعان والتوازن الداخلي متى وُجد.
ماذا تقول معادلات لوتكا–فولتيرا عن المفترس والفريسة
كتب ألفرد لوتكا وفيتو فولتيرا في عشرينيات القرن العشرين، كلٌّ على حدة، النموذج نفسه لنوعين: مخزون فرائس x ينمو أسيًا بمفرده، ومخزون مفترسات y يتراجع أسيًا بلا غذاء. تُكتب اللقاءات جداء x في y. تتبع الفرائس إذن dx/dt يساوي αx ناقص βxy، حيث α معدل النمو الذاتي للفريسة وβ معامل الافتراس.
وتتبع المفترسات dy/dt يساوي δxy ناقص γy، حيث δ تحويل الفريسة المأكولة إلى نمو المفترس وγ معدل الموت أو المجاعة. تلك المعاملات الأربعة مع التعدادين الابتدائيين يحدّدان حقل المتجهات في الربع الأول تحديدًا تامًا. عندما تكون α وβ وγ وδ موجبة جميعًا، للنظام توازن داخلي عند x-نجمة يساوي γ على δ و y-نجمة يساوي α على β؛ والمدارات حول تلك النقطة مغلقة في النموذج المستمر الدقيق، ولهذا تعرض رسوم الكتب الدورات الشهيرة المتزاحمة طورًا: ترتفع الفرائس، تتبعها المفترسات، تنهار الفرائس، تنهار المفترسات، وتتكرر الحلقة.
النموذج ليس منظومة بيئية كاملة: يتجاهل السعة الحملية وبنية الأعمار والملاذ والانقراض العشوائي. وهو أداة الدرجة الأولى لتعليم وتخطيط النمو والافتراس المقترنين. الوحدات تبقى وحداتك: إذا كانت x و y حيوانات لكل كيلومتر مربع والزمن بالسنوات، فالمعدلات بمقلوب السنة وتعيد السلسلة الوحدات نفسها.
تُقبل التعدادات والمعدلات الصفرية وتنتج مسارات منحلة لكنها معرّفة جيدًا، مثل النمو الأسي للفريسة عندما تبدأ المفترسات من صفر. التعدادات أو المعدلات السالبة ليست بيولوجية في هذا العقد وتُرفض بدل أن تُقصّ بصمت عند حدّ الإدخال.
أين تبرّر واجهة سلسلة زمنية مفترس-فريسة كلفتها
تطلب مقررات البيئة في المرحلة الثانوية والجامعة مرارًا أن يرسم الطلاب دورات لوتكا–فولتيرا من جدول x(t) و y(t). يتيح وحي RK4 حتمي التحقق من أن الفرائس تبلغ الذروة قبل المفترسات، وأن المدار المتقطع يبقى قرب التوازن المتوقع، وأن معدلًا سالبًا غير قانوني بدل NaN صامت في ورقة حساب. يحتاج مخططو المصايد والحياة البرية أحيانًا إلى توقّع مقترن من الدرجة الأولى: عند التعدادات الحالية ومعدلات النمو والافتراس المفترضة، كيف يتحرّك المخزونان على أفق T من وحدات الزمن؟
سقف الخطوات يبقي الـ isolate رخيصًا مع حلّ بضع دورات مع ذلك. عمل الحساسية استدعاءات إضافية قليلة: ثبّت الابتدائيات وغيّر α أو β لترى هل تنمو قمة المفترس أم تنهار. أبقِ المعاملات الثمانية غير سالبة ومنتهية، واختر steps كبيرًا بما يكفي لحلّ المدار الذي يهمّك (من عشرة إلى أربعين نموذجي لرسم واجب؛ ومئتان هو السقف الصلب)، وعامل السلسلة مسارًا عدديًا للمعادلات الكلاسيكية — لا تعدادًا ميدانيًا مُلائَمًا ولا نموذج انقراض عشوائي ولا منحنى لوجستي للفريسة وحدها.
حالات الاستخدام
واجبات البيئة ورسوم الدورات
من تعدادات الفريسة والمفترس الابتدائية مع معدلات لوتكا–فولتيرا الأربعة، احصل على سلسلة زمنية يرسمها الطلاب لرؤية الدورات الكلاسيكية المتزاحمة طورًا.
تصحيح آلي للامتحانات وأنظمة LMS
صحّح بنود مفترس-فريسة بوحي RK4 حتمي يرفض المعاملات السالبة أو غير المنتهية بدل إعادة مسار فارغ بصمت.
مسودات من الدرجة الأولى للحياة البرية والمصايد
أسقط مخزونين مقترنين على أفق تخطيط T من التعداد الحالي ومعدلات النمو والافتراس المفترضة، دون إقامة صندوق أدوات ODE كامل.
الأسئلة الشائعة
أي مكامل تستخدمه الحاسبة؟
بعد كل خطوة يُقصّ تجاوز عددي دون الصفر إلى صفر.
ما توازن التعايش لمعادلات لوتكا–فولتيرا؟
تُحذف تلك المفاتيح إذا كان القاسم المطابق صفرًا.
ماذا تعني المعدلات الأربعة في معادلات لوتكا–فولتيرا؟
ألفا هو سرعة نمو الفرائس وحدها، وبيتا مقدار ما تُنقصه اللقاءات منها، ودلتا كفاءة تحول الفرائس المأكولة إلى مفترسات جديدة، وغاما سرعة موت المفترسات في غياب الغذاء.
لماذا تتذبذب أعداد المفترسات والفرائس في دورات؟
تزداد الفرائس فتتبعها المفترسات لوفرة الغذاء، ثم تنهار الفرائس تحت الافتراس المتزايد وتنهار المفترسات بعدها. وفي النموذج الدقيق تنغلق هذه المدارات حول نقطة التوازن فتنشأ الدورات المتعاقبة المعروفة.
ماذا يحدث إذا بدأت دون مفترسات؟
تنمو الفرائس نمواً أسياً بمعدلها الخاص لأن لا شيء يُنقصها. وتُقبل الأعداد والمعدلات الصفرية، فتعطي مسارات بسيطة لكنها محددة تماماً.
أدوات ذات صلة
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/eco/lotka-volterra-equations \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"prey":10,"predators":5,"prey_growth":1.1,"predation_rate":0.4,"predator_growth":0.1,"predator_death":0.4,"duration":1,"steps":10}'const res = await fetch("https://api.kit.forhosting.com/eco/lotka-volterra-equations", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/eco/lotka-volterra-equations",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/eco/lotka-volterra-equations", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"prey":10,"predators":5,"prey_growth":1.1,"predation_rate":0.4,"predator_growth":0.1,"predator_death":0.4,"duration":1,"steps":10}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"prey":10,"predators":5,"prey_growth":1.1,"predation_rate":0.4,"predator_growth":0.1,"predator_death":0.4,"duration":1,"steps":10}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/eco/lotka-volterra-equations", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"prey": 10,
"predators": 5,
"prey_growth": 1.1,
"predation_rate": 0.4,
"predator_growth": 0.1,
"predator_death": 0.4,
"duration": 1,
"steps": 10
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "eco.lotka_volterra_equations",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_steps | 200 |
max_abs | 1000000000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |
ملاحظات تقنية
أي معامل سالب أو غير منتهٍ يفشل بـ invalid_input بدل اختراع تعداد. مسار المتصفح المجاني يستخدم الوحدة الصرفة نفسها التي تستخدمها API، فلا يختلف الواجب والأتمتة على خطوة من المدار.
عقد الإدخال والسلسلة الزمنية RK4 وسلوك الخطأ
يجب أن يكون steps عددًا صحيحًا؛ يُرفض العدّ الكسري لأن طول السلسلة جزء من العقد. يبدأ المكامل عند t يساوي صفرًا بالتعداد المعطى ثم يأخذ خطوات بحجم dt يساوي T مقسومًا على steps. كل خطوة RK4 كلاسيكي على حقل المتجهات الثنائي البعد. بعد كل خطوة يُقصّ تجاوز عددي ضئيل دون الصفر إلى صفر كي لا يصير التعداد سالبًا. تُحذف مفاتيح التوازن تلك، ولا تكون null أبدًا، إذا كان المعدل المطابق صفرًا. التحقق الفاشل لا يُفوتر. أرسل عبر POST جسم JSON بثمانية حقول إلزامية، كلٌّ منها عدد منتهٍ غير سالب: prey (x0 الابتدائي)، predators (y0 الابتدائي)، prey_growth (α)، predation_rate (β)، predator_growth (δ)، predator_death (γ)، duration (الزمن الكلي T)، و steps (عدد صحيح لخطوات RK4 الثابتة، مئتان على الأكثر). تعمل الأسماء البديلة القصيرة بالمثل: x0 و y0 و alpha و beta و delta و gamma و t_end و n_steps وسائر الأسماء في مخطط المعاملات. قد يصل كل حقل كعدد JSON أو سلسلة رقمية؛ السلاسل الفارغة والمفاتيح الناقصة و NaN واللانهايات وأي قيمة سالبة تفشل بـ invalid_input مع تسمية الحقل. إذا فاضت خطوة عن IEEE-754 تفشل المهمة بدل إعادة لانهايات. عند النجاح يعيد الجسم المدخلات الثمانية و dt و method rk4 وسلسلة الصيغة dx/dt = αx − βxy ; dy/dt = δxy − γy. series مصفوفة من steps زائد واحد من العينات {t, prey, predators} بما فيها النقطة الابتدائية. final_prey و final_predators هما العينة الأخيرة؛ وحقلا peak و trough هما الطرفان على المسار المتقطع. عندما يكون δ موجبًا يتضمن الجسم أيضًا equilibrium_prey = γ/δ؛ وعندما يكون β موجبًا يتضمن equilibrium_predators = α/β. والاستدعاءات الناجحة تستخدم رصيد KIT المدفوع مسبقًا بالسعر الأساسي المنشور $0.002 لكل عنصر. تثبّت الذهبات التقريب إلى اثني عشر منزلة عشرية كي يبقى JSON في Worker والمتصفح مستقرًا بايتًا ببايت.
أين تبرّر واجهة سلسلة زمنية مفترس-فريسة كلفتها
يمكن للمعلمين تضمين ودجة المتصفح المجانية حتى يعيد زملاء المختبر إنتاج الأرقام نفسها التي تعيدها API في المصححات الآلية. اقرن JSON برمز الرسوم البيانية الخاص بك إن احتجت صورة طور؛ تعيد هذه النقطة أرقامًا لا صورًا.
أسئلة تقنية
كيف أحاكي مجموعات لوتكا–فولتيرا من المفترس والفريسة؟
أرسل prey و predators و prey_growth (α) و predation_rate (β) و predator_growth (δ) و predator_death (γ) و duration T و steps صحيحًا، كلها منتهية وغير سالبة. تعيد API سلسلة RK4 من steps+1 عينة {t, prey, predators}.
ماذا يحدث إذا كان معامل سالبًا أو غير منتهٍ؟
تفشل المهمة بـ invalid_input مع تسمية الحقل. يجب أن تكون التعدادات والمعدلات و duration و steps منتهية وغير سالبة؛ والقيم غير المنتهية والحقول الناقصة تفشل بالمثل ولا تُفوتر.
كم تكلفة حاسبة معادلات لوتكا–فولتيرا؟
أداة المتصفح مجانية. تستخدم طلبات API رصيد KIT المدفوع مسبقًا بسعر $0.002 لكل استدعاء ناجح؛ والإدخال غير الصالح لا يُفوتر.