python实验报告8线性代数操作和matplotlib

题目①线性代数操作

一、源程序调试过程
1、导入库

import numpy as np
2、生成数组
a = np.array([[1.,2.],[3.,4.]])
y = np.array([[5.],[7.]])

3、数组a的转置

a_T = a.T

4、创建形状为(2,2)的对角矩阵b

对角矩阵是一种特殊的方阵,其除了对角线上的元素为非零数外,其他元素均为零。

np.diag() 是 NumPy 中用于生成对角矩阵的函数:numpy.diag(v, k=0)

其中,v 是一个数组或列表,表示对角线上的元素;k 是一个整数,表示对角线的偏移量。
(1)生成一维数组的对角矩阵

v 是一个一维数组,则 np.diag()会返回一个以 v 中的元素为对角线上的元素,其他位置为零的对角矩阵。
v = np.array([1, 2, 3])
b1 = np.diag(v)

(2)生成二维数组的对角矩阵

v 是一个二维数组,则 np.diag() 会返回一个二维数组的对角矩阵,即以 v 中的每个一维数组的元素为对角线上的元素,其他位置为零的对角矩阵。
v = np.array([[1, 2], [3, 4]])
b2 = np.diag(v)

(3)生成偏移量不为零的对角矩阵

k 的值不为零,则对角线上的元素将会出现在矩阵的第 k 条对角线上。
如果 k 大于零,则对角线在矩阵的主对角线的上方;
如果 k 小于零,则对角线在矩阵的主对角线的下方。
v = [1, 2, 3]
b3 = np.diag(v, k=1)
b4 = np.diag(v, k=-1)

(4)输出形状为(2,2)的对角矩阵b

v = np.array([1.,2.])
b5 = np.diag(v)

5、对角矩阵的迹

对角矩阵的迹(trace)是指对角线上的元素之和。

对角矩阵的迹在数学和工程领域都有广泛的应用,例如用于计算特征值、判断矩阵是否正定等等。

可以使用 np.trace() 函数来计算一个矩阵的迹。如果传入的是一个二维数组,则 np.trace() 会返回该数组的迹;如果传入的是一个一维数组,则会返回该数组转化为二维数组后的迹。

计算对角矩阵b的迹:

tr = np.trace(b)

6、求解数组a和数组y的解

a = np.array([[1.,2.],[3.,4.]])
y = np.array([[5.],[7.]])

给定线性方程组 a x = y,我们可以使用 NumPy 中的 np.linalg.solve() 函数来求解其解 x

在这里插入图片描述

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

二、实验实习结果分析
1、输出创建的数组a

[[1. 2.]
[3. 4.]]
2、输出a的转置a_T

[[1. 3.]
[2. 4.]]

3、b1:
[[1 0 0]
[0 2 0]
[0 0 3]]

4、b2:
[1 4]

5、b3:
[[0 1 0 0]
[0 0 2 0]
[0 0 0 3]
[0 0 0 0]]

6、b4:
[[0 0 0 0]
[1 0 0 0]
[0 2 0 0]
[0 0 3 0]]

7、b:
[[1. 0.]
[0. 1.]]

8、b_trace: 2.0

9、x:
[[-3.]
[ 4.]]

三、心得体会
1、学会了使用numpy库生成数组array

2、学会了矩阵的转置array.T

3、生成对角矩阵的函数:numpy.diag(v, k

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值