我在大學,我需要完成一項特定任務,任務是:
創建一個表示線性代數方程組(方程組)的類,查找根并檢查是否存在某些數字集作為系統的解。基于此類,創建分別代表兩個和三個線性方程組的后代類,具有兩個和三個未知數。通過隨機生成資料,求出兩類線性代數方程組的解。
這個想法是我必須使用建構式和這樣的求解方法來求解方程組。之后我仍然需要創建一個后代類,但首先我需要修復主要代碼。
import numpy as np
class Linear:
# linear equation ax by c = 0
def __init__(self, a, c, x):
self.a = np.array([[8, 3, -2], [-4, 7, 5], [3, 4, -12]]) # coefficient of X's 8X 3Y - 2z = 9
self.c = np.array([9, 15, 35]) # free term of Equation -4X 7Y 5Z = 15
self.x = np.linalg.solve(a, c) # 3X 4Y - 12Z = 35
def solve(self):
if self.x
r1 = Linear(8, 3, -2)
print(r1.solve())
我在網上發現您可以輕松地使用 numpy 來跳過所有大步驟,但是我在解決和將代碼放在一起時遇到了麻煩
uj5u.com熱心網友回復:
您的班級不應包含任何樣本編號。您應該只接受aandc作為引數,并存盤self.a = aand self.c = c。您不傳入x,因為這是該類的輸出。在你打電話之前你不會做解決方案solve()。
是這樣的:
import numpy as np
class Linear:
# linear equation ax by c = 0
def __init__(self, a, c):
self.a = a
self.c = c
def solve(self):
return np.linalg.solve(self.a, self.c)
r1 = Linear(
[[8, 3, -2], [-4, 7, 5], [3, 4, -12]],
[9, 15, 35]
)
print(r1.solve())
輸出:
[-0.58226371 3.22870478 -1.98599767]
uj5u.com熱心網友回復:
其他人回答了主要來源,但我對其進行了調整以適應我的大學分配的主要任務。所以我會將最終結果發布到我的主要任務中。
import numpy as np
class linear:
# linear equation bx c = 0
def __init__(self, a, c):
self.a = a
self.c = c
def solve(self):
return np.linalg.solve(self.a, self.c)
class two_unknown_lin(linear):
# linear equation with 2 unknown ax by c = 0
def __init__(self, a, c):
super().__init__(a, c)
def solve(self):
return np.linalg.solve(self.a, self.c)
class three_unknown(two_unknown_lin):
# linear equation with 2 unknown ax by cz d = 0
def __init__(self, a, c):
super().__init__(a, c)
def solve(self):
return np.linalg.solve(self.a, self.c)
r2 = two_unknown_lin(
[[1, 3], [2, 8]],
[6, -12]
)
print("2 variable unknown roots are :", r2.solve())
r1 = three_unknown(
[[8, 3, -2], [-4, 7, 5], [3, 4, -12]],
[9, 15, 35]
)
print("3 variable unknown roots are :", r1.solve())
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/533779.html
標籤:Python麻木的
