مقالات

11.1: أ- اليعاقبة ، معكوس المصفوفات ، والقيم الذاتية


في هذا الملحق ، نجمع بعض النتائج حول اليعاقبة والمعاكسات والقيم الذاتية لمصفوفات (2 مرات 2 ) التي يتم استخدامها بشكل متكرر في المادة.

أولاً ، نعتبر توسع تايلور لوظيفة متجهية ذات قيمة لمتغيرين ، يُشار إليهما على النحو التالي:

[H (x، y) = begin {pmatrix} {f (x، y)} {g (x، y)} end {pmatrix}، (x، y) in mathbb {R} ^ 2 ، label {A.1} ]

بتعبير أدق ، سنحتاج إلى توسيع تايلور لهذه الوظائف من خلال الدرجة الثانية:

[H (x_ {0} + h، y_ {0} + k) = H (x_ {0}، y_ {0}) + DH (x_ {0}، y_ {0}) start {pmatrix} { h} {k} end {pmatrix} + mathcal {O} (2). التسمية {A.2} ]

يجب أن يكون توسع تايلور للدالة ذات القيمة العددية لمتغير واحد مألوفًا لمعظم الطلاب في هذا المستوى. من المحتمل أن يكون هناك إلمام أقل بتوسع تايلور لوظيفة متجهية ذات قيمة لمتغير متجه. ومع ذلك ، لحساب هذا ، نقوم فقط بتوسيع كل مكون من مكونات الوظيفة (وهي دالة ذات قيمة قياسية لمتغير متجه) في كل متغير ، مع الاحتفاظ بالمتغير الآخر ثابتًا للتوسع في هذا المتغير المحدد ، ثم نقوم بتجميع النتائج لـ كل مكون في شكل مصفوفة.

يؤدي تنفيذ هذا الإجراء لمكون (f (x، y) ) في المعادلة المرجع {A.1} إلى:

[ start {align} f (x_ {0} + h، y_ {0} + k) & = f (x_ {0}، y_ {0} + k) + frac { جزئي f} { جزئي x} (x_ {0}، y_ {0} + k) h + mathcal {O} (h ^ 2) [4pt] & = f (x_ {0}، y_ {0}) + frac { f} { جزئي y} (x_ {0}، y_ {0}) k + mathcal {O} (k ^ 2) + frac { جزئي f} { جزئي x} (x_ {0}، y_ {0}) h + mathcal {O} (hk) + mathcal {O} (h ^ 2). تسمية {A.3} نهاية {محاذاة} ]

يمكن تطبيق نفس الإجراء على (g (x، y) ). إعادة دمج المصطلحات في التعبير المتجه للمعادلة المرجع {A.1} يعطي:

[H (x_ {0} + h، y_ {0} + k) = begin {pmatrix} {f (x_ {0}، y_ {0})} {g (x_ {0}، y_ { 0})} end {pmatrix} + start {pmatrix} { frac { جزئي f} { جزئي x} (x_ {0}، y_ {0})} & { frac { جزئي f} { جزئي y} (x_ {0}، y_ {0})} { frac { جزئي g} { جزئي x} (x_ {0}، y_ {0})} & { frac { جزئي g} { جزئي y} (x_ {0}، y_ {0})} end {pmatrix} begin {pmatrix} {h} {k} end {pmatrix} + mathcal {O} (2 ) ، التسمية {A.4} ]

ومن ثم ، فإن اليعقوبي للمعادلة المرجع {A.1} في ((x_ {0}، y_ {0}) ) هو:

[ start {pmatrix} { frac { جزئي f} { جزئي x} (x_ {0}، y_ {0})} & { frac { جزئي f} { جزئي y} (x_ {0 }، y_ {0})} { frac { جزئي g} { جزئي x} (x_ {0}، y_ {0})} & { frac { جزئي g} { جزئي y} ( x_ {0}، y_ {0})} end {pmatrix}، label {A.5} ]

وهي مصفوفة (2 ضرب 2 ) من الأعداد الحقيقية.

سنحتاج إلى حساب معكوس مثل هذه المصفوفات ، وكذلك قيمها الذاتية.

نشير إلى مصفوفة (2 مرات 2 ) للأرقام الحقيقية:

[A = begin {pmatrix} {a} & {b} {c} & {d} end {pmatrix}، a، b، c، d in mathbb {R}. التسمية {A.6} ]

من السهل التحقق من أن معكوس A تم الحصول عليه من خلال:

[A ^ {- 1} = frac {1} {ad-bc} begin {pmatrix} {d} & {- b} {-c} & {a} end {pmatrix}. التسمية {A.7} ]

لنفترض أن ( mathbb {I} ) يشير إلى مصفوفة الهوية (2 times 2 ). ثم قيم eigenvalues ​​من A هي حلول المعادلة المميزة:

[det (A - lambda mathbb {I}) = 0. label {A.8} ]

حيث "det" هو تدوين لمحدد المصفوفة. هذه معادلة تربيعية في ( lambda ) لها حلين:

[ lambda_ {1،2} = frac {tr A} {2} pm frac {1} {2} sqrt {(tr A) ^ 2-4det A} ، label {A.9} ]

حيث استخدمنا الترميز:

(tr A equiv trace A = a + d )، (det A equiv selected A = ad-bc ).


11.1: أ- اليعاقبة ، معكوس المصفوفات ، والقيم الذاتية

مصفوفة الهوية تعمل ك 1 في جبر المصفوفة. على سبيل المثال ، [اللاتكس] AI = IA = A [/ اللاتكس].

تمتلك المصفوفة التي لها معكوس ضربي خصائصها

ملاحظة عامة: مصفوفة الهوية والمعكوس الضرب

ال مصفوفة الهوية، [اللاتكس]_[/ latex] ، عبارة عن مصفوفة مربعة تحتوي على الآحاد أسفل القطر الرئيسي والأصفار في كل مكان آخر.

إذا كانت [latex] A [/ latex] عبارة عن مصفوفة [latex] n times n [/ latex] و [latex] B [/ latex] عبارة عن مصفوفة [latex] n times n [/ latex] مثل مصفوفة [latex] ] AB = BA =_[/ لاتكس] ، ثم [لاتكس] ب = ^ <-1> [/ لاتكس] ، فإن المعكوس الضربي لمصفوفة [لاتكس] أ [/ لاتكس].

مثال 1: إظهار أن مصفوفة الهوية تعمل على أنها 1

مصفوفة معينة أ، أظهر أن [اللاتكس] AI = IA = A [/ اللاتكس].

المحلول

استخدم ضرب المصفوفة لتوضيح أن منتج [اللاتكس] A [/ اللاتكس] والهوية تساوي منتج الهوية و أ.

الكيفية: بالنظر إلى مصفوفتين ، أظهر أن إحداهما هي المعكوس الضربي للأخرى.

  1. معطى مصفوفة [لاتكس] أ [/ لاتكس] بالترتيب [لاتكس] n مرات n [/ لاتكس] ومصفوفة [لاتكس] ب [/ لاتكس] بالترتيب [لاتكس] n مرات n [/ لاتكس] مضاعفة [لاتكس] AB [/ اللاتكس].
  2. إذا كان [latex] AB = I [/ latex] ، فابحث عن المنتج [latex] BA [/ latex]. إذا كانت [اللاتكس] BA = I [/ latex] ، فإن [latex] B = ^ <-1> [/ latex] و [latex] A =^ <-1> [/ لاتكس].

مثال 2: عرض تلك المصفوفة أ هو المعكوس الضربي للمصفوفة ب

أظهر أن المصفوفات المعطاة هي مقلوب مضاعفة لبعضها البعض.

المحلول

اضرب [اللاتكس] AB [/ اللاتكس] و [اللاتكس] BA [/ اللاتكس]. إذا تساوى كلا المنتجين مع الهوية ، فإن المصفوفتين تكونان معكوسة لبعضهما البعض.

[اللاتكس] A [/ اللاتكس] و [اللاتكس] B [/ اللاتكس] هما معاكسان لبعضهما البعض.

جربه 1

أظهر أن المصفوفتين التاليتين عبارة عن مقلوب لبعضهما البعض.


$ A $ singular $ iff det (A) = 0 iff det (A-0 cdot I) = 0 iff 0 $ هي القيمة الذاتية لـ $ A $.

لاحظ أنه يمكن حساب محدد $ n مرات n $ matrix $ A $ باستخدام قيم eigenvalues ​​كـ

وهو نتاج قيم eigenvalues.

نعلم أن in lambda (A) $ iff يوجد بعض الحلول غير الصفرية لمعادلة eigenvector $ Ax = lambda x = 0 cdot x = 0 $. وبالتالي ، فإن $ هو قيمة ذاتية إذا كان $ موجود ب في mathrm(أ) $ مع $ b neq 0 $. ولكن منذ $ mathrm(A) neq <0 > $ نستنتج أن $ A $ يجب أن يكون مفردًا.

بافتراض أنه من خلال & ldquosingular & rdquo ، فإنك تعني مصفوفة مربعة غير قابلة للعكس:

ليما: إذا كان $ A $ قابلًا للعكس وكان $ lambda $ قيمة ذاتية قدرها $ A $ ، فإن $ frac <1> < lambda> $ هو قيمة ذاتية لـ $ A ^ <-1> $.

لنفترض أن $ x $ هو المتجه الذاتي لـ $ A $ المقابل لـ eigenvalue $ lambda $. حسب التعريف ، $ Axe = lambda x $. اضرب لليسار في $ A ^ <-1> $ ، مما يعطي $ A ^ <-1> Ax = A ^ <-1> lambda x $. إن LHS يساوي $ x $ ($ A ^ <-1> A = I $ بالتعريف) و RHS يساوي $ lambda A ^ <-1> x $ (لأن المصفوفة & مرات الانتقال القياسي) ، لذا $ x = lambda A ^ <-1> x $. اقسم كلا الجانبين على $ lambda $ ، مما يعطي $ frac <1> < lambda> x = A ^ <-1> x $. بالتعريف ، فإن $ frac <1> < lambda> $ هو بالتالي قيمة ذاتية لـ $ A ^ <-1> $.

