首页 > 解决方案 > 如何根据 Python 中数组的长度创建变量?

问题描述

所以我正在尝试使用克莱默规则解决线性方程组,我面临的主要问题是我必须每次都根据矩阵的维度创建Ax,Ay,...一个变量。Python中有什么方法可以让程序根据for为矩阵维度启动的循环自动创建变量?

标签: pythonnumpymatrixlinear-algebra

解决方案


我在这里找到了一个 python 解决方案(以及几乎任何其他语言):https ://rosettacode.org/wiki/Cramer%27s_rule

from numpy import linalg
 
A=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
B=[-3,-32,-47,49]
C=[[2,-1,5,1],[3,2,2,-6],[1,3,3,-1],[5,-2,-3,3]]
X=[]
for i in range(0,len(B)):
    for j in range(0,len(B)):
        C[j][i]=B[j]
        if i>0:
            C[j][i-1]=A[j][i-1]
    X.append(round(linalg.det(C)/linalg.det(A),1))
 
print('w=%s'%X[0],'x=%s'%X[1],'y=%s'%X[2],'z=%s'%X[3])

推荐阅读