علوم وفضاء

sqrt: هل يعيد جذر مربع العدد المركب العدد نفسه؟

مدخلان متقابلان ومربع واحد وناتج sqrt واحد.
الناتج يحقق المربع لكنه لا يسترجع كلا المدخلين.

sqrt تقبل قيمًا مركبة، وفرعها المعتاد له قطع على المحور الحقيقي السالب. [1]

حدد الطلب المركب

sqrt تقبل قيمًا مركبة، وفرعها المعتاد له قطع على المحور الحقيقي السالب. [1]

نستعمل NumPy 2.3.5 وCPython 3.12.14، وقيمًا قياسية من complex128. نرمز للوحدة التخيلية بـi في العرض وبـj في الشيفرة. الطلب هو np.sqrt(z*z)، لا حل معادلة بجميع جذورها، ولا حساب np.abs(z).

جميع مدخلاتنا لها جزء حقيقي وجزء تخيلي غير صفريين؛ ومربعاتها لا تقع على المحور الحقيقي. سنصف الاختيار في هذه العائلة المحددة، دون اختبار حدود القطع أو الصفر الموقّع.

ناتج صحيح للمربع ومدخل مختلف

نختار z=−6+11i. بالتوزيع z²=36−132i−121=−85−132i. سجل التشغيل w=z*z ثم root=np.sqrt(w)؛ أعاد root=6−11i، بنوع complex128 وشكل قياسي ().

بالتربيع (6−11i)²=36−132i−121=−85−132i أيضًا. الناتج يحقق اختبار المربع، لكنه يختلف عن z في جزأيه. إن قارنت المربع وحده فلن تكتشف أنك عدت إلى العدد المقابل بدل مدخلك.

نأخذ تحكمًا t=6−11i، أي −z. مربعه يساوي w نفسه، ولذلك يعيد الطلب نفسه 6−11i. هنا عاد إلى t. مدخلان مختلفان انتهيا إلى المربع نفسه ثم إلى ناتج sqrt نفسه؛ لا يمكن لهذا الطلب أن يسترجعهما معًا.

المقدار ليس العدد المختار

مربع مقدار المدخل هو (−6)²+11²=157؛ مقدار z هو √157. في التشغيل أعادت np.abs(z) القيمة 12.529964086141668 بنوع float64. هذا طول حقيقي، بينما root يحمل جزءًا تخيليًا يساوي −11.

لا يصح استبدال root بالعدد √157: تربيع ذلك العدد الحقيقي يعطي 157، لا −85−132i. في المقابل، مقدار root يساوي √157 أيضًا. تساوي المقدارين يحفظ المسافة من الأصل، ولا يجعل العددين متساويين.

الرسم الداخلي يضع z و−z في نقطتين متقابلتين حول الأصل، بمقياس متساوٍ للمحورين. النقطة المختارة في مثالنا إلى يمين الأصل وتحت المحور الحقيقي. الرسم لا يحول المقدار إلى إحداثي تخيلي ولا يعرض المربع w نقطةً على المقياس نفسه.

z و−z في نقطتين متقابلتين بمقياس متساوٍ.
اختار التشغيل النقطة ذات الجزء الحقيقي الموجب في مثالنا.

الأرباع والمرجع وحدود الفحص

اخترنا p من {1,2,5} وq من {2,3,6}. لكل زوج جرّبنا z=εp+δqi، حيث ε وδ يأخذان −1 أو 1. هذه تسعة أزواج وأربع حالات لكل زوج، أي 36 حالة. أضفنا p=6 وq=11 في الأرباع الأربعة؛ الزوج الرئيسي خارج الشبكة، فيصبح المجموع 40 حالة.

في الحساب الصحيح w=(p²−q²)+2εδpqi، ومقداره p²+q²؛ لأن مجموع مربعي جزأيه يساوي (p²+q²)². المرجع ذو الجزء الحقيقي الموجب هو p+εδqi، ومربعه w. وافقته النواتج المختبرة: عند ε=1 يعيد z، وعند ε=−1 يعيد −z. هذا وصف للعائلة المختبرة بعيدًا عن المحاور.

أنشأنا أجزاء المربع والمرجع من أعداد صحيحة في Python. راجعنا مرجعًا عدديًا منفصلًا بدقة Decimal قدرها 80 رقمًا: مع a وb جزأي w وR=√(a²+b²)، نضع u=√((R+a)/2) وv=b/(2u). في عائلتنا u=p>0، لذلك لا توجد قسمة على صفر. لم نستعمل sqrt في NumPy لبناء القيمة المتوقعة.

لكل حالة ثماني مجموعات تحقق: أجزاء المربع، والناتج مقابل المرجع، وإعادة تربيعه، وعلاقته بالمدخل، وإشارات جزأيه ومحدوديته، والمقادير والتمييز بينها وبين العدد، والأشكال والأنواع وثبات بايتات المدخل، وصيغة Decimal المستقلة. مرت 40×8=320 فحصًا، ضمن atol=10⁻¹² وrtol=0.

لم نفحص المحاور أو الصفر أو الصفر الموقّع أو غير المحدود أو الأعداد الصغيرة جدًا أو المدخل الحقيقي أو emath أو power أو الدفعات أو out أو where أو الأداء. لا نعمم تسامحنا إلى كل قيمة، ولا نسمي العدد المركب كله موجبًا بسبب الجزء الحقيقي المختار.

المدخلالمربعsqrt للمربع
−6+11i−85−132i6−11i
6−11i−85−132i6−11i
6+11i−85+132i6+11i
−6−11i−85+132i6+11i

للتوسع: حساب الجذر التربيعي.

المراجع

  1. NumPy sqrt

أُعدّ هذا المقال بمساعدة الذكاء الاصطناعي، وخضع لمراجعة ذاتية بالأداة نفسها. لا يُنسب إلى مراجع بشري أو خبير مستقل. منهجية المحتوى.