لذا ، إذا كان $ قيمة ذاتية لـ $ A $ ، فإن $ frac <1> <0> $ سيكون قيمة ذاتية لـ $ A ^ <-1> $. لكن $ frac <1> <0> $ ليس رقمًا ، لذلك $ A ^ <-1> $ غير موجود أيضًا.


مجلة SIAM على تحليل وتطبيقات المصفوفة

بالنسبة إلى $ n times n $ دالة ذات قيمة مصفوفة $ L (< boldsymbol rho>، lambda) $ ، حيث $ < boldsymbol rho> $ متجه للمعلمات المستقلة و $ lambda $ هو معلمة ذاتية ، مشكلة eigenvalue-eigenvector لها الشكل $ L (< boldsymbol rho> ، lambda (< boldsymbol rho>) < bf x> (< boldsymbol rho>)) = < bf 0> $ . يتم قبول القيم الحقيقية أو المعقدة لـ $ < boldsymbol rho> $ و $ lambda $ ، و إل من المفترض أن تعتمد تحليليًا على هذه المتغيرات. على وجه الخصوص ، الاعتماد غير الخطي على $ lambda $ هو الشاغل الرئيسي. على افتراض أن مشكلة eigenvalue-eigenvector نفسها يمكن حلها بشكل مرضٍ ، يتم إجراء دراسة للمشتقات (الحساسيات) $ lambda $ و $ < bf x> $ فيما يتعلق بـ $ < boldsymbol rho> $. يتم إجراء تحليل لوجود المشتقات ، وتأثير استراتيجيات التطبيع ، وإمكانية حل معادلات المصفوفة الحدودية وحالة معادلات المصفوفة الحدودية الناشئة بشكل طبيعي في هذا السياق. تم توضيح الآثار المترتبة على مشاكل القيمة الذاتية الكلاسيكية المختلفة $ L (< boldsymbol rho>، lambda) = A (< boldsymbol rho>) - lambda I $.


2 إجابات 2

لا يمكن أن تحتوي أي مصفوفة على أكثر من معكوس واحد ولكن لا يمكن أن يكون لها معكوس رياضيًا.

ولكن يتم إجراء جميع العمليات الحسابية على جهاز الكمبيوتر بتمثيلات فاصلة عائمة محدودة وأنواع مختلفة من عدم الدقة التي يمكن أن تحدث في كل خطوة من خطوات الحساب.

تعتمد نتيجة قلب المصفوفة عدديًا على مدى "تكييف المصفوفة جيدًا". حتى لو كان من الممكن قلب المصفوفة ، إذا لم تكن مشروطة بشكل جيد ، فإن التغييرات الصغيرة في المدخلات يمكن أن تسبب تغييرات كبيرة في المخرجات. نظرًا لأن القيم الموجودة في المصفوفة يتم تمثيلها بتمثيلات الفاصلة العائمة المحدودة ، فإن التمثيلات الداخلية المختلفة قليلاً فقط يمكن أن تسبب اختلافات كبيرة. أيضًا ، نظرًا لأن جميع الحسابات يتم إجراؤها عن طريق تمثيلات النقطة العائمة المحدودة ، فإن تفاصيل الخوارزمية المستخدمة يمكن أن تسبب اختلافات مع مصفوفة سيئة الشرط.

إجابة أكثر تفصيلاً: عندما لا تكون المصفوفة مكيفة جيدًا ، فهذا يعني أن لديها بعض القيم الذاتية الصغيرة جدًا. لنستخدم تحليل القيمة المفردة ، إذا كانت المصفوفة الخاصة بك هي X = L @ S @ RT ، فإن معكوسًا هو Xi = R @ np.sqrt (S) @ L.T. الآن يقوم الجزء الأوسط بعكس قيم eigenvalues ​​وإذا كان هناك بعض القيم الصغيرة جدًا ، يمكن أن يكون لخطأ النقطة العائمة فرق كبير في معكوسها وبالتالي الاختلاف الذي تراه هناك.

لكن هل هذا مهم؟ لا ، إذا لم تكن المصفوفة الخاصة بك جيدة التكييف ، فإن المعكوس الذي تحسبه لا يمكن الاعتماد عليه ، يمكنك اختبار ذلك بضربه في المصفوفة الأصلية الخاصة بك ولاحظ أنه ليس كل عنصر قريب من مصفوفة الهوية.

ماهو الحل؟ 1. استخدم شرطًا مسبقًا 2. إذا رأيت تغييرًا كبيرًا في قيم eigenvalues ​​للمصفوفة الأصلية ، فما عليك سوى التخلص من هذه القيم غير المهمة والمتجهات الذاتية ، وإعادة بناء المصفوفة الخاصة بك ، ومن ثم يجب أن يكون معكوسك هو نفسه بغض النظر عن النظام الأساسي / الحزمة / نظام التشغيل الذي تستخدمه يستخدمون. لاحظ أن الطريقة الأولى تقوم في الأساس بنفس الشيء مثل الطريقة الثانية ، فقط خطوات مختلفة في الرياضيات.


3x3 مصفوفة قطري

كود C ++ بسيط يبحث عن رباعي يقطر مصفوفة 3x3:

إن تحديد قطري 3x3 متماثل له العديد من التطبيقات المفيدة مثل مائل موترات القصور الذاتي ، وتركيب OBBs ، وإيجاد المحاور الرئيسية ، وما إلى ذلك. الإدخالات القطرية للمصفوفة المائلة هي القيم الذاتية ويمثل الرباعي المتجهات الذاتية في أن صفوف المصفوفة المقابلة هي المتجهات الذاتية . لاحظ أن هذا سيكون بمثابة أعمدة المصفوفة بالنسبة لك الأشخاص المهمين هناك. ملاحظة: قد يستخدم الكود الفعلي على موقع github الخاص بي بعض الاصطلاحات المختلفة (نمط التسمية والآن في العمود الرئيسي).

يتم الاحتفاظ بهذا الرمز بسيطًا بحيث يكون من السهل الحصول عليه ودمجه في مكتبة الرياضيات ثلاثية الأبعاد الخاصة بك أو تطبيق الألعاب. أعد تسمية أنواع المتجهات والمصفوفة و quat كما تراه مناسبًا. كن على دراية بأي تخزين مصفوفة (الصف مقابل العمود) ومضاعفة اصطلاحات الطلبات التي قد تستخدمها. يفترض الكود اصطلاحات لغة C الرئيسية و D3D لترتيب عنصر المصفوفة (على سبيل المثال v_world = v_local * M). ربما لاحظت أن التعليقات تكتب D = Q * M * Q ^ T ، في حين أن كتاب الجبر الخطي المرتكز على العمود من المحتمل أن يكتب D = Q ^ T * M * Q بدلاً من ذلك. الارتباط الرباعي مع المصفوفات والضرب هو نفس الترتيب الذي يستخدمه الجميع حرفيًا. على حد علمي ، يتضمن هذا تطبيق D3DX الرباعي على الرغم من أن ترتيب مصفوفة D3D المعاكس والذي يعني: (Qa * Qb) .AsMatrix () == Qb.AsMatrix () * Qa.AsMatrix (). على أي حال ، يمكن بسهولة تعديل الوظيفة لتتوافق مع تفضيلاتك إذا كانت مختلفة.

عندما تستدعي روتين المصفوفة M وتحصل على رباعي q المصفوفة المقابلة لها هي Q ثم تحسب D = Q * M * Q ^ T ، ستلاحظ على الأرجح أن عناصر D غير المائلة ليست صفرًا تمامًا. العناصر الداخلية للخوارزمية كلها تعويم 32 بت. قد يؤدي تغيير هذا إلى الضعف إلى تحسين النتيجة. حتى مع ذلك ، سيتم تمثيل الرباعي الناتج بدقة متناهية (32 بت xyzw). بالنسبة للحلقة الرئيسية للوظائف ، قمت فقط بترميز حد التكرار البالغ 24. لا يوجد سبب وجيه لهذا الرقم. عصفت بالعشرات من المراتب المتماثلة العشوائية في الوظيفة ، لم أر أنها تستخدم أكثر من 7 قبل تلبية أحد شروط الخروج. لاحظ أنه تمت تهيئة الإدخالات العشوائية باستخدام (float) rand () / (float) rand (). مما رأيته ، كانت العناصر غير القطرية دائمًا أصغر بكثير من أكبر عنصر قطري وأصغر من أصغر قطري. قد يكون من المفيد إجراء مزيد من اختبارات التغطية في الحالات الأكثر خطورة.


خوارزميات الكم¶

في هذا القسم ، نصف الخوارزميات الكمية المتوفرة حاليًا في Aqua.

يتطلب نظام أكوا ربط جهاز كمي أو جهاز محاكاة بأي تجربة تستخدم خوارزمية كمومية. يتم ذلك عن طريق تكوين قسم & quotendend & quot للتجربة المراد تشغيلها. راجع الوثائق الموجودة في ملف الإدخال لمزيد من التفاصيل.

متغير الكم Eigensolver (VQE) ¶

VQE هي خوارزمية هجينة تستخدم النهج المتغير وتشذير الحسابات الكمومية والكلاسيكية من أجل إيجاد الحد الأدنى من القيمة الذاتية لـ Hamiltonian (H ) لنظام معين. يتطلب مثيل VQE تحديد مكونين فرعيين خوارزميين: وظيفة تجريبية من مكتبة Aqua's Variational Forms ، ومحسن كلاسيكي من مكتبة Aqua's Optimizers. قد يتم توفير حالة أولية من مكتبة الحالات الأولية لـ Aqua أيضًا من أجل تحديد حالة البداية لوظيفة التجربة.

