我正在尝试解决以下问题:
考虑n个联立方程Ax = b,其中
A_(ij)=(i + j)^ 2且b_i =从j = 0到n的和(A_ij),其中i = 0,1,...,n,j = 0,1,... ...,N。
编写一个程序,解决任何给定n的这些方程式。
所以我应该创建矩阵A和向量b,然后使用它们来解决Ax = b。我可以创建A,并使用以下代码完成:
A = numpy.zeros(n*n).reshape(n,n)
def matrix(n):
for i in range(0,n):
for j in range(0,n):
A[i,j] = (i+j)**2
matrix(n)
print A
对于任何选择的n,这给了我一个漂亮的nxn矩阵。但是,我现在正在努力创建矢量b。到目前为止,这是我的代码:
b = numpy.zeros(n*1).reshape(n,1)
def sumRow(n):
while i = 0:
for j in range(0,n):
b[i] = math.fsum(A[i,j])
sumRow(n)
print b
首先,我不知道如何从i = 0到i = n。
运行此代码时我也遇到了错误,我正在努力解决这个问题。
我的思考过程如下:
有人可以帮我修改第二段代码,以获得给定n的矩阵b。
答案 0 :(得分:1)
以下是使用列表理解
获取b
的方法
b = [sum(x) for x in A]
答案 1 :(得分:1)
这可以解决填充向量b
-
b = numpy.zeros(n*1).reshape(n,1)
def sumRow(n):
for i in range(0,n):
b[i] = math.fsum(A[i]) //calculates the sum of all elements of the given row
sumRow(n)
print b