#c, حل مسائل با سی شارپ, سی شارپ

جمع و تفریق ماتریس در سی شارپ (Matrix)

جمع و تفریق ماتریس در سی شارپ

در این جلسه تیم کدگیت را با آموزش جمع و تفریق ماتریس در سی شارپ همراهی کنید. پیش نیاز این آموزش کار با آرایه ها است.

ماتریس

ماتریس به آرایشی مستطیلی شکل از اعداد یا عبارات ریاضی که بصورت سطر و ستون شکل یافته گفته می‌شود. به طوری که می‌توان گفت که هر ستون یا هر سطر یک ماتریس، یک بردار را تشکیل می‌دهد. هر یک از عناصر ماتریس درایه خوانده می‌شود. ماتریسی با ۲ سطر و ۳ ستون به این شکل است:

جمع و تفریق ماتریس در جاوا

ماتریس‌های هم اندازه (با تعداد سطر و ستون برابر) را می‌توان با هم جمع یا از هم تفریق کرد. ضرب دو ماتریس تنها در صورتی ممکن است که تعداد ستون‌های ماتریس اول با تعداد سطرهای ماتریس دوم برابر باشد.

در جبر خطی، می‌توان اثبات کرد که هر نگاشت خطیِ، از فضای Rn به فضای R، یک‌ریخت با یک ماتریس m*n (یعنی m سطر n ستون) می‌باشد. ماتریس‌ها کاربردهای فراوانی در جبر خطی دارند(ویکیپدیا).

جمع ماتریس

برای جمع ماتریس باید تعداد سطر و ستون دو ماتریس با هم برابر باشند(یعنی هر دو مثلا 2*3 باشند). فرمول جمع ماتریس به صورت زیر است.

تفریق ماتریس

برای تفریق ماتریس باید تعداد سطر و ستون دو ماتریس با هم برابر باشند. فرمول تفریق ماتریس به صورت زیر است.

جمع و تفریق ماتریس در جاوا

پیاده سازی جمع و تفریق ماتریس در سی شارپ

برای پیاده سازی ماتریس از آرایه دو بعدی استفاده میکنند. ما یک کلاس مینویسیم به نام MainClass و دو متد add و subtract که به ترتیب جمع و تفریق هستند را در آن کلاس پیاده سازی میکنیم.

class MainClass
    {


        // return C = A + B
        public static double[,] add(double[,] A,double[,] B) {
            int m = A.GetLength(0);
            int n = A.GetLength(1);
            double[,] C = new double[m,n];
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    C[i,j] = A[i,j] + B[i,j];
            return C;
        }

        // return C = A - B
        public static double[,] subtract(double[,] A, double[,] B) {
            int m = A.GetLength (0);
            int n = A.GetLength(1);
            double[,] C = new double[m,n];
            for (int i = 0; i < m; i++)
                for (int j = 0; j < n; j++)
                    C[i,j] = A[i,j] - B[i,j];
            return C;
        }
    }

همانطور که در کد جمع و تفریق ماتریس در سی شارپ میبینید ما ابتدا سطر و ستون ماتریس را میگیریم و عناصر هر خانه ماتریس را با خانه معادل آن در ماتریس دیگر جمع و یا تفریق میکنیم.

تست برنامه

کد زیر کد تست برنامه ما است.

    public static void Main (string[] args)
        {
            double[,] a = { { 1, 2, 3 }, { 4, 5, 6 }, { 9, 1, 3 } };
            double[,] b = { { 5, 3, 3 }, { 1, 7, 6 }, { 8, 5, 4 } };

            double[,] sub = subtract(a, b);
            double[,] addd = add(a, b);
            Console.WriteLine("add");
            for (int i = 0; i < addd.GetLength(0); i++) {
                for (int j = 0; j < addd.GetLength (0); j++) {
                    Console.Write("[{0}]  ", addd[i,j]);
                }
                Console.WriteLine ();

            }

            Console.WriteLine("Subtract");

            for (int i = 0; i < sub.GetLength(0); i++) {
                for (int j = 0; j < sub.GetLength (0); j++) {
                    Console.Write("[{0}]  ", sub[i,j]);
                }
                Console.WriteLine ();

            }
            Console.ReadKey ();
        }

ما در کد بالا دو ماتریس را به نام a و  b تعریف کردیم و با هم جمع و تفریق کردیم.سپس نتیجه را نمایش دادیم.

خروجی برنامه جمع و تفریق ماتریس در سی شارپ

add
[6.0, 5.0, 6.0]
[5.0, 12.0, 12.0]
[17.0, 6.0, 7.0]
subtract
[-4.0, -1.0, 0.0]
[3.0, -2.0, 0.0]
[1.0, -4.0, -1.0]

نوشته های مشابه

3 دیدگاه در “جمع و تفریق ماتریس در سی شارپ (Matrix)

  1. دانیال گفت:

    برای تستش توی خلقه چرا شروع متغییر های i و j رو خالی گذاشتین؟!!

    1. سعید غریبی گفت:

      سلام. متغیر i و j مقدار دهی شده اند اما در کد بالا درست کپی نشده است. در قسمت دانلود سورس کد، کد کامل آورده شده.

  2. محمد گفت:

    سلام. دوتا ارائه دوبعدی بگیرید و جمع و تفریق و ترانهاده. ان را انجام بدهید

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *