গাণিতিক পটভূমি
আসল সংখ্যার একটি এন বাই ম্যাট্রিক্স, এন আসল সংখ্যার বা ভেক্টর এবং এক্সএ ভেক্টর এন অজানা আসল সংখ্যার একটি এন হওয়া যাক। একটি ম্যাট্রিক্স সমীকরণটি Ax = b হয়।
জ্যাকবীর পদ্ধতিটি নিম্নরূপ: A = D + R পচন করুন, যেখানে D হ'ল ম্যাট্রিক্স, এবং আর অবশিষ্ট প্রবেশিকাগুলি R R
আপনি যদি প্রাথমিক অনুমান সমাধান x0 করেন তবে একটি উন্নত সমাধান হল x1 = বিপরীত (ডি) * (বি - আরএক্স) যেখানে সমস্ত গুণগুলি ম্যাট্রিক্স-ভেক্টর গুণ এবং বিপরীত (ডি) ম্যাট্রিক্স বিপরীত।
সমস্যার নির্দিষ্টকরণ
- ইনপুট : আপনার সম্পূর্ণ প্রোগ্রামটি নিম্নলিখিত তথ্যগুলিকে ইনপুট হিসাবে গ্রহণ করতে হবে: ম্যাট্রিক্স এ, ভেক্টর বি, একটি প্রাথমিক অনুমান x0 এবং একটি 'ত্রুটি' নম্বর ই।
- আউটপুট : প্রোগ্রামটিকে অবশ্যই সর্বনিম্ন সংখ্যার পুনরাবৃত্তির পরিমাণ আউটপুট করতে হবে যাতে সর্বশেষ সমাধানটি সলিউশন দ্বারা আলাদা হয়, সর্বাধিক ই দ্বারা। এর অর্থ পরম পরিমাণে ভেক্টরগুলির প্রতিটি উপাদান বেশিরভাগ ই দ্বারা পৃথক হয়। পুনরাবৃত্তির জন্য আপনাকে অবশ্যই জ্যাকবির পদ্ধতিটি ব্যবহার করতে হবে।
ডেটা কীভাবে ইনপুট করা হয় তা আপনার পছন্দ ; এটি কোনও কমান্ড লাইনে আপনার নিজস্ব বাক্য গঠন হতে পারে, আপনি যা পছন্দ করুন কোনও ফাইল থেকে ইনপুট নিতে পারেন।
কীভাবে ডেটা আউটপুট করা হয় তা আপনার পছন্দ ; এটি কোনও ফাইলের কাছে লিখিত হতে পারে, কমান্ড লাইনে প্রদর্শিত হয়, ASCII শিল্প হিসাবে লিখিত, যে কোনও কিছু, যতক্ষণ না এটি কোনও মানুষের পাঠযোগ্য।
অধিকতর বিস্তারিত
আপনাকে প্রকৃত সমাধান দেওয়া হয়নি: আপনি কীভাবে সঠিক সমাধান গণনা করবেন তা সম্পূর্ণরূপে আপনার to আপনি উদাহরণস্বরূপ ক্রেমার বিধি দ্বারা এটি সমাধান করতে পারেন, বা সরাসরি একটি বিপরীত গণনা করুন। বিষয়গুলি হ'ল পুনরাবৃত্তির সাথে তুলনা করতে সক্ষম হওয়ার জন্য আপনার কাছে একটি সত্য সমাধান রয়েছে।
যথার্থতা একটি বিষয়; তুলনা করার জন্য কিছু লোকের 'সঠিক সমাধান' আলাদা হতে পারে। এই কোড গল্ফের উদ্দেশ্যে 10 দশমিক জায়গায় সঠিক সমাধানটি সঠিক হতে হবে।
একেবারে পরিষ্কার হয়ে উঠতে, যদি আপনার বর্তমান পুনরাবৃত্তি সমাধানের একটি উপাদানও ই এর মাধ্যমে সঠিক সমাধানে এর সংশ্লিষ্ট উপাদানকে অতিক্রম করে, তবে আপনাকে পুনরাবৃত্তি করা দরকার।
আপনি কোন হার্ডওয়্যার ব্যবহার করছেন এবং আপনি প্রোগ্রামটি চালাতে কত সময় ইচ্ছুক তার উপর নির্ভর করে এন এর উপরের সীমাটি পরিবর্তিত হয়। এই কোড গল্ফের উদ্দেশ্যে, সর্বাধিক এন = 50 ধরে নিন।
পূর্বশর্ত
যখন আপনার প্রোগ্রামটি কল করা হয়, আপনি নির্দ্বিধায় মুক্ত হন যে নিম্নলিখিতটি সর্বদা হোল্ড করে:
- এন> 1 এবং এন <51, অর্থাত্ আপনাকে কখনও স্কেলার সমীকরণ দেওয়া হবে না, সর্বদা একটি ম্যাট্রিক্স সমীকরণ।
- সমস্ত ইনপুট প্রকৃত সংখ্যার ক্ষেত্রের ওপরে এবং কখনও জটিল হবে না।
- ম্যাট্রিক্স এ সর্বদা এ জাতীয় যে পদ্ধতিটি সঠিক সমাধানে রূপান্তর করে, যেমন আপনি নীচে বা ই এর সমান ত্রুটি (উপরে বর্ণিত হিসাবে) হ্রাস করতে সর্বদা প্রচুর পুনরাবৃত্তি খুঁজে পেতে পারেন।
- এ কখনই শূন্য ম্যাট্রিক্স বা আইডেন্টিটি ম্যাট্রিক্স নয়, তবে এর একটি সমাধান রয়েছে।
পরীক্ষার কেস
A = ((9, -2), (1, 3)), b = (3,4), x0 = (1,1), e = 0.04
আসল সমাধানটি (0.586, 1.138)। প্রথম পুনরাবৃত্তিটি x1 = (5/9, 1) দেয়, কমপক্ষে একটি উপাদান দ্বারা প্রকৃত সমাধান থেকে 0.04 এর বেশি পৃথক করে। আমরা দেখতে পাই অন্য একটি পুনরাবৃত্তি গ্রহণ করা, x2 = (0.555, 1.148) যা (0.586, 1.138) থেকে 0.04 এর চেয়ে কম পৃথক। সুতরাং আউটপুট হয়
2
A = ((2, 3), (1, 4)), b = (2, -1), x0 = (2.7, -0.7), e = 1.0
এক্ষেত্রে আসল সমাধানটি (২.২, -০.৮) এবং প্রাথমিক অনুমান x0 এর ইতিমধ্যে ই = ১.০ এর চেয়ে কম ত্রুটি রয়েছে, সুতরাং আমরা আউটপুট ০। এটি যখনই আপনাকে পুনরাবৃত্তি করার প্রয়োজন হয় না, আপনি কেবল আউটপুট করেন
0
জমা মূল্যায়ন
এটি কোড গল্ফ, এর মধ্যে সমস্ত স্ট্যান্ডার্ড লুফোলগুলি এর মাধ্যমে অনুমোদিত নয়। সংক্ষিপ্ততম সঠিক সম্পূর্ণ প্রোগ্রাম (বা ফাংশন), অর্থাৎ সর্বনিম্ন সংখ্যা বাইট জিতেছে। ম্যাথমেটিকার মতো জিনিসগুলি ব্যবহার করা নিরুৎসাহিত করা হয় যা একটি ফাংশনে অনেকগুলি প্রয়োজনীয় পদক্ষেপ গুটিয়ে রাখে তবে আপনি যে কোনও ভাষা ব্যবহার করতে পারেন।