百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术资源 > 正文

用Python做行列式和矩阵应用题(python矩阵行数)

off999 2024-10-14 12:13 34 浏览 0 评论

n阶行列式的定义,挺复杂;涉及的概念有代数余子式,逆序数等等,不少细节。其实它就是把n元一次方程组的系数进行加减乘的某种组合。

当有了数学工具后,这些细节可以统统forget。只要关心应用就行 。

传统上的数学工具一般是指Matlab或者Methematica。有了Python的各种数学库,比如numpy,我们也可以把Python用做数学工具。

回到行列式,行列式最常见的一个应用就是用来判断线性方程组有没有解,称为克莱姆法则。

克莱姆法则:

n元一次方程组的系数行列式如果不等于0,则方程组有唯一解


我们举一个 5元1次方程组的应用题

任给5个数做为数列的前5项,是否存在满足条件的通项公式

u_n = a0 + a1*n + a2*n^2 + a3*n^3 + a4*n^4

解题思路:

把n= 1, 2, 3, 4, 5 分别带入公式,会 得到一个5元一次方程组:

a0 + a1 + a2 + a3 + a4 = u1
a0 + 2a1 + 4a2 + 8a3 + 16a4 = u2
a0 + 3a1 + 9a2 + 27a3 + 81a4 = u3
a0 + 4a1 + 16a2 + 64a3 + 256a4 = u4
a0 + 5a1 + 25a2 + 125a3 + 625a4 = u5

把方程组抽象成矩阵的形式:

AX = B

A就是系数矩阵

1 1 1 1 1
1 2 4 8 16
1 3 9 27 81
1 4 16 64 256
1 5 25 125 625

X 就是我们要求的多项式方程的系数构成的5行1列的矩阵

a0
a1
a2
a3
a4

B就是数列的前5项组成的 5行1列的矩阵

u1
u2
u3
u4
u5

假如 u1~u5 是 1, 2, 3, 4, 2013,求多项式的系数a0~a4


线性代数解题思路

  • 首先计算A的行列式是否不等于0,用numpy的函数linalg.det()来计算;
  • 如果det不等于0,则方程有唯一解,即系数矩阵A可逆;
  • 然后用numpy的函数linalg.inv()来计算逆矩阵;
  • 所以有:X = (A的逆矩阵)*B


Python程序


import numpy as np
import matplotlib.pyplot as plt
# A是系数矩阵
A = np.array([
[1, 1, 1, 1, 1],
[1, 2, 4, 8, 16],
[1, 3, 9, 27, 81],
[1, 4, 16, 64, 256],
[1, 5, 25, 125, 625]
])
# B是数列前5项组成的列矩阵
B = np.array([
1,
2,
3,
4,
2013
])
# X 是通项公式的系数组成的列矩阵 (a0,a1,a2,a3,a4)
# AX = B
# 首选计算A的行列式是否不等于0,用numpy的函数linalg.det()来计算
# 如果det不等于0,则方程有唯一解,即系数矩阵A可逆
# 然后用numpy的函数linalg.inv()来计算逆矩阵
# 所以有:X = (A的逆矩阵)*B
print("A:")
print(A)
#计算A的行列式det
print("A的行列式的 值:")
# 287.9999999999998
print(np.linalg.det(A))
#A的逆矩阵
A_inv = np.linalg.inv(A)
print("A的逆矩阵:")
print(A_inv)
#dot是矩阵乘法
X = np.dot(A_inv, B)
print("答案是:X=A的逆矩阵乘以B")
print(X)
#[ 2008. -4182.33333333 2928.33333333 -836.66666667 83.66666667]
#-------------------------------------------------------------------
# 用matplotlib绘制函数图
# 绘制原始数据的散点图
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 2, 3, 4, 2013])
plt.scatter(x,y)
#定义函数
# 定义1元4次函数
def f(x):
a0 = 2008
a1 = -4182.33333333
a2 = 2928.33333333
a3 = -836.66666667
a4 = 83.66666667
return a0 + a1 * x + a2 * (x**2) + a3 * (x**3) + a4 * (x**4)
# 函数 的 new_x 的取点
x = np.linspace(0, 6, 1000)
# 绘制函数图
# 绘制拟合出来的一元一次线性方程的图像
plt.plot(x, f(x), color = "blue")
plt.xlabel('x')
plt.ylabel('y')
plt.title('Display func: f(x) = ax^4 + bx^3 + cx^2 + dx + e')
plt.grid() # 显示网格
plt.show() # 显示图像

程序结果:


这个题,还有更简单的Python解法,就是用之前文章里提到的多项式拟合

多项式拟合


Python程序

import matplotlib.pyplot as plt
import numpy as np

#绘制原始数据的散点图
x = np.array([1, 2, 3, 4, 5])
y = np.array([1, 2, 3, 4, 2013])
plt.scatter(x,y)
#直接拟合
# 4次方程 的 多项式回归系数
coefs = np.polyfit(x,y,4)
# 多项式函数
poly = np.poly1d(coefs)
#
print("多项式 coefs:")
print(coefs)
# [ 83.66666667 -836.66666667 2928.33333333 -4182.33333333 2008. ]
# 创建数据点
# new_x
x = np.linspace(0, 6, 1000)
#y = f(x) # 对每个点计算y值