راجع توثيق الأشكال المتغيرة والمحسنات والحالات الأولية لمزيد من التفاصيل.

بالإضافة إلى ذلك ، يمكن تكوين VQE بالمعلمات التالية:

تشير قيمة str إلى الوضع المستخدم بواسطة فئة المشغل للحساب:

إذا لم يتم تحديد أي قيمة للوضع_العاملي ، فإن القيمة الافتراضية هي & quotmatrix & quot.

النقطة الأولية للبحث عن الحد الأدنى من القيمة الذاتية:

يمكن توفير قائمة اختيارية من القيم العائمة كنقطة بداية للبحث عن الحد الأدنى من القيمة الذاتية. هذه الميزة مفيدة بشكل خاص عندما تكون هناك أسباب للاعتقاد بأن نقطة الحل قريبة من نقطة معينة ، والتي يمكن بعد ذلك توفيرها كنقطة أولية مفضلة. على سبيل المثال ، عند بناء ملف تعريف التفكك لجزيء ما ، من المحتمل أن استخدام الحل الأمثل المحسوب السابق كنقطة بداية للمسافة بين الذرية التالية سيقلل من عدد التكرارات اللازمة لتقارب الخوارزمية المتغيرة. يوفر Aqua برنامجًا تعليميًا أوليًا يوضح بالتفصيل حالة الاستخدام هذه.

يجب أن يتطابق طول قيمة قائمة النقاط الأولية مع عدد المعلمات المتوقعة بواسطة النموذج المتغير المستخدم. إذا لم يقدم المستخدم نقطة أولية مفضلة ، فسيقوم VQE بالبحث عن الشكل المتغير للحصول على قيمة مفضلة. إذا أرجع النموذج المتغير بلا ، فسيتم إنشاء نقطة عشوائية ضمن مجموعة حدود المعلمة ، كما هو مذكور أعلاه. إذا كان النموذج المتغير يوفر بلا كحد أدنى ، فسيكون VQE افتراضيًا على (- 2 pi ) بالمثل ، إذا كان النموذج المتغير لا يُرجع بلا كحد أعلى ، فإن القيمة الافتراضية ستكون (2 pi ) .

عند الإشارة إلى VQE بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو VQE.

في Aqua ، يدعم VQE مشاكل الطاقة والجذب.

خوارزمية التحسين الكمي التقريبي (QAOA) ¶

QAOA هي خوارزمية معروفة لإيجاد حلول تقريبية لمشاكل التحسين التجميعي. يستخدم تطبيق QAOA في Aqua مباشرةً VQE لهيكل التحسين الهجين العام. ومع ذلك ، على عكس VQE ، التي يمكن تهيئتها باستخدام أشكال التباين التعسفي ، تستخدم QAOA شكلها التباين الدقيق الخاص بها ، والذي يشتمل على (p ) استدارة عالمية ذات معلمات (x ) و (p ) معلمات مختلفة للمشكلة هاميلتوني. نتيجة لذلك ، على عكس VQE ، لا يحتاج QAOA إلى نموذج متغير محدد كمعامل إدخال ، ويتم تكوينه بشكل أساسي بواسطة معلمة عدد صحيح واحد ، p ، والتي تملي عمق الشكل المتغير ، وبالتالي تؤثر على جودة التقريب. قد يتم أيضًا توفير حالة أولية من مكتبة أكوا للحالات الأولية.

راجع الوثائق الخاصة بـ Optimizers والحالات الأولية لمزيد من التفاصيل.

باختصار ، يمكن تكوين QAOA بالمعايير التالية:

تشير قيمة str إلى الوضع المستخدم بواسطة فئة المشغل للحساب:

إذا لم يتم تحديد أي قيمة للوضع_العاملي ، فإن القيمة الافتراضية هي & quotmatrix & quot.

قيمة int موجبة لتكوين عمق الشكل المتغير QAOA ، كما نوقش أعلاه:

يجب أن يكون هذا قيمة int موجبة. الافتراضي هو 1.

النقطة الأولية للبحث عن الحد الأدنى من القيمة الذاتية:

يمكن توفير قائمة اختيارية بقيم عائمة (2p ) كمعلمات بداية بيتا وغاما (كما هو مذكور في ورقة QAOA الأصلية) لصيغة QAOA المتغيرة. إذا لم يتم توفير هذه القائمة ، سيبدأ QAOA ببساطة بالمتجه الصفري.

قد يتم توفير مشغل اختياري كخلاط هاملتونيان مخصص. يسمح هذا ، كما تمت مناقشته في هذه الورقة للتلدين الكمي ، وفي هذه الورقة لـ QAOA ، بتشغيل مشاكل التحسين المقيدة حيث يقيد الخلاط التطور إلى فضاء فرعي ممكن لمساحة هيلبرت الكاملة.

على غرار VQE ، يمكن أيضًا تحديد مُحسِّن.

عند الإشارة إلى QAOA بشكل إعلاني داخل Aqua ، فإن اسمها الرمزي ، الذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو QAOA متغير.

في Aqua ، تدعم QAOA المشكلة الحالية.

تطور هاميلتوني (EOH) ¶

يوفر EOH اللبنات الأساسية ذات المستوى الأدنى لمحاكاة أنظمة الكم العالمية. بالنسبة لأي نظام كمي معين يمكن أن يتحلل إلى تفاعلات محلية (على سبيل المثال ، هاميلتوني عالمي كمجموع مرجح للعديد من مشغلي دوران باولي) ، يمكن بعد ذلك استخدام التفاعلات المحلية لتقريب النظام الكمي العالمي عبر ، على سبيل المثال ، طريقة لويد أو تحلل تروتر-سوزوكي.

تدعم هذه الخوارزمية فقط محاكي متجه الحالة المحلي.

يمكن تكوين EOH باستخدام إعدادات المعلمات التالية:

من المتوقع وجود قيمة عائمة. الحد الأدنى للقيمة هو 0.0. القيمة الافتراضية هي 1.0.

طريقة تطور الحساب:

يُسمح بقيمتين str: & quotmatrix & quot أو & quotcircuit & quot ، حيث تكون & quotcircuit & quot هي القيمة الافتراضية.

عدد الشرائح الزمنية:

يجب أن يكون هذا قيمة int غير سالبة. الافتراضي هو 1.

يُسمح بقيمتين str: & quottrotter & quot (طريقة Lloyd) أو & quotsuzuki & quot (لتوسيع Trotter-Suzuki) ، مع كون & quottrotter & quot القيمة الافتراضية.

تحدد هذه المعلمة ترتيب توسيع Trotter-Suzuki. من المتوقع وجود قيمة موجبة. القيمة الافتراضية هي 2.

عند الإشارة إلى EOH بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو EOH.

في Aqua ، يدعم EOH مشكلة eoh.

تقدير المرحلة الكمومية (QPE) ¶

QPE (يُختصر أحيانًا باسم PEA ، لـ خوارزمية تقدير المرحلة) ، يأخذ سجلين كميين ، يتحكم و استهداف، حيث يتكون عنصر التحكم من عدة كيوبتات وضعت في البداية في تراكب موحد ، والهدف عبارة عن مجموعة من الكيوبتات المعدة في حالة eigenstate (أو ، في كثير من الأحيان ، تخمين الحالة الذاتية) للمشغل الوحدوي للنظام الكمي. ثم يطور QPE الهدف تحت السيطرة باستخدام Evolution of Hamiltonian (EOH) على المشغل الأحادي. ثم تكون معلومات قيمة eigenvalue المقابلة ركلة الظهر في مراحل سجل التحكم ، والتي يمكن بعد ذلك فصلها عن طريق تحويل فورييه الكمي المعكوس (IQFT) ، وقياسها للقراءة بتنسيق عشري ثنائي. يتطلب QPE أيضًا تقديرًا جيدًا بشكل معقول لوظيفة موجة eigen لبدء العملية. على سبيل المثال ، عند تقدير طاقات الأرض الجزيئية ، يمكن استخدام طريقة Hartree-Fock لتوفير وظائف موجة eigen التجريبية.

راجع الوثائق الخاصة بتحولات فورييه الكمية والحالات الأولية لمزيد من التفاصيل.

بالإضافة إلى طلب IQFT وحالة أولية كجزء من تكوينه ، يعرض QPE أيضًا إعدادات المعلمات التالية:

عدد الشرائح الزمنية:

يجب أن يكون هذا قيمة int غير سالبة. القيمة الافتراضية هي 1.

يُسمح بقيمتين str: & quottrotter & quot (طريقة Lloyd) أو & quotsuzuki & quot (لتوسيع Trotter-Suzuki) ، مع كون & quottrotter & quot القيمة الافتراضية.

تحدد هذه المعلمة ترتيب توسيع Trotter-Suzuki. من المتوقع وجود قيمة موجبة. القيمة الافتراضية هي 2.

تحدد هذه المعلمة عدد الكيوبتات المساعدة التي سيتم استخدامها بواسطة QPE. من المتوقع وجود قيمة موجبة. القيمة الافتراضية هي 1.

عند الإشارة إلى QPE بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو QPE.

في Aqua ، يدعم QPE مشكلة الطاقة.

تقدير الطور الكمي التكراري (IQPE) ¶

IQPE ، كما يوحي اسمه ، يحسب المرحلة بشكل متكرر بحيث يتطلب عددًا أقل من الكيوبتات. يأخذ في نفس مجموعة المعلمات مثل QPE ، باستثناء عدد الكيوبتات الإضافية num_ancillae ، والتي يتم استبدالها بالأرقام (قيمة موجبة ، يتم ضبطها أيضًا بشكل افتراضي على 1) ، ولحقيقة أن تحويل فورييه الكمي المعكوس (IQFT) هو لا تستخدم في IQPE.

لمزيد من التفاصيل ، يرجى الاطلاع على arXiv: quant-ph / 0610214.

