هناك حول طريقة مباشرة لعكس الثلاثي (العلوي أو السفلي) مصفوفة؟

StackOverflow https://stackoverflow.com/questions/420612

سؤال

وأنا أحاول لتنفيذ بعض عمليات الجبر الخطي الأساسية واحدة من هذه العمليات هو انعكاس الثلاثي (العليا و / أو أقل) المصفوفة. هل هناك خوارزمية سهلة ومستقر للقيام بذلك؟

وشكرا لكم.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

ولا عكس ذلك إذا كنت تستطيع. انها واحدة من الوصايا الأساسية من الجبر الخطي العددي.

وهو أسرع بكثير وعدديا استقرارا للحفاظ على مصفوفة L نفسه في الذاكرة وحساب

inv(L)b
مع عودة إحلال كلما كنت في حاجة إلى القيام بشيء آخر مع الجرد (L).

لاحظ أن خوارزمية العرفية لعكس ذلك يتطلب حل النظم

inv(L)[1 0 0 ...],
inv(L)[0 1 0 ....],
inv(L)[0 0 1 ....]
وهلم جرا، لذلك ترى انه من الاسهل بكثير عدم عكس ذلك على الإطلاق.

ونظرا لانخفاض مصفوفة ثلاثية L، backsubstitution يسمح لك حل النظام L س = ب بسرعة لأي الجانب الأيمن ب.

لعكس L، يمكنك حل هذا النظام لالأيمن الجانبين E1 = (1،0، ...، 0)، E2 = (0،1، ...، 0)، ...، حمام = (0،0، ...، 1) والجمع بين ناقلات المحلول الناتج في (بالضرورة السفلية الثلاثي) مصفوفة واحدة.

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

إذا كنت تتحدث عن ريال دقة واحدة، إلقاء نظرة على شفرة المصدر لإجراءات LAPACK <لأ href = "http://www.netlib.org/lapack/single/strtri.f" يختلط = "نوفولو noreferrer "> STRTRI و STRTI2 .

وواو، وهذا عمليا نصف محتويات دورة التحليل العددي. وخوارزميات مستوى تفعل ذلك، وهناك مجموعة من الرموز المعلبة هنا . المصدر النهائي لهذا وغيرها من معظم مشاكل التحليل العددي المعتادة هو العددي وصفات .

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top