# 绘制拟合出来的一元一次线性方程的图像
plt.plot(x, poly(x), color = "blue")
plt.xlabel('x')
plt.ylabel('y')
plt.title('Display func: f(x) = ax^4 + bx^3 + cx^2 + dx + e')
plt.grid() # 显示网格
plt.show() # 显示图像

程序结果还是:

相关推荐

可以和虚拟人物聊天的软件(可以和虚拟人物聊天的软件,用QQ直接登陆)

在火星App中与多个虚拟人物对话,其实是一个相当有趣且简单的体验。首先,你需要确保已经下载并安装了火星App,并打开它。接着,在App的界面中,你可以找到虚拟人物的选项。点击进去后,你会看到多个虚拟人...

三年片在线观看免费大全电影

第一位:极限影音这是中国第一家免费电影网站。虽然域名有点难记,但它在很多免费电影网站上都有很好的服务。这是个好名声。你可以在这里得到最快和最新的免费电影。第二位:007免费在线电影这个网站是一个很好的...

旧版qq(旧版qq豌豆荚)

手机QQ软件好多更新都不好用,可能是刚开始不稳定。建议用回旧版本先。你可以打开QQ主页,然后按软件QQ下载,里面有个链接是旧版本下载的,点开下载你以前的版本就可以了    一、检查qq版本是否过于陈旧...

湖南卫视直播在线观看高清电视台

1.解锁手机,找到桌面上的央视频APP,打开。2.进入主页面后,点击页面底部的“电视”选项。3.进入电视页面后,默认显示的是CCTV的频道,上方切换到“卫视”频道。4.在打开的卫视图标中我们就...

rar解压软件官网(rar解压器官方免费下载)
rar解压软件官网(rar解压器官方免费下载)

winrar是解压软件。你没有安装winrar,所以打不开用winrar加压的软件。在网上下载个安装后就能用了。去安装解压软件啊,网上到处都有,直接在网上搜索就可以,软件下好后安装,将其设置在右键中,以后右键单击就可以解压相应winrar文...

2026-01-23 09:43 off999

音频编辑转换器(音频编辑转换器怎么用)

高转低音频转换器接法是指将一种信号转换成另一种信号的装置。信号是信息存在的形式或载体。在自动化仪表设备和自动控制系统中,常将一种信号转换成另一种与标准量或参考量比较后的信号,以便将两类仪表联接起来,因...

安卓游戏中心下载安装(安卓游戏中心app)

格来云游戏、Nibiru游戏城、快游戏、蟋蟀游戏大厅、石头游戏。以上app资源丰富,且支持外设连接,更新及时。1、格来云游戏:格来云游戏是动视云科技开发的APP,格来云不依赖玩家的电脑性能和储存,连...

正当防卫3手游下载(正当防卫三正版下载)

通过QQ浏览器,或者应用商店下载即可。华为手机上下载《正当防卫4》(JustCause4)的方法如下:方法一:使用华为应用市场(华为AppGallery)1.打开华为应用市场。2.在搜索框中输...

可以免费下载所有歌曲的网站

一、http://51Ape.Com一个免费提供无损音乐下载的网站,专注于Ape音乐、Flac音乐以及Wav等各类高品质无损音乐的免费下载,是目前国内比较好的免费音乐下载网站。二、91听歌网提供无损音...

龙珠斗士z手游版下载(龙珠斗士z手游版下载ios)

召唤神龙,实现愿望。龙珠z斗士中只要集齐七颗龙珠就可以召唤出神龙,来实现自己的愿望。在漫画动画各类手游中都是这样首先进入游戏主界面,点击“斗士”按钮进入选角界面,在选角界面中选择你要使用的角色并确认...

可以手动插人物的游戏手游(可以手动插人物的游戏手游app)

在手游对局中,左上角有一个开关,可切换手动开火和自动开火,切换到自动开火后,准星描到敌方人物即会自动开火。当然,并不是所有模式中都有自动开火开关,是特定的一些模式有该开关,比如挑战模式、刀战模式等。另...

手机铃声最好听的歌(手机铃声最好听的歌曲有哪些)

Everythingisnotwhatitseems超喜欢这首的,绝对不会撞见跟你铃声一样的Push艾薇儿的新歌,很好听,也很适合做铃声Foreverandalways钢琴版副歌部分很好听布兰妮的3也...

千千静听官网(十大免费音乐网站)

千千静听起源于2002年,千千静听是一款完全免费的音乐播放软件,集播放、音效、转换、歌词等众多功能于一身。其小巧精致、操作简捷、功能强大的特点,深得用户喜爱,被网友评为中国十大优秀软件之一,并且成为目...

成品ppt网站国外(免费生成ppt的网站)

免费ppt成品怎么下载?不确定您要下载哪类的ppt。如果想要下载初中语文课件的话,免费成品ppt可以通过无忧无虑中学语文网下载,上面按照年级,教材版本分门别类的课件资源,教案参考,还有相应的练习题,甚...

免费的连连看游戏大全(连连看游戏app推荐)

在4399小游戏里,点击儿童小游戏,里面就有不及时的连连看。《连连看》只要将相同的两张牌用三根以内的直线连在一起消除即可。连连看,又称对对卡,是指图案配对的一种益智游戏,有多种形式,如卡片游戏、电子...

取消回复欢迎 发表评论: