PA2.pdf

‫تمرین سری دوم درس محاسبات عددی‬
‫نحوه تحویل‬
‫به ازای هر سوال فقط یک فایل‪ ،‬با نام «شماره و نوع سوال» و پسوند ‪ .cpp‬ایجاد نمایید‪ .‬در نهایت همه فایلها‬
‫را داخل یک فایل فشرده با نام «شماره دانشجویی» و پسوند ‪ .zip‬قرار دهید‪ .‬سپس با عنوان «شماره تمرین» به‬
‫ایمیل ‪ numerical.methods.s15@gmail.com‬ارسال نمایید‪ .‬چنانچه باقیمانده رقم سمت راست شماره‬
‫دانشجویی شما بر عدد ‪ 𝑘 ،2‬باشد‪ ،‬در هر سوال میبایست فقط سوال نوع 𝑘 را پاسخ دهید‪.‬‬
‫به عنوان مثال چنانچه شماره دانشجویی شما ‪ 92123456‬باشد‪ ،‬در این تمرین میبایست یک ایمیل با عنوان‬
‫‪ HW2‬ارسال نمایید‪ .‬ایمیل شما میبایست حاوی فقط یک فایل با نام ‪ 92123456.zip‬باشد‪ .‬محتویات فایل فشرده‬
‫نیز میبایست دو فایل با نامهای ‪ 1-type0.cpp‬و ‪ 2-type0.cpp‬باشد‪.‬‬
‫ســـــواالت‬
‫هرگونه سوال یا ابهام در مورد تمرین را با ایمیلهای ‪ m.bakhshalipour@gmail.com‬و ‪ zardoshti@ipm.ir‬در‬
‫میان بگذارید‪.‬‬
‫سوال ‪[ .1‬نوع ‪ 0‬و ‪[]1‬یافتن ماتریس معکوس به روش گاوس‪-‬جردن]‬
‫‪1‬‬
‫الگوریتم یافتن ماتریس معکوسِ یک ماتریس مربعی با اندازه 𝑛 را پیادهسازی کنید‪ .‬فرض کنید 𝐴 یک ماتریس‬
‫مربعی با ابعاد 𝑛 × 𝑛 است‪ .‬ابتدا ماتریس 𝑛‪ 𝑀𝑛×2‬را از روی ماتریس 𝐴 بسازید به طوری که‪:‬‬
‫] 𝑛×𝑛𝐼 𝑛×𝑛𝐴 [ = 𝑛‪𝑀𝑛×2‬‬
‫که 𝐼 همان ماتریس همانی با ابعاد 𝑛 است‪ .‬به عبارت دیگر ماتریس 𝑀 از کنار هم قرار دادن ماتریس 𝐴 و ماتریس‬
‫همانی شکل میگیرد‪ .‬با انجام عملیات سطری روی ماتریس 𝑀‪ ،‬آن را به ماتریس زیر تبدیل کنید‪:‬‬
‫́‬
‫𝑛‪𝑀𝑛×2‬‬
‫] 𝑛×𝑛𝐵 𝑛×𝑛𝐼 [ =‬
‫که 𝐼 همان ماتریس همانی است‪ .‬در این صورت میتوان گفت ماتریس 𝐵‪ ،‬معکوس ماتریس 𝐴 است‪.‬‬
‫عملیات سطری در اینجا تنها شامل دو مورد زیر است‪:‬‬
‫‪ ‬افزودن ضریبی از یک سطر به سطر دیگر‬
‫‪ ‬ضرب یک سطر در یک عدد غیر صفر‬
‫همچنین توجه کنید‪ ،‬در صورتی که نتوان ماتریس 𝑀 را به شکل فوق تبدیل کرد‪ ،‬ماتریس 𝐴 معکوسناپذیر است‪.‬‬
‫در اینجا میتوانید فرض کنید ماتریس 𝐴 همواره معکوسپذیر است‪.‬‬
‫برنامه شما در ابتدا میبایست 𝑛 را از کاربر گرفته و در 𝑛 سطر بعدی‪ ،‬در هر سطر 𝑛 عدد را دریافت کرده (اعداد‬
‫با فاصله از هم جدا میشوند) و در خروجی معکوس ماتریس را نمایش دهد‪.‬‬
‫خروجی نمونه‬
‫‪-0.33 0.53 -0.091‬‬
‫‪1.5 -0.2 0.21‬‬
‫‪0.35 0.26 0.3‬‬
‫ورودی نمونه‬
‫‪3‬‬
‫‪0.54 0.86 -0.43‬‬
‫‪1.8 0.32 0.34‬‬
‫‪-2.3 -1.3 3.6‬‬
‫‪ 1‬در صورت پیادهسازی کامل و صحیح الگوریتم به صورت موازی‪ ،‬حداکثر تا دوبرابر نمره سوال را میتوانید دریافت کنید‪.‬‬
‫سوال ‪[ .2‬نوع ‪[]0‬یافتن پاسخ دستگاه معادالت خطی به روش چالسکی]‬
‫میخواهیم برنامهای بنویسیم که دستگاه معادالت خطی 𝐵 = 𝑋𝐴 را به روش چالسکی حل کند‪.‬‬
‫برنامهای بنویسید که در ابتدا تعداد معادالت‪-‬مجهوالت (𝑛) را دریافت کرده و در 𝑛 سطر بعدی‪ ،‬در هر سطر‬
‫‪ 𝑛 + 1‬عدد را (با فاصله) دریافت کند (در سطر 𝑖‪-‬اُم‪ 𝑛 ،‬عدد اول‪ ،‬درایههای سطر 𝑖‪-‬اُم ماتریس ضرایب و عدد‬
‫‪-𝑛 + 1‬اُم‪ 𝐵[𝑖] ،‬را نشان میدهد)‪ .‬سپس در خروجی‪ ،‬پاسخ دستگاه معادالت را در 𝑛 سطر چاپ کند‪.‬‬
‫ورودی نمونه‬
‫خروجی نمونه‬
‫‪1‬‬
‫‪-1‬‬
‫‪2‬‬
‫‪3‬‬
‫‪4‬‬
‫‪3 1 -1 2 6‬‬
‫‪-5 1 3 -4 -12‬‬
‫‪2 0 1 -1 1‬‬
‫‪1 -5 3 -3 3‬‬
‫سوال ‪[ .2‬نوع ‪[]1‬یافتن پاسخ دستگاه معادالت خطی به روش 𝑙𝑒𝑑𝑖𝑒𝑆 ‪]𝐺𝑎𝑢𝑠𝑠 −‬‬
‫برنامهای بنویسید که پاسخ دستگاه معادالت خطی 𝐵 = 𝑋𝐴 را به روش 𝑙𝑒𝑑𝑖𝑒𝑆 ‪ 𝐺𝑎𝑢𝑠𝑠 −‬حل کند‪ .‬در‬
‫این روش میتوان هر درایه از ماتریس جواب را در مرحله ‪ 𝑘 + 1‬به این شکل حساب کرد‪:‬‬
‫𝑛‬
‫‪𝑖−1‬‬
‫‪𝑗=𝑖+1‬‬
‫‪𝑗=1‬‬
‫‪1‬‬
‫=‬
‫]) )𝑘( 𝑗𝑥 𝑗𝑖𝑎( ∑ ‪[𝑏𝑖 − ∑(𝑎𝑖𝑗 𝑥𝑗 (𝑘+1) ) −‬‬
‫𝑖𝑖𝑎‬
‫)‪𝑥𝑖 (𝑘+1‬‬
‫همچنین در حل دستگاه معادالت با استفاده از این روش‪ ،‬نیاز به یک ماتریس جواب حدس اولیه ( ‪ )𝑋 0‬نیز داریم‪،‬‬
‫که از کاربر‪ ،‬تحت عنوان ورودی دریافت میشود‪.‬‬
‫عالوه بر آن‪ ،‬همانطور که میدانید این الگوریتم زمانی قطعا به جواب همگرا میشود که ماتریس ضرایب‪ ،‬قطری‬
‫غالب‪ 2‬باشد‪ .‬یعنی به ازای 𝑛 ‪ 𝑖 = 1, 2, … ,‬داشته باشیم‪ .|𝑎𝑖𝑖 | > ∑𝑛𝑗=1, 𝑗≠𝑖|𝑎𝑖𝑗 | :‬در این سوال میتوانید‬
‫فرض کنید ماتریس ضرایب‪ ،‬همواره قطری غالب است‪.‬‬
‫برنامهای بنویسید که در ابتدا تعداد معادالت‪-‬مجهوالت (𝑛) را دریافت کرده و در 𝑛 سطر بعدی‪ ،‬در هر سطر‬
‫‪ 𝑛 + 1‬عدد را (با فاصله) دریافت کند (در سطر 𝑖‪-‬اُم‪ 𝑛 ،‬عدد اول‪ ،‬درایههای سطر 𝑖‪-‬اُم ماتریس ضرایب و عدد‬
‫‪-𝑛 + 1‬اُم‪ 𝐵[𝑖] ،‬را نشان میدهد)‪ .‬در 𝑛 سطر بعدی‪ ،‬درایههای حدس اولیه دریافت میشوند‪ .‬سپس برنامه تعداد‬
‫مراحل تکرار (𝑘) را دریافت کرده و در خروجی‪ ،‬جواب را پس از 𝑘 مرحله تکرار ( 𝑘 𝑋)‪ ،‬نمایش میدهد‪.‬‬
‫ورودی نمونه‬
‫خروجی نمونه‬
‫‪0.80006‬‬
‫‪1.00002‬‬
‫‪1.19999‬‬
‫‪1.40000‬‬
‫‪21.70‬‬
‫‪27.46‬‬
‫‪28.76‬‬
‫‪49.72‬‬
‫‪4‬‬
‫‪20.9 1.2 2.1 0.9‬‬
‫‪1.2 21.2 1.5 2.5‬‬
‫‪2.1 1.5 19.8 1.3‬‬
‫‪0.9 2.5 1.3 32.1‬‬
‫‪1.04‬‬
‫‪1.30‬‬
‫‪1.45‬‬
‫‪1.55‬‬
‫‪3‬‬
‫‪Strictly Diagonally‬‬
‫‪2‬‬