मान लीजिए एक n × n घना मैट्रिक्स है और आपको A x i = b i , i = 1 … m को हल करना होगा । अगर m काफी बड़ा है तो इसमें कुछ भी गलत नहीं हैएn × n एक एक्समैं= बीमैंi = 1 … मीम
V = inv(A);
...
x = V*b;
फ्लॉप के लिए हैं और O ( n 2 ) के लिए , इसलिए मी के प्रयोग के लिए ब्रेक-सम मूल्य निर्धारित करने के लिए कुछ प्रयोग की आवश्यकता है ...ओ ( एन)3)inv(A)
ओ ( एन)2)V*b
म
>> n = 5000;
>> A = randn(n,n);
>> x = randn(n,1);
>> b = A*x;
>> rcond(A)
ans =
1.3837e-06
>> tic, xm = A\b; toc
Elapsed time is 1.907102 seconds.
>> tic, [L,U] = lu(A); toc
Elapsed time is 1.818247 seconds.
>> tic, xl = U\(L\b); toc
Elapsed time is 0.399051 seconds.
>> tic, [L,U,p] = lu(A,'vector'); toc
Elapsed time is 1.581756 seconds.
>> tic, xp = U\(L\b(p)); toc
Elapsed time is 0.060203 seconds.
>> tic, V=inv(A); toc
Elapsed time is 7.614582 seconds.
>> tic, xv = V*b; toc
Elapsed time is 0.011499 seconds.
>> [norm(xm-x), norm(xp-x), norm(xl-x), norm(xv-x)] ./ norm(x)
ans =
1.0e-11 *
0.1912 0.1912 0.1912 0.6183
ए- 1एल यूm > 125
कुछ नोट
स्थिरता और त्रुटि विश्लेषण के लिए कृपया इस भिन्न उत्तर के लिए टिप्पणियों को देखें , विशेष रूप से विक्टरलियू द्वारा।
म ≪ n
टाइमिंग 5 के एक काफी स्थिर UNIX लोड औसत के साथ 12 कोर कंप्यूटर पर Matlab R2011b के साथ किया गया था; tic, toc
तीन जांच का सबसे अच्छा समय।