عند الإشارة إلى IQPE بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو IQPE.

في Aqua ، يدعم IQPE مشكلة الطاقة.

تقدير السعة¶

تقدير السعة مشتق من - تقدير الطور الكمي (QPE) المطبق على عامل معين (A ). (A ) يُفترض أنه يعمل على (n + 1 ) كيوبت (بالإضافة إلى كيوبتات إضافية محتملة) حيث تمثل (n ) كيوبت عدم اليقين (في شكل توزيع عشوائي من مكتبة التوزيعات العشوائية) و آخر كيوبت يسمى كيوبت موضوعي، لتمثيل القيمة الموضوعية المقيسة باعتبارها اتساعها. بعبارة أخرى ، تم إنشاء (A ) بحيث يكون احتمال قياس "1" في الكيوبت الموضوعي مساويًا لقيمة الفائدة.

راجع الوثائق الخاصة بـ - تقدير المرحلة الكمومية (QPE) لمزيد من التفاصيل. راجع أيضًا arXiv: 1806.06893 للحصول على مزيد من التفاصيل حول "تقدير السعة" بالإضافة إلى تطبيقاته حول المشكلات المالية.

بالإضافة إلى الاعتماد على مكون QPE لبناء دائرة تقدير المرحلة الكمومية ، من أجل أن يتم بناؤها بشكل صحيح ، يتوقع كائن خوارزمية AmplitudeEstimation المدخلات التالية:

عدد بتات التقييم:

يجب أن يكون هذا قيمة int موجبة.

كائن CircuitFactory الذي يمثل مشكلة عدم اليقين ، أي عامل التشغيل (A ) المذكور أعلاه.

المشكلة الاختيارية الوحدوية:

كائن CircuitFactory الاختياري الذي يمثل المشكلة الوحدوية ، والتي ، إذا تُركت بدون تحديد ، سيتم إنشاؤها تلقائيًا من a_factory.

مكون تحويل فورييه الكمي المعكوس:

المكون المعكوس لتحويل فورييه الكمي القابل للتوصيل والذي سيتم استخدامه لتكوين مكون PhaseEstimation. سيتم استخدام iqft القياسي بشكل افتراضي إذا ترك بلا.

عند الإشارة إلى Amplitude Estimation بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو AmplitudeEstimation.

في Aqua ، يدعم تقدير السعة مشكلة عدم اليقين.

البحث الكمي Grover¶

يعد بحث Grover خوارزمية كمومية معروفة جيدًا للبحث من خلال مجموعات غير منظمة من السجلات لأهداف معينة مع تسريع تربيعي مقارنة بالخوارزميات الكلاسيكية.

إعطاء مجموعة (X ) من (N ) عناصر (X = ) ودالة منطقية (f: X rightarrow <0،1 > ) ، الهدف على مشكلة البحث غير المنظم هو العثور على عنصر (x ^ * in X ) مثل (f (x ^ *) = 1 ). غالبًا ما يتم صياغة البحث غير المنظم كمشكلة بحث في قاعدة البيانات ، حيث يكون الهدف ، في ضوء قاعدة البيانات ، هو العثور على عنصر يلبي بعض المواصفات فيه. البحث يسمى غير منظم لأنه لا توجد ضمانات لكيفية ترتيب قاعدة البيانات. في قاعدة بيانات مرتبة ، على سبيل المثال ، يمكن للمرء إجراء بحث ثنائي للعثور على عنصر في ( mathbb( log N) ) وقت أسوأ حالة. بدلاً من ذلك ، في مشكلة البحث غير المنظم ، لا توجد معرفة مسبقة بمحتويات قاعدة البيانات. مع الدوائر الكلاسيكية ، لا يوجد بديل سوى إجراء عدد خطي من الاستعلامات للعثور على العنصر الهدف. على العكس من ذلك ، تسمح خوارزمية البحث من Grover بحل مشكلة البحث غير المنظم على جهاز كمبيوتر كمي في ( mathcal( sqrt) ) الاستفسارات.

كل ما هو مطلوب لإجراء بحث هو Grover oracle من مكتبة Aqua's Oracles لتحديد معيار البحث ، والذي يشير بشكل أساسي إلى نتيجة أو خطأ في أي سجل معين. بشكل أكثر رسمية ، يعد ملف وحي (O_f ) هو كائن يقوم بتنفيذ دالة منطقية (f ) كما هو محدد أعلاه. بالنظر إلى الإدخال (x في X ) ، (O_f ) تنفذ (f (x) ). تفاصيل كيفية عمل (O_f ) غير مهمة تتعامل خوارزمية بحث Grover مع أوراكل كصندوق أسود. حاليًا ، توفر Aqua Oracle للتعبير المنطقي وأوراكل Truth Table ، وكلاهما يمكن استخدامهما في مهام بحث Grover. على وجه الخصوص ، يمكن أن تأخذ Oracle Expression Logical Expression Oracle كمدخلات مثيل مشكلة SAT بتنسيق DIMACS CNF وتقوم ببناء الدائرة الكمية المقابلة ، والتي يمكن بعد ذلك تغذيتها إلى خوارزمية Grover لإيجاد مهمة مرضية.

يتم التعامل مع Oracles كمكونات قابلة للتوصيل في باحثو Aqua المهتمين بالمساهمة في Aqua ويمكنهم تصميم وتنفيذ أوراكل جديدة وتوسيع مكتبة أوراكل الخاصة بـ Aqua.

يستخدم بحث Grover افتراضيًا تراكبًا موحدًا لتهيئة حالته الكمية. ومع ذلك ، قد يتم توفير حالة أولية من مكتبة Aqua's Initial States لإنشاء أي حالة كمومية أولية. قد يكون هذا مفيدًا ، على سبيل المثال ، إذا كان لدى المستخدم بالفعل بعض المعرفة المسبقة فيما يتعلق بالمكان الذي قد يوجد فيه هدف (أهداف) البحث.

راجع الوثائق الأولية للحصول على مزيد من التفاصيل.

يمكن أيضًا تكوين Grover باستخدام إعدادات المعلمات التالية:

بالنسبة لخوارزمية البحث التقليدية في Grover ، يتم استخدام أرقام المعلمات لتحديد عدد المرات التي يتم فيها تكرار الدائرة الفرعية لمرحلة العلامات والانعكاس لتضخيم سعة (اتساع) الهدف (الأهداف). من المتوقع وجود قيمة موجبة. القيمة الافتراضية هي 1.

عند التشغيل في الوضع التزايدي ، سيتم تنفيذ مهمة البحث في جولات متتالية ، باستخدام دوائر مبنية بعدد أكبر بشكل متزايد من التكرارات لتكرار تضخيم السعة حتى يتم العثور على الهدف أو العدد الأقصى ( سجل N ) ( (N ) تم الوصول إلى العدد الإجمالي للعناصر في المجموعة من الوسيطة المستخدمة) للتكرارات. يتبع التنفيذ القسم 4 من Boyer et al. الإعداد الافتراضي للعلامة المنطقية التزايدية هو False. عند التعيين على True ، سيتم تجاهل أرقام_المعلمات الأخرى.

عند الإشارة إلى Quantum Grover Search بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو Grover.

في Aqua ، تدعم خوارزمية Grover's Search مشكلة البحث.

Deutsch-Jozsa¶

كانت خوارزمية Deutsch-Jozsa واحدة من أولى الخوارزميات الكمومية المعروفة التي أظهرت تسريعًا أسيًا مقارنة بالخوارزمية الكلاسيكية القطعية (غير الاحتمالية) ، نظرًا لوظيفة الصندوق الأسود أوراكل. تحدد الخوارزمية ما إذا كانت الوظيفة المحددة (f: <0،1 > ^ n rightarrow <0،1 > ) ثابتة أم متوازنة. تقوم دالة ثابتة بتعيين جميع المدخلات إلى 0 أو 1 ، وتقوم دالة متوازنة بتعيين نصف مدخلاتها إلى 0 والنصف الآخر إلى 1. يمكن استخدام أي من الأوراكل التي يوفرها Aqua مع خوارزمية Deutsch-Jozsa ، طالما أن الدالة المنطقية التي ينفذها أوراكل تلبي بالفعل قيود كونها إما ثابتة أو متوازنة. أعلاه ، قد يكون إنشاء مثيل Oracle Truth Table أسهل لتلبية القيد ، ولكن يمكن أيضًا استخدام Oracle Expression Logical Expression.

عند الإشارة إلى Deutsch-Jozsa بشكل إعلاني داخل Aqua ، فإن اسمها الرمزي ، الذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو DeutschJozsa.

في Aqua ، تدعم خوارزمية Deutsch-Jozsa مشكلة تقييم الوظائف.

برنشتاين فازيرانيتش

تعد خوارزمية Bernstein-Vazirani امتدادًا / تقييدًا لخوارزمية Deutsch-Jozsa. الهدف من الخوارزمية هو تحديد سلسلة سرية (s in <0،1 > ^ n ) ، بالنظر إلى وظيفة الصندوق الأسود أوراكل التي تعين (f: <0،1 > ^ n ) rightarrow <0،1 > ) مثل (f (x) = s cdot x ( bmod 2) ).

عند الإشارة إلى Bernstein-Vazirani بشكل إعلاني داخل Aqua ، فإن اسمها الرمزي ، الذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو BernsteinVazirani.

في Aqua ، تدعم خوارزمية Bernstein-Vazirani مشكلة الخيط الخفي.

سيمونو

