علوم داده

حل معادلات خطی با NumPy

NumPy ابزارهای قدرتمندی برای حل معادلات خطی (معادلاتی که به صورت ax + by = c بیان می شوند) به صورت یک یا چند متغیر ارائه می دهد.

در اینجا چند روش برای حل معادلات خطی با NumPy آورده شده است:

1. استفاده از معکوس ماتریس:

فرض کنید سیستم معادلات خطی شما به صورت زیر نشان داده شده باشد:

A * x = b

در اینجا، A ماتریس ضرایب، x بردار متغیرهای ناشناخته و b بردار ثابت است.

می توانید با استفاده از معکوس ماتریس A، x را به صورت زیر حل کنید:

Python
import numpy as np

# ماتریس ضرایب
A = np.array([
    [2, 3],
    [4, 5]
])

# بردار ثابت
b = np.array([7, 13])

# محاسبه معکوس ماتریس ضرایب
A_inv = np.linalg.inv(A)

# حل سیستم معادلات خطی
x = np.dot(A_inv, b)

print("حل سیستم معادلات خطی:")
print(x)

2. استفاده از تابع np.linalg.solve():

NumPy تابع np.linalg.solve() را برای حل مستقیم سیستم های معادلات خطی ارائه می دهد:

Python
import numpy as np

# ماتریس ضرایب
A = np.array([
    [2, 3],
    [4, 5]
])

# بردار ثابت
b = np.array([7, 13])

# حل سیستم معادلات خطی با استفاده از np.linalg.solve()
x = np.linalg.solve(A, b)

print("حل سیستم معادلات خطی:")
print(x)

3. استفاده از روش های عددی:

برای سیستم های معادلات خطی پیچیده تر یا ماتریس های بزرگ، می توانید از روش های عددی مانند روش حذف گوسی یا روش تکرار Jacobi برای حل معادلات استفاده کنید. کتابخانه های شخص ثالث مانند scipy.linalg توابعی را برای پیاده سازی این روش ها ارائه می دهند.

نکات:

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

مثال:

فرض کنید می خواهید سیستم معادلات خطی زیر را حل کنید:

2x + 3y = 7
4x + 5y = 13

می توانید از هر یک از روش های ذکر شده در بالا برای حل این سیستم استفاده کنید. راه حل های زیر هر دو نتیجه یکسانی را ارائه می دهند:

با استفاده از معکوس ماتریس:

Python
import numpy as np

A = np.array([
    [2, 3],
    [4, 5]
])

b = np.array([7, 13])

A_inv = np.linalg.inv(A)
x = np.dot(A_inv, b)

print("حل سیستم معادلات خطی:")
print(x)

با استفاده از np.linalg.solve():

Python
import numpy as np

A = np.array([
    [2, 3],
    [4, 5]
])

b = np.array([7, 13])

x = np.linalg.solve(A, b)

print("حل سیستم معادلات خطی:")
print(x)

در هر دو روش، x = [1.5, 1.0]، که جواب این سیستم معادلات خطی است.

 

نمایش بیشتر

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

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

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

دکمه بازگشت به بالا