第1题
1、题目
生成一个5*5的矩阵,其元素是区间[1,10]中的随机整数。
2、代码
import numpy as np
a = np.random.randint(1,10,25).reshape(5,5)
print(a)
3、结果
[[5 3 7 6 4] [3 7 4 3 7] [1 7 4 4 3] [1 8 5 6 8] [8 4 4 2 9]]
第2题
1、题目
生成一个4*4的矩阵,其元素符合正态分布。
2、代码
import numpy as np
b = np.random.randn(16).reshape(4,4)
print(b)
3、结果
[[-0.33990789 -0.53183933 0.12420977 -0.43573047] [-1.47714092 -0.22094742 -0.11919983 -0.19049501] [-0.54613945 1.30368604 -0.483711 -0.36169592] [-1.50361573 -0.06139576 -1.86228913 1.09515015]]
第3题
1、题目
将(1)中生成的矩阵中第2列元素全部赋值为-1;第3行元素全部赋值为1000;
2、代码
a[:,1]=-1
a[2,:]=1000 #或者a[2]=1000
print(a)
3、结果
[[ 5 -1 7 6 4] [ 3 -1 4 3 7] [1000 1000 1000 1000 1000] [ 1 -1 5 6 8] [ 8 -1 4 2 9]]
第4题
1、题目
生成一个4*4的矩阵A,其元素为区间[-10,10]中的随机整数。
再随机生成一个由4个元素构成的列向量b,其元素为区间[-5,5]中的随机整数。
对于线性方程组Ax=b,求矩阵A对应的行列式值,根据行列式值是否为0判断其是否有解,如果有解,求其解。
2、代码
import scipy.linalg as sp
A=np.random.randint(-10,10,16).reshape(4,4)
b=np.random.randint(-5,5,4).reshape(-1,1)
print('方程形如Ax=b,其中A=')
print(A)
print('其中b=',b)
print()
dA=np.linalg.det(A)
print("A对应的行列式值为:",dA)
if(abs(dA)>1e-6):
sv=sp.solve(A,b)
print("对应的线性方程组解为:",sv)
else:
print("解不存在。")
3、结果
方程形如Ax=b,其中A= [[ 3 -1 7 -4] [ 9 0 4 -3] [ 2 -8 6 -4] [ 7 -9 -4 0]] 其中b= [[-5] [-1] [ 4] [ 1]] A对应的行列式值为: 190.00000000000017 对应的线性方程组解为: [[ 3.6 ] [-3.92631579] [14.88421053] [30.97894737]]