使用Python创建线性方程组求解器的数组

时间:2019-05-08 13:37:06

标签: python arrays linear

我是这个网站的新手,也是Python的新手。 我记得在学校的时候,我用BASIC编写了一个程序(当时是80年代),用于使用矩阵求解线性方程组。

我想在Python中做同样的事情,我发现可以用这样的代码来做到这一点:

import numpy as np

a = np.array([[8, 3, -2], [-4, 7, 5], [3, 4, -12]])
b = np.array([9, 15, 35])

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

print (x)

但是我希望程序要求输入系数,这样我就不必为每个方程式都对其进行编辑。我敢肯定这是有可能的,但是我已经搜索了几天,却一无所获。我想知道您能否给我一些有关如何实现的提示。

2 个答案:

答案 0 :(得分:0)

我已经找到方法。这是代码:

import numpy as np

print (" Résolution de systèmes de n équations à n inconnues :")

# Saisie du nombre d’inconnues
print ("\n")
m = int(input(" Nombre d’inconnues ? "))
n = m

mat_a = []
mat_b = []

# Saisie des coefficients - matrice A
print ("\n")
print (" Saisie des coefficients – Matrice [A] :")
for i in range (0,n):
    mat_a.append([])
for i in range (0,m):
    for j in range (0,n):
        mat_a[i].append(j)
        mat_a[i][j]=0
for i in range (0,m):
    for j in range (0,n):
        print (" Coefficient [", i+1,", ",j+1, "] ?", end = " ")
        mat_a[i][j] = eval(input())

# Saisie des coefficients - matrice B
m = 1
print ("\n")
print (" Saisie des coefficients – Matrice [B] :")
for i in range (0,n):
    mat_b.append([])
for i in range (0,n):
    for j in range (0,m):
        mat_b[i].append(j)
        mat_b[i][j]=0
for i in range (0,n):
    for j in range (0,m):
        print (" Coefficient [", i+1,", ",j+1, "] ?", end = " ")
        mat_b[i][j] = eval(input())

# Création des matrices
a = np.array ([mat_a])
b = np.array ([mat_b])

# Résolution du système d’équations       
x = np.linalg.solve(a, b)

# Affichage des solutions
print ("\n")
print (" L’équation admet", n, "solutions. S = {", x, "}.")

# Sortie du programme
print ("\n")
input (" Appuyer sur <Entrée> pour quitter…")

YouTube上的一段视频帮助了我:How to make a 2D list or matrix in Python and take a input from user

进行了一些更改之后,我设法为我的小程序编写了不错的代码。

如果要尝试使用以下系统,例如:

4x + 2y = -1
3x - y = 2

两个解决方案是 S = {0,3; -1,1}

:)

W。

答案 1 :(得分:0)

做了一些修改:

onclick