حاسبة عدد الشرط
تستقبل واجهة عدد الشرط مصفوفة مربعة وتعيد عدد شرطها في المعيار الثاني: أي النسبة بين أكبر قيمة مفردة وأصغر قيمة مفردة للمصفوفة.
شغّل الأداة مجانًا
يخبرك هذا الرقم الواحد بمقدار ما يمكن أن يتضخم به خطأ صغير في بياناتك — تقريب، أو ضجيج قياس، أو معامل مقطوع — عند حل نظام خطي أو قلب المصفوفة. فعدد الشرط القريب من 1 يعني أن المسألة مستقرة، أما الكبير فيحذّر من أن إجابتك قد تكون مسيطرًا عليها بالضجيج. ويُجرى الحساب في تمريرة واحدة حتمية: تُتحقَّق المصفوفة، ويُكوَّن حاصل A-منقول-A، وتُستخرج قيمه الذاتية بتكرار جاكوبي التقليدي، وتكون جذورها التربيعية هي القيم المفردة.
ما الذي يقيسه عدد الشرط فعلًا
عندما تحل نظامًا Ax = b عدديًا، فإنك نادرًا ما تعمل مع A و b الدقيقتين. فالمعاملات آتية من قياسات، أو من حسابات سابقة، أو من مدخلات عشرية قُرِّبت في الطريق. وعدد الشرط لـ A هو معامل تضخيم ذلك الغموض في أسوأ الحالات: فإذا تغيّر المدخل بمقدار نسبي إبسيلون، جاز أن يتغير الحل بما يصل إلى كابا مرة من إبسيلون. فمع كابا = 10، قد يُنتج خطأ بنسبة واحد في المئة في بياناتك خطأ بنسبة عشرة في المئة في الإجابة. ومع كابا = 1,000,000، قد تفقد ستًا من نحو ست عشرة خانة عشرية يتسع لها العدد ذو الدقة المزدوجة. وعدد الشرط في المعيار الثاني المحسوب هنا، كابا_2، يُعرَّف عبر القيم المفردة لـ A: فأكبر قيمة مفردة سيجما_max تقيس أقصى ما تستطيع المصفوفة تمديد متجه به، وأصغر قيمة مفردة سيجما_min تقيس أقصى ما تستطيع تقليصه به، ونسبتهما هي كابا_2. والمصفوفة المتعامدة كالدوران لها كابا_2 يساوي 1 تمامًا — وهو أفضل ما يمكن. أما المصفوفة ذات الصفوف التابعة خطيًا فلها سيجما_min = 0 وكابا_2 لا نهائي، ولهذا ترفض هذه القدرة المصفوفات المفردة بدل طباعة رقم ضخم لا معنى له.
كيف يُحسب الرقم هنا
الخوارزمية حتمية ومكتفية ذاتيًا، بلا أي مكتبة عددية خارجية. أولًا يُطبَّع مدخلك: يمكن إرسال المعاملات كمصفوفة من الصفوف أو كنص عادي تفصل بين صفوفه فواصل أسطر أو فواصل منقوطة، وبين قيمه فواصل أو مسافات. ويجب أن يكون كل معامل عددًا منتهيًا، وأن تتساوى أطوال الصفوف جميعها، وأن تكون المصفوفة مربعة — فالمصفوفة من رتبة 2 في 3 لا عدد شرط لها بهذا المعنى، لذا يُرفض الطلب بخطأ واضح يسمي الحقل المذنب. ثم يكوِّن الكود المصفوفة المتماثلة G = A^T A ويستخرج قيمها الذاتية بالتكرار الدوري التقليدي لجاكوبي: وهو تسلسل ثابت من الدورانات المستوية التي تصفّر المدخلات خارج القطر واحدة تلو الأخرى حتى تصبح المصفوفة قطرية بدقة العمل. ولأن ترتيب الدورانات واصطلاح الإشارة وسقف الجولات كلها ثابتة، فإن المصفوفة نفسها تعطي الإجابة نفسها دائمًا، بتًا بت. وقيم G الذاتية هي مربعات القيم المفردة لـ A، فجذورها التربيعية تعطي سيجما_max وسيجما_min، والنسبة، المقربة إلى اثنتي عشرة خانة عشرية لثبات المخرجات، هي عدد الشرط المُعاد. أما المصفوفات التي تهبط أصغر قيمها المفردة دون عتبة عددية مُقاسة — أي كابا_2 فوق عشرة مليارات تقريبًا — فتُبلَّغ على أنها مفردة عدديًا، لأن الدقة المزدوجة لا تستطيع بأمانة تمييزها عن مصفوفة ناقصة الرتبة.
قراءة النتيجة وتوظيفها جيدًا
تعطيك الاستجابة أربعة أشياء: عدد الشرط نفسه، وسيجما_max، وسيجما_min، ورسالة بلغة واضحة تصنّف المصفوفة. اعتبر أي كابا دون نحو 10 جيدة الشرط — فالحلالون المباشرون سيتصرفون حسنًا. وبين مئة ومليون، توقّع فقدانًا ظاهرًا في الدقة وفضّل الخوارزميات المستقرة: تحليل QR أو LU مع المحورنة الجزئية بدل تكوين معكوس صريح يضاعف خطأ الحساب الذي يغذيه. وفوق المليون، فالقراءة الأمينة هي أن الإجابة تعتمد على ضجيج بياناتك أكثر من اعتمادها على الحلال، والخطوة الصواب عادة إعادة قياس المسألة، أو تنظيمها، أو إعادة النظر في كون مصفوفة النموذج هي المناسبة. وهناك عادتان عمليتان مجديتان: افحص عدد الشرط قبل أن تلوم حلالًا على إجابة سيئة، فالمصفوفة سيئة الشرط تُنتج إجابات خاطئة من كود صحيح؛ وقارن أعداد الشرط بين الصياغات، فالمسألة الفيزيائية نفسها مكتوبة بوحدات أو دوال أساس مختلفة قد تختلف في كابا بمراتب من حيث المقدار. والكود نفسه الذي يعمل هنا يعمل مجانًا في متصفحك في هذه الصفحة، فيمكنك لصق مصفوفة ورؤية النتيجة قبل أن تدفع $0.002 لكل طلب لأتمتة ذلك.
حالات الاستخدام
فحص نظام خطي قبل حله
قدّر كم خانة من الحل يمكنك الوثوق بها قبل تشغيل حل LU أو QR على معاملات مقيسة.
تشخيص انحدار لا يتقارب
تظهر مصفوفة التصميم شبه الخطية الترابط كعدد شرط هائل لـ X-منقول-X قبل أن يفشل الحلال بزمن طويل.
مقارنة تقريبات المسألة نفسها
قد تختلف صياغتا عناصر منتهية أو دوال أساس للنموذج الفيزيائي نفسه في التشرط بمراتب من حيث المقدار؛ فاختر المستقرة.
الأسئلة الشائعة
كم التكلفة؟
$0.002 لكل طلب. والتشغيل مجاني أيضًا في متصفحك في هذه الصفحة.
لماذا رُفضت مصفوفتي على أنها مفردة؟
لأن أصغر قيمتها المفردة صفر عدديًا، وهو ما يجعل عدد الشرط لا نهائيًا. ويشمل ذلك أيضًا المصفوفات القابلة للقلب تقنيًا لكنها ناقصة الرتبة بالدقة المزدوجة (كابا فوق نحو عشرة مليارات).
لماذا يجب أن تكون المصفوفة مربعة؟
لأن عدد الشرط في المعيار الثاني، كابا_2 = سيجما_max / سيجما_min، يُعرَّف عبر القيم المفردة لمصفوفة معاملات مربعة. أما مسائل المربعات الصغرى المستطيلة فقُم بتشرط المصفوفة المربعة X-منقول-X بدلًا منها.
كيف أرسل المصفوفة؟
كمصفوفة من صفوف عددية متساوية الطول، أو كنص تفصل بين صفوفه فواصل أسطر أو فواصل منقوطة وبين معاملاته فواصل أو مسافات. وكلا الشكلين يعطي نتائج متماثلة.
ما حجم المصفوفة المقبول؟
حتى 32 في 32، وبقيم مطلقة للمعاملات حتى 1e12. والحساب حساب دقيق بالدقة المزدوجة مع تكرار جاكوبي حتمي.
هل النتيجة قابلة للتكرار؟
نعم. يستخدم تكرار جاكوبي ترتيب دورانات واصطلاح إشارة وسقف جولات ثابتة، فينتج المدخل نفسه دائمًا المخرج نفسه، مقربًا إلى اثنتي عشرة خانة عشرية.
للمطوّرين — الوصول عبر API
كل ما في هذه الصفحة متاح برمجيًا. هذا القسم موجّه للفرق التقنية التي تريد ربط الأداة بأنظمتها الخاصة؛ بقية المستخدمين يمكنهم استخدام الأداة أعلاه مباشرة دون الحاجة لقراءة ما يلي.
الـEndpoint
صادِق على طلبك بترويسة Bearer، وأرسل طلب POST واحدًا لتدخل مهمتك قائمة التنفيذ فورًا؛ ثم تستلم النتيجة عبر webhook أو رابط موقّع.
استدعِ الخدمة من بيئتك
curl -X POST https://api.kit.forhosting.com/math/condition-number \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"matrix":[[2,1],[1,2]]}'const res = await fetch("https://api.kit.forhosting.com/math/condition-number", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"matrix": [
[
2,
1
],
[
1,
2
]
]
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/math/condition-number",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"matrix": [
[
2,
1
],
[
1,
2
]
]
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/math/condition-number", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"matrix":[[2,1],[1,2]]}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"matrix":[[2,1],[1,2]]}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/math/condition-number", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)مثال على الطلب
{
"matrix": [
[
2,
1
],
[
1,
2
]
]
}مثال على الاستجابة
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "math.condition_number",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}الواجهة غير متزامنة: تستلم task_id فور الإرسال، ويمكنك الاستعلام عن الحالة بمعدل طلب واحد في الثانية.
الأسعار
السعر معلن كما تراه: لا tokens ولا نظام نقاط؛ وإن فشلت المهمة فلن تُحاسَب عليها.
الحدود
max_rows | 32 |
max_cols | 32 |
max_abs | 1000000000000 |
الأخطاء
| HTTP | الرمز | المعنى |
|---|---|---|
401 | unauthorized | مفتاح الوصول مفقود أو غير صالح؛ تحقق من ترويسة Bearer في طلبك. |
402 | insufficient_balance | رصيدك لا يكفي لتنفيذ هذه المهمة؛ أعد شحن الرصيد ثم أعد المحاولة. |
404 | unknown_type | نوع المهمة المطلوب غير موجود في الكتالوج — راجع الاسم المرسل في الطلب. |
429 | rate_limited | تجاوزت الحد المسموح من الطلبات؛ انتظر قليلًا ثم أعد المحاولة. |