লিনিয়ার সিস্টেম সমাধানের জন্য ম্যাট্রিক্সকে উল্টানো ভাল ধারণা নয়, যেহেতু এটি সরাসরি সিস্টেমটি সমাধান করার জন্য বা এলইউ, কোলেস্কি বা কিউআর পচন ব্যবহার করার মতো সঠিক এবং দক্ষ নয়।
তবে, আমি এটি ব্যবহারিক উদাহরণ দিয়ে পরীক্ষা করতে পারিনি। আমি এই কোডটি চেষ্টা করেছি (ম্যাটল্যাবে)
M = 500;
A = rand(M,M);
A = real(expm(1i*(A+A.')));
b = rand(M,1);
x1 = A\b;
x2 = inv(A)*b;
disp(norm(b-A*x1))
disp(norm(b-A*x2))
এবং অবশিষ্টাংশগুলি সর্বদা একই ক্রমে থাকে (10 ^ -13)।
কেউ কি ব্যবহারিক উদাহরণ প্রদান করতে পারেন যাতে ইনভেনড (এ) * বি এ \ বি এর চেয়ে অনেক কম ভুল?
------ প্রশ্ন আপডেট ------
আপনার উত্তরের জন্য ধন্যবাদ। যাইহোক, যে অনুমান আমরা সমাধান আছে বার একটি সিস্টেম একটি এক্স = খ , যেখানে একজন সবসময় একই ম্যাট্রিক্স হয়। এটা বিবেচনা করুন
- পূর্ণ, এবং এইভাবে A - 1 এ এর চেয়ে একই মেমরি স্টোরেজ প্রয়োজন ।
এর স্বয়ংক্রিয়ভাবে শর্ত সংখ্যা ছোট, অত: পর একটি - 1 সঠিকতা সঙ্গে নির্ণিত করা যেতে পারে।
সেক্ষেত্রে LU পচন ব্যবহার না করে গণনা করা আরও দক্ষ হবে না ? উদাহরণস্বরূপ, আমি এই মতলব কোডটি চেষ্টা করেছি:
%Set A and b:
M = 1000;
A = rand(M,M);
A = real(expm(1i*(A+A.')));
b = rand(M,1);
%Times we solve the system:
n = 3000;
%Performing LU decomposition:
disp('Performing LU decomposition')
tic
[L,U,P] = lu(A);
toc
fprintf('\n')
%Solving the system n times with LU decomposition:
optsL.LT = true; %Options for linsolve
optsU.UT = true;
disp('Solving the system n times using LU decomposition')
tic
for ii=1:n
x1 = linsolve(U, linsolve(L,P*b,optsL) , optsU);
end
toc
fprintf('\n')
%Computing inverse of A:
disp('Computing inverse of A')
tic
Ainv = inv(A);
toc
fprintf('\n')
%Solving the system n times with Ainv:
disp('Solving the system n times with A inv')
tic
for ii=1:n
x2 = Ainv*b;
end
toc
fprintf('\n')
disp('Residuals')
disp(norm(b-A*x1))
disp(norm(b-A*x2))
disp('Condition number of A')
disp(cond(A))
450 সম্পর্কে শর্ত নম্বর দিয়ে একটি ম্যাট্রিক্স জন্য, অবশিষ্টাংশ হয় উভয় ক্ষেত্রেই, কিন্তু এটা সিস্টেমের সমাধানে এন বার এল ইউ পচানি ব্যবহার করার জন্য 19 সেকেন্ড সময় লাগে, একটি বিপরীত ব্যবহার করে এটি মাত্র 9 সেকেন্ড সময় লাগে যেহেতু।
Ax=b
করতে হয় A
এবং এটি বিপরীতমুখী হওয়ার পক্ষে যথেষ্ট ছোট হয় তবে আপনি পরিবর্তে LU-factorization সংরক্ষণ করতে পারেন এবং এটি পুনরায় ব্যবহার করতে পারেন।