تجد خوارزمية Simon عددًا صحيحًا مخفيًا (s in <0،1 > ^ n ) من oracle (f_s ) الذي يرضي (f_s (x) = f_s (y) ) إذا وفقط إذا (y = x oplus s ) للجميع (x in <0،1 > ^ n ). وبالتالي ، إذا (s = 0 ldots 0 ) ، أي سلسلة البت الصفرية بالكامل ، فإن (f_s ) هي وظيفة 1 إلى 1 (أو التقليب). خلاف ذلك ، إذا (s neq 0 ldots 0 ) ، فإن (f_s ) هي دالة 2 إلى 1. من بين الأوراكل المضمنة في Aqua ، يجب أن يكون Truth Table Oracle هو الأسهل في الاستخدام لإنشاء واحدة يمكن استخدامها مع خوارزمية Simon.

عند الإشارة إلى Simon بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو Simon.

في Aqua ، تدعم خوارزمية Simon مشكلة تحديد الفترة.

آلة متجه دعم الكم (QSVM) ¶

تعد خوارزميات التصنيف وطرق التعلم الآلي ضرورية للتعرف على الأنماط وتطبيقات استخراج البيانات. ازدهرت التقنيات المعروفة ، مثل آلات ناقلات الدعم أو الشبكات العصبية ، على مدى العقدين الماضيين نتيجة للتقدم المذهل في قدرات وسرعة الأجهزة الحاسوبية الكلاسيكية. جعل هذا التقدم في قوة الكمبيوتر من الممكن تطبيق التقنيات التي تم تطويرها نظريًا في منتصف القرن العشرين على مشاكل التصنيف التي سرعان ما أصبحت صعبة بشكل متزايد.

المفهوم الرئيسي في طرق التصنيف هو مفهوم النواة. لا يمكن عادةً فصل البيانات عن طريق المستوى الفائق في مساحتها الأصلية. تتمثل إحدى التقنيات الشائعة المستخدمة للعثور على مثل هذا المستوى الفائق في تطبيق دالة تحويل غير خطية على البيانات. تسمى هذه الوظيفة أ ميزة الخريطة، لأنه يحول السمات الأولية ، أو الخصائص القابلة للقياس ، للظاهرة أو الموضوع قيد الدراسة. لا يعد التصنيف في مساحة الميزة الجديدة هذه - وفي الواقع أيضًا في أي مساحة أخرى ، بما في ذلك المساحة الأصلية الأولية - أكثر من رؤية مدى قرب نقاط البيانات من بعضها البعض. هذا هو نفس حساب المنتج الداخلي لكل زوج من البيانات في المجموعة. في الواقع ، لا نحتاج إلى حساب خريطة المعالم غير الخطية لكل مرجع ، ولكن فقط المنتج الداخلي لكل زوج من نقاط البيانات في مساحة الميزة الجديدة. هذه المجموعة من المنتجات الداخلية تسمى نواة ومن الممكن تمامًا أن يكون لديك خرائط ميزات يصعب حسابها ولكن نواةها ليست كذلك.

تنطبق خوارزمية QSVM على مشاكل التصنيف التي تتطلب خريطة المعالم التي لا يكون فيها حساب النواة فعالاً بشكل تقليدي. هذا يعني أنه من المتوقع أن تتوسع الموارد الحسابية المطلوبة بشكل كبير مع حجم المشكلة. يستخدم QSVM معالجًا كميًا لحل هذه المشكلة عن طريق التقدير المباشر للنواة في مساحة الميزة. الطريقة المستخدمة تندرج في فئة ما يسمى التعلم تحت الإشرافتتكون من أ مرحلة التدريب (حيث يتم حساب النواة والحصول على ناقلات الدعم) و أ مرحلة الاختبار أو التصنيف (حيث يتم تصنيف البيانات الجديدة الخالية من العلامات وفقًا للحل الموجود في مرحلة التدريب).

يمكن تكوين QSVM باستخدام معلمة منطقية ، تشير إلى ما إذا كنت تريد طباعة معلومات إضافية أم لا عند تشغيل الخوارزمية:

عند الإشارة إلى QSVM بشكل إعلاني داخل Aqua ، فإن اسم الرمز الخاص به ، والذي يكتشفه Aqua بشكل ديناميكي ويقوم بتحميله ، هو QSVM.

في Aqua ، يدعم QSVM مشكلة التصنيف.

Variational Quantum Classifier (VQC)¶

Similar to QSVM, the VQC algorithm also applies to classification problems. VQC uses the variational method to solve such problems in a quantum processor. Specifically, it optimizes a parameterized quantum circuit to provide a solution that cleanly separates the data.

VQC can be configured with the following parameters:

The depth of the variational circuit to be optimized:

An integer value greater than or equal to 3 is expected. The default is 3 .

A Boolean indicating whether or not to print additional information when the algorithm is running:

A bool value is expected. The default is False .

When referring to VQC declaratively inside Aqua, its code name , by which Aqua dynamically discovers and loads it, is VQC .

In Aqua, VQC supports the classification problem.

HHL algorithm for solving linear systems (HHL)¶

ال HHL algorithm (after the author’s surnames Harrow-Hassidim-Lloyd) is a quantum algorithm to solve systems of linear equations (Aoverrightarrow=overrightarrow) . Using the Quantum Phase Estimation algorithm ( Quantum Phase Estimation (QPE) ), the linear system is transformed into diagonal form in which the matrix (A) is easily invertible. The inversion is achieved by rotating an ancillary qubit by an angle (arcsin< frac>>) around the y-axis where (lambda_mathrm) are the eigenvalues of (A) . After uncomputing the register storing the eigenvalues using the inverse QPE, one measures the ancillary qubit. A measurement of 1 indicates that the matrix inversion succeeded. This leaves the system in a state proportional to the solution vector (|x angle) . In many cases one is not interested in the single vector elements of (|x angle) but only on certain properties. These are accessible by using problem-specific operators. Another use-case is the implementation in a larger quantum program.

When HHL is executed using a dictionary non-hermitian matrices and matrices with dimensions other than (2^) are automatically expanded to hermitian matrices and next higher dimension (2^) , respectively. The returned result of the HHL algorithm for expanded matrices will be truncated.

A Boolean indicating whether or not to truncate matrix and result vector from dimension (2^) to dimension given by orig_size by simply cutting off entries with larger indices. This parameter is set to True if HHL is executed using the dictionary approach and the input does not have dimension (2^) .

A bool value is expected. The default is False .

An integer defining the dimension of the input matrix and vector before expansion to dimension (2^) has been applied. This parameter is needed if truncate_powerdim is set to True and will be automatically set when HHL is executed using the dictionary approach and the input does not have dimension (2^) .

An int value or None is epxected. The defult is None .

A Boolean indicating whether or not to truncate matrix and result vector to half the dimension by simply cutting off entries with other indices after the input matrix was expanded to be hermitian following

where the conjugate transpose of matrix (A) is denoted by (A^mathsf) . The truncation of the result vector is done by simply cutting off entries of the upper half. This parameter is set to True if HHL is executed using the dictionary approach and the input matrix is not hermitian.

A bool value is expected. The default is False .

HHL requires eigenvalue estimation using QPE ( Eigenvalues ), the eigenvalue inversion ( Reciprocals ), and a matrix and initial state as part of its configuration.

When referring to HHL declaratively inside Aqua, its code name , by which Aqua dynamically discovers and loads it, is HHL .

In Aqua, HHL supports the linear_system problem.

Shor’s Factory Algorithm (Shor)¶

Shor’s Factoring algorithm is one of the most well-known quantum algorithms. It takes advantage of Quantum Fourier Transforms circuits and finds the prime factors for input integer (N) in polynomial time. The Shor’s algorithm included in Aqua is adapted from this implementation.

The input integer N (defaulted to 15 if omitted) to be factored is expected to be odd and greater than 2. Even though our implementation is general, its capability will be limited by the capacity of the simulator/hardware. Another input integer a (defaulted to 2 if omitted) can also be supplied, which needs to be a coprime smaller than N .

For more details, please see this implementation and this paper.

When referring to Shor’s algorithm declaratively inside Aqua, its code name , by which Aqua dynamically discovers and loads it, is Shor .

In Aqua, Shor’s algorithm supports the factoring problem.

Quantum Generative Adversarial Network(qGAN)¶

qGAN is a hybrid quantum-classical algorithm used for generative modelling tasks. The qGAN implementation in Aqua requires the definition of a variational form for the implementation of a quantum generator and a PyTorch neural network for the implementation of a classical discriminator. These networks are trained in alternating optimization steps, where the discriminator tries to differentiate between training data samples and data samples from the generator and the generator aims at generating samples which the discriminator classifies as training data samples. Eventually, the quantum generator learns the training data’s underlying probability distribution. The trained quantum generator loads a quantum state which is a model of the target distribution.

For more details, please see this paper

In summary, qGAN can be configured with the following parameters:

An array indicating the numbers of qubits for d qubit registers, where d is dimension of the training data:

If no value for num_qubits is specified, the default is [3, 3, . 3] .

A positive int value configuring the batch size for batching the training data:

This has to be a positive int value. The default is 500 .

A positive int value configuring the number of training epochs:

This has to be a positive int value. The default is 3000 .

A positive int value configuring the seed for random values: .. code:: python

This has to be a positive int value. The default is 7 .

An optional positive float value for setting a tolerance for relative entropy. If the training results in a state such that the relative entropy is smaller or equal than the given tolerance the training will halt.

An optional str to give a directory where the parameters computed throughout the training shall be stored in CSV format.

When referring to qGAN declaratively inside Aqua, its code name , by which Aqua dynamically discovers and loads it is QGAN .

In Aqua, qGAN supports the distribution_learning_loading problem.


11.1: A- Jacobians, Inverses of Matrices, and Eigenvalues

This task view on numerical mathematics lists R packages and functions that are useful for solving numerical problems in linear algebra and analysis. It shows that R is a viable computing environment for implementing and applying numerical methods, also outside the realm of statistics.

The task view will ليس cover differential equations, optimization problems and solvers, or packages and functions operating on times series, because all these topics are treated extensively in the corresponding task views DifferentialEquations, Optimization, and TimeSeries. All these task views together will provide a good selection of what is available in R for the area of numerical mathematics. The HighPerformanceComputing task view with its many links for parallel computing may also be of interest.

