东南大学工程矩阵P110例4验证(python)

东南大学工程矩阵P110例4验证(python)
原题如下:
在这里插入图片描述

代码如下:

import numpy as np

A=np.mat([[0,0,1,-1,0],
          [4,0,3,-2,-1],
          [2,1,1,-1,-1],
          [3,1,3,-3,-1],
          [8,2,7,-5,-3]])
I=np.diag([1,1,1,1,1])
B=A+I
print("B=\n",B)
B2=B*B
print("B^2=\n",B2)
"""
#下面的P是教材给出的P,对应的五列是五个列向量x1~x5:
P=np.mat([[0,0,0,-1,0],
          [1,1,0,-2,0],
          [1,0,1,-1,0],
          [1,0,1,-2,1],
          [2,0,1,-5,0]])
"""
"""
注意,下面的x5、x2需要自己求出填入,这里是随机选的两个简单的样例
x2、x5需满足条件为:
B^2 * x2 = 0
B^2 * x5 !=0
且x2和x5线性无关
"""
x5=np.mat([0,0,0,1,0]).T
x4=B*x5
x3=B*x4
x2=np.mat([0,0,0,0,1]).T
x1=B*x2

P=np.hstack([x1,x2,x3,x4,x5])
print("P=\n",P)
#print(np.matmul(np.linalg.inv(P),P))

P1=np.linalg.inv(P)
print("P^-1=\n",P1)
J=P1*A*P
print("J=\n",J)

运行情况如下:

B=
 [[ 1  0  1 -1  0]
 [ 4  1  3 -2 -1]
 [ 2  1  2 -1 -1]
 [ 3  1  3 -2 -1]
 [ 8  2  7 -5 -2]]
B^2=
 [[ 0  0  0  0  0]
 [ 0  0  0  0  0]
 [-1  0 -1  1  0]
 [-1  0 -1  1  0]
 [-1  0 -1  1  0]]
P=
 [[ 0  0  0 -1  0]
 [-1  0  0 -2  0]
 [-1  0  1 -1  0]
 [-1  0  1 -2  1]
 [-2  1  1 -5  0]]
P^-1=
 [[ 2. -1. -0. -0. -0.]
 [-2. -1. -1. -0.  1.]
 [ 1. -1.  1.  0.  0.]
 [-1. -0. -0. -0. -0.]
 [-1. -0. -1.  1. -0.]]
J=
 [[-1.  1.  0.  0.  0.]
 [ 0. -1.  0.  0.  0.]
 [ 0.  0. -1.  1.  0.]
 [ 0.  0.  0. -1.  1.]
 [ 0.  0.  0.  0. -1.]]

Process finished with exit code 0

该帖给出了教材上的习题的另一种结果输出,可以用此代码验证其他的结果,也可以用部分代码辅助求解其他题目。祝学习顺利!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值