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

معکوس ماتریس در پایتون

0 امتیاز
سلام.

فرض کنید یک ماتریس 2*2 با مقدار [[1,2]],[3,4]] داریم چطور تو پایتون این ماتریس را معکوس کنیم؟
سوال شده بهمن 11, 1401  بوسیله ی Lori3 (امتیاز 857)   11 36 105

1 پاسخ

+1 امتیاز
 
بهترین پاسخ

در پایتون، می‌توانید معکوس ماتریس را با استفاده از کتابخانه numpy محاسبه کنید. در اینجا یک مثال است:

import numpy as np

matrix = np.array([[1, 2], [3, 4]])
inv_matrix = np.linalg.inv(matrix)
print(inv_matrix)

خروجی معکوس ماتریس خواهد بود:

[[-2.   1. ]
 [ 1.5 -0.5]]

 

 
در پایتون نیز می توانید با استفاده از روش حذف گاوسی، معکوس ماتریس را بدون استفاده از numpy محاسبه کنید. در اینجا مثالی از نحوه نوشتن یک تابع برای یافتن معکوس یک ماتریس آورده شده است:
 
def inverse_matrix(matrix):
    n = len(matrix)
    identity_matrix = [[0.0] * n for _ in range(n)]
    for i in range(n):
        identity_matrix[i][i] = 1.0

    augmented_matrix = [row[:] + identity_matrix[i] for i, row in enumerate(matrix)]
    for i in range(n):
        pivot = augmented_matrix[i][i]
        for j in range(n * 2):
            augmented_matrix[i][j] /= pivot
        for k in range(n):
            if k != i:
                factor = augmented_matrix[k][i]
                for j in range(n * 2):
                    augmented_matrix[k][j] -= factor * augmented_matrix[i][j]

    return [row[n:] for row in augmented_matrix]

matrix = [[1, 2], [3, 4]]
inv_matrix = inverse_matrix(matrix)
print(inv_matrix)

 

خروجی معکوس ماتریس خواهد بود:

[[-2.0, 1.0], [1.5, -0.5]]

 

تابع inverse_matrix یک پیاده سازی سفارشی در پایتون برای محاسبه معکوس یک ماتریس مربع با استفاده از روش حذف گاوسی است. با ایجاد یک ماتریس یکه به همان اندازه ماتریس ورودی شروع می شود. سپس ماتریس ورودی و ماتریس یکه با هم ترکیب می شوند تا یک ماتریس تقویت شده را تشکیل دهند.
 
سپس این تابع عملیات ردیف را روی ماتریس تقویت شده انجام می دهد تا قسمت چپ ماتریس (ماتریس ورودی اصلی) را به یک ماتریس یکه و قسمت سمت راست ماتریس را به معکوس آن تبدیل کند. عنصر محوری (عنصر مورب) ابتدا به خودی خود تقسیم می شود تا 1 به دست آید و سپس عناصر موجود در همان ستون ردیف های دیگر با ضریب محاسبه شده از ردیف محوری کم می شوند تا عناصر همان ستون این سطرها 0 شود.
 
در نهایت، تابع قسمت سمت راست ماتریس تقویت شده را برمی گرداند که معکوس ماتریس اصلی است.
پاسخ داده شده بهمن 11, 1401 بوسیله ی عباس مولایی (امتیاز 2,754)   1 5 13
انتخاب شد فروردین 24, 1402 بوسیله ی Lori3
...