The task view has been created to provide an overview of the topic. If some packages are missing or certain topics in numerical math should be treated in more detail, please let the maintainer know.

Numerical Linear Algebra

As statistics is based to a large extent on linear algebra, many numerical linear algebra routines are present in R, and some only implicitly. Examples of explicitly available functions are vector and matrix operations, matrix (QR) decompositions, solving linear equations, eigenvalues/-vectors, singular value decomposition, or least-squares approximation.

  • The recommended package Matrix provides classes and methods for dense and sparse matrices and operations on them, for example Cholesky and Schur decomposition, matrix exponential, or norms and conditional numbers for sparse matrices.
  • Recommended package MASS adds generalized (Penrose) inverses and null spaces of matrices.
  • expm computes the exponential, logarithm, and square root of square matrices, but also powers of matrices or the Frechet derivative. expm() is to be preferred to the function with the same name in Matrix.
  • SparseM provides classes and methods for sparse matrices and for solving linear and least-squares problems in sparse linear algebra
  • Package rmumps provides a wrapper for the MUMPS library, solving large linear systems of equations applying a parallel sparse direct solver
  • sanic supports routines for solving (dense and sparse) large systems of linear equations direct and iterative solvers from the Eigen C++ library are made available, including Cholesky, LU, QR, and Krylov subspace methods.
  • Rlinsolve is a collection of iterative solvers for sparse linear system of equations stationary iterative solvers such as Jacobi or Gauss-Seidel, as well as nonstationary (Krylov subspace) methods are provided.
  • svd provides R bindings to state-of-the-art implementations of singular value decomposition (SVD) and eigenvalue/eigenvector computations. Package ssvd will obtain sparse SVDs using an iterative thresholding method, while irlba will compute approximate singular values/vectors of large matrices.
  • Package PRIMME interfaces PRIMME, a C library for computing eigenvalues and eigenvectors of real symmetric or complex Hermitian matrices. It will find largest, smallest, or interior eigen-/singular values and will apply preconditioning to accelerate convergence.
  • The packages geigen and QZ compute generalized eigenvalues and -vectors for pairs of matrices, and QZ (generalized Schur) decompositions.
  • eigeninv generates matrices with a given set of eigenvalues ('inverse eigenvalue problem').
  • Package rARPACK, a wrapper for the ARPACK library, is typically used to compute only a few eigenvalues/vectors, e.g., a small number of largest eigenvalues.
  • Package RSpectra interfaces the 'Spectra' library for large-scale eigenvalue decomposition and SVD problems.
  • optR uses elementary methods of linear algebra (Gauss, LU, CGM, Cholesky) to solve linear systems.
  • Package mbend for bending non-positive-definite (symmetric) matrices to positive-definiteness, using weighted and unweighted methods.
  • matrixcalc contains a collection of functions for matrix calculations, special matrices, and tests for matrix properties, e.g., (semi-)positive definiteness mainly used for teaching and research purposes
  • matlib contains a collection of matrix functions for teaching and learning matrix linear algebra as used in multivariate statistical methods mainly for tutorial purposes in learning matrix algebra ideas using R.
  • Package onion contains routines for manipulating quaternions and octonians (normed division algebras over the real numbers) quaternions can be useful for handling rotations in three-dimensional space.
  • clifford provides a suite of routines for arbitrary dimensional Clifford algebras and discusses special cases such as Lorentz transforms or quaternion multiplication.
  • Packages RcppArmadillo and RcppEigen enable the integration of the C++ template libraries 'Armadillo' resp. 'Eigen' for linear algebra applications written in C++ and integrated in R using Rcpp for performance and ease of use.

Special Functions

Many special mathematical functions are present in R, especially logarithms and exponentials, trigonometric and hyperbolic functions, or Bessel and Gamma functions. Many more special functions are available in contributed packages.

  • Package gsl provides an interface to the 'GNU Scientific Library' that contains implementations of many special functions, for example the Airy and Bessel functions, elliptic and exponential integrals, the hypergeometric function, Lambert's W function, and many more.
  • Airy and Bessel functions, for real and complex numbers, are also computed in package Bessel, with approximations for large arguments.
  • Package pracma includes special functions, such as error functions and inverses, incomplete and complex gamma function, exponential and logarithmic integrals, Fresnel integrals, the polygamma and the Dirichlet and Riemann zeta functions.
  • The hypergeometric (and generalized hypergeometric) function, is computed in hypergeo, including transformation formulas and special values of the parameters.
  • HypergeoMat evaluates the hypergeometric functions of a matrix argument through a C++ implementation of Koev and Edelman's algorithm.
  • Elliptic and modular functions are available in package elliptic, including the Weierstrass P function and Jacobi's theta functions. There are tools for visualizing complex functions.
  • Carlson evaluates Carlson elliptic and incomplete elliptic integrals (with compex arguments).
  • Package expint wraps C-functions from the GNU Scientific Library to calculate exponential integrals and the incomplete Gamma function, including negative values for its first argument.
  • fourierin computes Fourier integrals of functions of one and two variables using the Fast Fourier Transform.
  • logOfGamma uses approximations to compute the natural logarithms of the Gamma function for large values.
  • Package lamW implements both real-valued branches of the Lambert W function (using Rcpp).

Polynomials

Function polyroot() in base R determines all zeros of a polynomial, based on the Jenkins-Traub algorithm. Linear regression function lm() can perform polynomial fitting when using poly() in the model formula (with option raw = TRUE).

  • Packages PolynomF (recommended) and polynom provide similar functionality for manipulating univariate polynomials, like evaluating polynomials (Horner scheme), or finding their roots. 'PolynomF' generates orthogonal polynomials and provides graphical display features.
  • polyMatrix (based on 'polynom') implements basic matrix operations and provides thus an infrastructure for the manipulation of polynomial matrices.
  • Package MonoPoly fits univariate polynomials to given data, applying different algorithms.
  • For multivariate polynomials, package multipol provides various tools to manipulate and combine these polynomials of several variables.
  • Package mpoly facilitates symbolic manipulations on multivariate polynomials, including basic differential calculus operations on polynomials, plus some Groebner basis calculations.
  • mvp enables fast manipulation of symbolic multivariate polynomials, using print and coercion methods from the 'mpoly' package, but offers speed improvements.
  • Package orthopolynom consists of a collection of functions to construct orthogonal polynomials and their recurrence relations, among them Chebyshev, Hermite, and Legendre polynomials, as well as spherical and ultraspherical polynomials. There are functions to operate on these polynomials.
  • Symbolic calculation and evaluation of the Jack polynomials, zonal polynomials (appear in random matrix theory), and Schur polynomials (appear in combinatorics) is available in package jack.
  • The Free Algebra in R package freealg handles multivariate polynomials with non-commuting indeterminates.

Differentiation and Integration

D() و deriv() in base R compute derivatives of simple expressions symbolically. Function integrate() implements an approach for numerically integrating univariate functions in R. It applies adaptive Gauss-Kronrod quadrature and can handle singularities and unbounded domains to a certain extent.

  • Package Deriv provides an extended solution for symbolic differentiation in R the user can add custom derivative rules, and the output for a function will be an executable function again.
  • numDeriv sets the standard for numerical differentiation in R, providing numerical gradients, Jacobians, and Hessians, computed by simple finite differences, Richardson extrapolation, or the highly accurate complex step approach.
  • Package dual achieves automatic differentiation (for univariate functions) by employing dual numbers for a mathematical function its value and its exact first derivative are returned.
  • Package autodiffr (on Github) provides an R wrapper for the Julia packages ForwardDiff.jl and ReverseDiff.jl to do automatic differentiation for native R functions.
  • pracma contains functions for computing numerical derivatives, including Richardson extrapolation or complex step. fderiv() computes numerical derivatives of higher orders. pracma has several routines for numerical integration: adaptive Lobatto quadrature, Romberg integration, Newton-Cotes formulas, Clenshaw-Curtis quadrature rules. integral2() integrates functions in two dimensions, also for domains characterized by polar coordinates or with variable interval limits.
  • Package gaussquad contains a collection of functions to perform Gaussian quadrature, among them Chebyshev, Hermite, Laguerre, and Legendre quadrature rules, explicitly returning nodes and weights in each case. Function gaussquad() in package statmod does a similar job.
  • Package fastGHQuad provides a fast Rcpp -based implementation of (adaptive) Gauss-Hermite quadrature.
  • Adaptive multivariate integration over hyper-rectangles in n-dimensional space is available in package cubature as function adaptIntegrate(), based on a C library of the same name. The integrand functions can even be multi-valued.
  • vegas() includes an approach to Monte Carlo integration based on importance sampling.
  • mvQuad provides methods for generating multivariate grids that can be used for multivariate integration. These grids will be based on different quadrature rules such as Newton-Cotes or Gauss quadrature formulas.
  • Package SparseGrid provides another approach to multivariate integration in high-dimensional spaces. It creates sparse n-dimensional grids that can be used as with quadrature rules.
  • Package SphericalCubature employs cubature to integrate functions over unit spheres and balls in n-dimensional space SimplicialCubature provides methods to integrate functions over m-dimensional simplices in n-dimensional space. Both packages comprise exact methods for polynomials.
  • Package polyCub holds some routines for numerical integration over polygonal domains in two dimensions.
  • Package Pade calculates the numerator and denominator coefficients of the Pade approximation, given the Taylor series coefficients of sufficient length.
  • calculus provides efficient functions for high-dimensional numerical and symbolic calculus, including accurate higher-order derivatives, Taylor series expansion, differential operators, and Monte-Carlo integration in orthogonal coordinate systems.
  • features extracts features from functional data, such as first and second derivatives, or curvature at critical points, while RootsExtremaInflections finds roots, extrema and inflection points of curves defined by discrete points.

Interpolation and Approximation

Base R provides functions approx() for constant and linear interpolation, and spline() for cubic (Hermite) spline interpolation, while smooth.spline() performs cubic spline approximation. Base package splines creates periodic interpolation splines in function periodicSpline().

  • Interpolation of irregularly spaced data is possible with the akima package: aspline() for univariate data, bicubic() أو interp() for data on a 2D rectangular domain. (This package is distributed under ACM license and not available for commercial use.)
  • Package signal contains several filters to smooth discrete data, notably interp1() for linear, spline, and cubic interpolation, pchip() for piecewise cubic Hermite interpolation, and sgolay() for Savitzky-Golay smoothing.
  • Package pracma provides barycentric Lagrange interpolation (in 1 and 2 dimensions) in barylag() resp. barylag2d(), 1-dim. akima in akimaInterp(), and interpolation and approximation of data with rational functions, i.e. in the presence of singularities, in ratinterp() و rationalfit().
  • The interp package provides bivariate data interpolation on regular and irregular grids, either linear or using splines. Currently the piecewise linear interpolation part is implemented. (It is intended to provide a free replacement for the ACM licensed akima::interp و tripack::tri.mesh functions.)
  • Package chebpol contains methods for creating multivariate Chebyshev and other multilinear interpolations on regular grids, e.g. the Floater-Hormann barycenter method, or polyharmonic splines for scattered data.
  • Package kubik provides (constructs, plots and evaluates) constrained cubic Hermite splines and computes their derivatives, indefinite integrals, as well as roots, optima, or inflection points.
  • tripack for triangulation of irregularly spaced data is a constrained two-dimensional Delaunay triangulation package providing both triangulation and generation of Voronoi mosaics of irregular spaced data.
  • sinterp() in package stinepack realizes interpolation based on piecewise rational functions by applying Stineman's algorithm. The interpolating function will be monotone in regions where the specified points change monotonically.
  • Schumaker() in package schumaker implements shape-preserving splines, guaranteed to be monotonic resp. concave or convex if the data is monotonic, concave, or convex.
  • ADPF uses least-squares polynomial regression and statistical testing to improve Savitzky-Golay smoothing.
  • Package conicfit provides several (geometric and algebraic) algorithms for fitting circles, ellipses, and conics in general.

Root Finding and Fixed Points

uniroot(), implementing the Brent-Decker algorithm, is the basic routine in R to find roots of univariate functions. There are implementations of the bisection algorithm in several contributed packages. For root finding with higher precision there is function unirootR() in the multi-precision package Rmpfr. And for finding roots of multivariate functions see the following packages:

  • Package rootSolve includes function multiroot() for finding roots of systems of nonlinear (and linear) equations it also contains an extension uniroot.all() that attempts to find all zeros of a univariate function in an intervall (excepting quadratic zeros).
  • For solving nonlinear systems of equations the BB package provides Barzilai-Borwein spectral methods in sane(), including a derivative-free variant in dfsane(), and multi-start features with sensitivity analysis.
  • Package nleqslv solves nonlinear systems of equations using alternatively the Broyden or Newton method, supported by strategies such as line searches or trust regions.
  • ktsolve defines a common interface for solving a set of equations with BB أو nleqslv.
  • Package daarem implements the DAAREM method for accelerating the convergence of any smooth, monotone, slow fixed point iteration.
  • Algorithms for accelerating the convergence of slow, monotone sequences from smooth contraction mappings such as the expectation-maximization (EM) algorithm are provided in packages SQUAREM resp. turboEM.

Discrete Mathematics and Number Theory

Not so many functions are available for computational number theory. Note that integers in double precision can be represented exactly up to 2^53 - 1, above that limit a multi-precision package such as gmp is needed, see below.

  • Package numbers provides functions for factorization, prime numbers, twin primes, primitive roots, modular inverses, extended GCD, etc. Included are some number-theoretic functions like divisor functions or Euler's Phi function.
  • contfrac contains various utilities for evaluating continued fractions and partial convergents.
  • magic creates and investigates magical squares and hypercubes, including functions for the manipulation and analysis of arbitrarily dimensioned arrays.
  • Package freegroup provides functionality for manipulating elements of a free group including juxtaposition, inversion, multiplication by a scalar, power operations, and Tietze forms.
  • The partitions package enumerates additive partitions of integers, including restricted and unequal partitions.
  • permutations treats permutations as invertible functions of finite sets and includes several mathematical operations on them.
  • Package combinat generates all permutations or all combinations of a certain length of a set of elements (i.e. a vector) it also computes binomial coefficients.
  • Package arrangements provides generators and iterators for permutations, combinations and partitions. The iterators allow users to generate arrangements in a fast and memory efficient manner. Permutations and combinations can be drawn with/without replacement and support multisets.
  • Package set6 implements (as R6 classes) many forms of mathematical sets (sets, tuples, intervals) and allows for standard operations on them (unions, products, differences).
  • RcppAlgos provides flexible functions for generating combinations or permutations of a vector with or without constraints the extension package RcppBigIntAlgos features a quadratic sieve algorithm for completely factoring large integers.
  • Package Zseq generates well-known integer sequences the 'gmp' package is adopted for computing with arbitrarily large numbers. Every function has on its help page a hyperlink to the corresponding entry in the On-Line Encyclopedia of Integer Sequences ( OEIS ).
  • Package primes provides quite fast (Rcpp) functions for identifying and generating prime numbers. And primefactr uses prime factorization for computations such as reducing ratios of large factorials.

Multi-Precision Arithmetic and Symbolic Mathematics

  • Multiple precision arithmetic is available in R through package gmp that interfaces to the GMP C library. Examples are factorization of integers, a probabilistic prime number test, or operations on big rationals -- for which linear systems of equations can be solved.
  • Multiple precision floating point operations and functions are provided through package Rmpfr using the MPFR and GMP libraries. Special numbers and some special functions are included, as well as routines for root finding, integration, and optimization in arbitrary precision.
  • Brobdingnag handles very large numbers by holding their logarithm plus a flag indicating their sign. (An excellent vignette explains how this is done using S4 methods.)
  • VeryLargeIntegers implements a multi-precision library that allows to store and manage arbitrarily big integers it includes probabilistic primality tests and factorization algorithms.
  • Package Ryacas interfaces the computer algebra system 'Yacas' it supports symbolic and arbitrary precision computations in calculus and linear algebra.
  • Packages caracas (based on 'reticulate') and rSymPy (based on 'rjava') both access the symbolic algebra system 'SymPy' supported are symbolic operations in linear algebra and calculus, such as eigenvalues, derivatives, integrals, limits, etc., computing special functions, or solving systems of equations.
  • Package symengine provides an interface to 'SymEngine', a C++ library for fast symbolic calculations, such as manipulating mathematical expressions, finding exact derivatives, performing symbolic matrix computations, or solving ordinary differential equations (numerically).

Python Interfaces

Python, through its modules 'NumPy', 'SciPy', 'Matplotlib', 'SymPy', and 'pandas', has elaborate and efficient numerical and graphical tools available.

  • reticulate is an R interface to Python modules, classes, and functions. When calling Python in R data types are automatically converted to their equivalent Python types when values are returned from Python to R they are converted back to R types. This package from the RStudio team is a kind of standard for calling Python from R.
  • feather provides bindings to read and write feather files, a lightweight binary data store designed for maximum speed. This storage format can also be accessed in Python, Julia, or Scala.
  • 'pyRserve' is a Python module for connecting Python to an R process running Rserve as an RPC gateway. This R process can run on a remote machine, variable access and function calls will be delegated through the network.
  • XRPython (and 'XRJulia') are based on John Chambers' XR package and his "Extending R" book and allow for a structured integration of R with Python resp. Julia.

MATLAB, Octave, Julia, and other Interfaces

Interfaces to numerical computation software such as MATLAB (commercial) or Octave (free) will be important when solving difficult numerical problems. Unfortunately, at the moment there is no package allowing to call Octave functions from within R.

  • The matlab emulation package contains about 30 simple functions, replicating MATLAB functions, using the respective MATLAB names and being implemented in pure R.
  • Packages rmatio and R.matlab provides tools to read and write MAT files (the MATLAB data format) for versions 4 and 5. 'R.matlab' also enables a one-directional interface with a MATLAB v6 process, sending and retrieving objects through a TCP connection.

Julia is "a high-level, high-performance dynamic programming language for numerical computing", which makes it interesting for optimization problems and other demanding scientific computations in R.

  • JuliaCall provides seamless integration between R and Julia the user can call Julia functions just like any R function, and R functions can be called in the Julia environment, both with reasonable automatic type conversion. Notes on Julia Call provides an introduction of how to apply Julia functions with 'JuliaCall'.
  • JuliaConnectoR provides a functionally oriented interface for integrating Julia with R imported Julia functions can be called as R functions data structures are converted automatically.
  • Package XRJulia provides an interface from R to computations in the Julia language, based on the interface structure described in the book "Extending R" by John M. Chambers.

Java Math functions can be employed through the 'rjava' or 'rscala' interfaces. Then package commonsMath allows calling Java JAR files of the Apache Commons Mathematics Library, a specialized library for all aspects of numerics, optimization, and differential equations.

SageMath is an open source mathematics system based on Python, allowing to run R functions, but also providing access to systems like Maxima, GAP, FLINT, and many more math programs. SageMath can be freely used through a Web interface at CoCalc .

Package m2r provides a persistent interface to Macauley2, an extended software program supporting research in algebraic geometry and commutative algebra. Macauley2 has to be installed independently, otherwise a Macauley2 process in the cloud will be instantiated.

Please note that commercial programs such as MATLAB, Maple, or Mathematica have facilities to call R functions.


Prelims Mathematics & Philosophy 2019-20

The synopses give some additional detail, and show how the material is split between the different lecture courses. They also include details of recommended reading.

The syllabus here is that referred to in the Examination Regulations 2019 Special Regulations for the Preliminary Examination in Mathematics & Philosophy (https://www.admin.ox.ac.uk/examregs/).

Mathematics I

Sets: examples including the natural numbers, the integers, the rational numbers, the real numbers inclusion, union, intersection, power set, ordered pairs and cartesian product of sets. Relations. Definition of an equivalence relation.

The well-ordering property of the natural numbers. Induction as a method of proof, including a proof of the binomial theorem with non-negative integral coefficients.

Maps: composition, restriction, injective (one-to-one), surjective (onto) and invertible maps, images and preimages.

Systems of linear equations. Matrices and the beginnings of matrix algebra. Use of matrices to describe systems of linear equations.
Elementary Row Operations (EROs) on matrices. Reduction of matrices to echelon form. Application to the solution of systems of linear equations.

Inverse of a square matrix. Reduced row echelon (RRE) form and the use of EROs to compute inverses computational efficiency of the method. Transpose of a matrix orthogonal matrices.

Vector spaces: definition of a vector space over a field (such as $mathbb$, $mathbb$, $mathbb$). Subspaces. Many explicit examples of vector spaces and subspaces.

Span of a set of vectors. Examples such as row space and column space of a matrix. Linear dependence and independence. Bases of vector spaces examples. The Steinitz Exchange Lemma dimension. Application to matrices: row space and column space, row rank and column rank. Coordinates associated with a basis of a vector space.

Use of EROs to find bases of subspaces. Sums and intersections of subspaces the dimension formula. Direct sums of subspaces.

Linear transformations: definition and examples (including projections associated with direct-sum decompositions). Some algebra of linear transformations inverses. Kernel and image, Rank-Nullity Theorem. Applications including algebraic characterisation of projections (as idempotent linear transformations).

Matrix of a linear transformation with respect to bases. Change of Bases Theorem. Applications including proof that row rank and column rank of a matrix are equal.

Bilinear forms real inner product spaces examples. Mention of complex inner product spaces. Cauchy--Schwarz inequality. Distance and angle. The importance of orthogonal matrices.

Introduction to determinant of a square matrix: existence and uniqueness and relation to volume. Proof of existence by induction. Basic properties, computation by row operations.

Determinants and linear transformations: multiplicativity of the determinant, definition of the determinant of a linear transformation. Invertibility and the determinant. Permutation matrices and explicit formula for the determinant deduced from properties of determinant.

Eigenvectors and eigenvalues, the characteristic polynomial. Trace. Proof that eigenspaces form a direct sum. Examples. Discussion of diagonalisation. Geometric and algebraic multiplicity of eigenvalues.

Spectral theorem for real symmetric matrices. Matrix realisation of bilinear maps given a basis and application to orthogonal transformation of quadrics into normal form. Statement of classification of orthogonal transformations.

Axioms for a group and for an Abelian group. Examples including geometric symmetry groups, matrix groups ($GL_$, $SL_$, $O_$, $ SO_$, $U_$), cyclic groups. Products of groups.

Permutations of a finite set under composition. Cycles and cycle notation. Order. Transpositions every permutation may be expressed as a product of transpositions. The parity of a permutation is well-defined via determinants. Conjugacy in permutation groups.

Subgroups examples. Intersections. The subgroup generated by a subset of a group. A subgroup of a cyclic group is cyclic. Connection with hcf and lcm. Bezout's Lemma.

Recap on equivalence relations including congruence mod n and conjugacy in a group. Proof that equivalence classes partition a set. Cosets and Lagrange's Theorem examples. The order of an element. Fermat's Little Theorem.

Isomorphisms, examples. Groups of order 8 or less up to isomorphism (stated without proof). Homomorphisms of groups with motivating examples. Kernels. Images. Normal subgroups. Quotient groups examples. First Isomorphism Theorem. Simple examples determining all homomorphisms between groups.

Group actions examples. Definition of orbits and stabilizers. Transitivity. Orbits partition the set. Stabilizers are subgroups.

Orbit-stabilizer Theorem. Examples and applications including Cauchy's Theorem and to conjugacy classes.

Orbit-counting formula. Examples.

The representation $G ightarrow mathrm(S)$ associated with an action of $G$ on $S$. Cayley's Theorem. Symmetry groups of the tetrahedron and cube.

Mathematics II

Real numbers: arithmetic, ordering, suprema, infima real numbers as a complete ordered field. Countable sets. The rational numbers are countable. The real numbers are uncountable.

The complex number system. The Argand diagram modulus and argument. De Moivre's Theorem, polar form, the triangle inequality. Statement of the Fundamental Theorem of Algebra. Roots of unity. Simple transformations in the complex plane. Polar form, with applications.

Sequences of (real or complex) numbers. Limits of sequences of numbers the algebra of limits. Order notation.

Subsequences every subsequence of a convergent sequence converges to the same limit. Bounded monotone sequences converge. Bolzano-Weierstrass Theorem. Cauchy's convergence criterion. Limit point of a subset of the line or plane.

Series of (real or complex) numbers. Convergence of series. Simple examples to include geometric progressions and power series. Alternating series test, absolute convergence, comparison test, ratio test, integral test.

Power series, radius of convergence, important examples to include definitions of relationships between exponential, trigonometric functions and hyperbolic functions.

Continuous functions of a single real or complex variable. Definition of continuity of real valued functions of several variables.

The algebra of continuous functions. A continuous real-valued function on a closed bounded interval is bounded, achieves its bounds and is uniformly continuous. Intermediate Value Theorem. Inverse Function Theorem for continuous strictly monotonic functions.

Sequences and series of functions. The uniform limit of a sequence of continuous functions is continuous. Weierstrass's M-test. Continuity of functions defined by power series.

Definition of derivative of a function of a single real variable. The algebra of differentiable functions. Rolle's Theorem. Mean Value Theorem. Cauchy's (Generalized) Mean Value Theorem. L'Hôpital's Formula. Taylor's expansion with remainder in Lagrange's form. Binomial theorem with arbitrary index.

Step functions and their integrals. The integral of a continuous function on a closed bounded interval. Properties of the integral including linearity and the interchange of integral and limit for a uniform limit of continuous functions on a bounded interval. The Mean Value Theorem for Integrals. The Fundamental Theorem of Calculus integration by parts and substitution.

Term-by-term differentiation of a (real) power series (interchanging limit and derivative for a series of functions where the derivatives converge uniformly).

Mathematics III(P)

General linear homogeneous ODEs: integrating factor for first order linear ODEs, second solution when one solution is known for second order linear ODEs. First and second order linear ODEs with constant coefficients. General solution of linear inhomogeneous ODE as particular solution plus solution of homogeneous equation. Simple examples of finding particular integrals by guesswork.

Partial derivatives. Second order derivatives and statement of condition for equality of mixed partial derivatives. Chain rule, change of variable, including planar polar coordinates. Solving some simple partial differential equations (e.g. $f_ = 0$, $f_x = f_y$).

Parametric representation of curves, tangents. Arc length. Line integrals.

Jacobians with examples including plane polar coordinates. Some simple double integrals calculating area and also $int_^2> e^ <-(x^2+y^2)>dA$.

Simple examples of surfaces, especially as level sets. Gradient vector normal to surface directional derivative $int^B_A abla phi cdot dmathbf = phi(B)-phi(A)$.

Taylor's Theorem for a function of two variables (statement only). Critical points and classification using directional derivatives and Taylor's theorem. Informal (geometrical) treatment of Lagrange multipliers.

Sample space, algebra of events, probability measure. Permutations and combinations, sampling with or without replacement. Conditional probability, partitions of the sample space, theorem of total probability, Bayes' Theorem. Independence.

Discrete random variables, probability mass functions, examples: Bernoulli, binomial, Poisson, geometric. Expectation: mean and variance. Joint distributions of several discrete random variables. Marginal and conditional distributions. Independence. Conditional expectation, theorem of total probability for expectations. Expectations of functions of more than one discrete random variable, covariance, variance of a sum of dependent discrete random variables.

Solution of first and second order linear difference equations. Random walks (finite state space only).

Probability generating functions, use in calculating expectations. Random sample, sums of independent random variables, random sums. Chebyshev's inequality, Weak Law of Large Numbers.

Continuous random variables, cumulative distribution functions, probability density functions, examples: uniform, exponential, gamma, normal. Expectation: mean and variance. Functions of a single continuous random variable. Joint probability density functions of several continuous random variables (rectangular regions only). Marginal distributions. Independence. Expectations of functions of jointly continuous random variables, covariance, variance of a sum of dependent jointly continuous random variables.


Appendix.: Methods

Two main methods were used. The first used an analytical approach, while the second used a numerical approach. The first method was used on models 1 to 4, and on models 5 and 6 for ن = 1–6. In these cases the number of samples used was 100 000. تم استخدام الطريقة الثانية على الطرازين 5 و 6 لـ ن = 1–10 و ن = 20 ، 30. 100 ، هذه المرة ، لأسباب حسابية ، كان حجم العينة 1000.

أ .1. الطريقة التحليلية

لكل من النماذج ، تم العثور على أح.م باستخدام محلل معادلات ماتلاب التحليلي ، يحل. تم وصف اليعقوبي أيضًا تحليليًا باستخدام Matlab جاكوبيان وظيفة.

تم أخذ عينات من المعلمات المختلفة من توزيع موحد باستخدام Matlab's راند وظيفة. سيتم وصف اختيار نطاق المعلمات بالتفصيل أدناه.

أ -1.1. الخوارزمية

لكل نموذج ، يتم تقييم (أح.م) واستقرارها لمجموعة مختلفة من المعلمات بالطريقة التالية.


شاهد الفيديو: 4x4 matrix determinant محدد المصفوفة الرباعية بدون اصفار (شهر اكتوبر 2021).