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

用Python矩阵运算拟合一元一次方程并用matplotlib画图

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

这是一个线性代数的例题

已知原始的数据是:

x

3.6

3.7

3.8

3.9

4.0

4.1

4.2

y

1.0

0.9

0.9

0.81

0.6

0.56

0.35

假如要把y和x拟合成一次函数,y = kx + b

请根据数据求解出待定系数k和b

我们把k和b带进函数:

3.6k + b = 1.0
3.7k+b = 0.9
... ...
4.2k + b = 0.35

可以构建一个x原始数据和1组成的7行2列矩阵A:

3.6 1
3.7 1
3.8 1
... 1
4.2 1

构建一个2行1列的矩阵X:

k
b

构建一个y原始数据组成的7行1列的矩阵C

1.0
0.9
0.9
...
0.35

则根据矩阵乘法,可以把上边由k和b组成的线性方程组写成:

AX = C

我们解出来X,就得到了拟合出来的方程的系数k和b

用最小二乘法:A转置*A*X = A转置*C


下面是Python程序


import numpy as np
# a1=x原始坐标数据 a2=1
A = np.array([
[3.6, 1.0],
[3.7, 1.0],
[3.8, 1.0],
[3.9, 1.0],
[4.0, 1.0],
[4.1, 1.0],
[4.2, 1.0]
])
# C是 y原始坐标数据
C = np.array([
1.0,
0.9,
0.9,
0.81,
0.6,
0.56,
0.35
])
print("C:")
print(C)
# X 是矩阵(k,b),是拟合的线性方程的系数, kx + b = y
# AX = C
# 最小二乘法求X:
# X = ((A的转置乘以A)的逆矩阵)乘以(A的转置)乘以C
print("A:")
print(A)
#A的转置
A_T = A.T
print("A的转置:")
print(A_T)
#dot是矩阵乘法
A_TdotA = np.dot(A_T,A)
print("A的转置乘以A:")
print(A_TdotA)
#linalg.inv是求逆矩阵
A_TdotA_inverse = np.linalg.inv(A_TdotA)
print("A的转置乘以A的逆矩阵:")
print(A_TdotA_inverse)
X_tmp = np.dot(A_TdotA_inverse, A_T)
#拟合出来的 X = (A的转置乘以A的逆矩阵)乘以(A的转置)乘以C
X = np.dot(X_tmp, C)
print("the answer is")
print(X)

运行程序后得到的X是:

[-1.04642857 4.8125 ]


用matplotlib呈现结果

我们把 y= -1.0462857x + 4.8125 画成直线,并把原始数据画成散点

这个Python程序如下:


import matplotlib.pyplot as plt
import numpy as np

# 定义一元一次函数
def f(x):
return x * -1.04642857 + 4.8125
#绘制原始数据的散点图
x1 = np.array([3.6, 3.7 ,3.8 ,3.9 ,4.0, 4.1, 4.2])
y1 = np.array([1.0, 0.9, 0.9, 0.81, 0.60, 0.56, 0.35])
plt.scatter(x1,y1)

# 创建数据点
#x = np.linspace(-1, 10, 1100) # 从-1到10之间生成1100个点
x = np.linspace(3.5, 4.5, 100)
y = f(x) # 对每个点计算y值

# 绘制拟合出来的一元一次线性方程的图像
plt.plot(x, y)
plt.xlabel('x')
plt.ylabel('y')
plt.title('Display func: f(x) = ax+b ')
plt.grid() # 显示网格
plt.show() # 显示图像

得到的图片是:

相关推荐

戴尔官网保修查询入口(戴尔售后保质期查询)

可以按照以下步骤查询戴尔笔记本电脑的保修期:1.打开戴尔官网:https://www.戴尔.com/zh-cn/售后服务/保修政策.html2.点击页面上方的“服务与支持”按钮,进入戴尔的服务支持...

手机号邮箱登录入口(手机号邮箱官网)

手机163邮箱登录入口如下:163邮箱官网入口:https://smart.mail.163.com/login.htm点击进入登录或者注册邮箱即可。手机浏览器访问进入官网http://www.123...

sd卡(sd卡无法读取怎么修复)

  SD卡是大卡,相机用的;普通的手机内存卡,是小卡,正规的名称是macrosd卡,也就是微型SD卡。可以通过卡套转为普通的SD卡的大小。  其实就是大小不同。但手机上的内存卡,人们经常也俗称为SD...

路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
  • 路由器连接图(网络路由器连接图)
windows7蓝牙功能在哪里打开

点击搜索框在windows7系统主界面点击开始菜单,点击打开搜索框。输入命令输入services.msc后回车,在列表中找到并右击BluetoothSupportS...点击属性选择进入属性菜单,...

2010激活密钥(microsoft2010激活密钥)
2010激活密钥(microsoft2010激活密钥)

步骤/方式1officeprofessionalplus2010:(office专业版)6QFdx-pYH2G-ppYFd-C7RJM-BBKQ8Bdd3G-xM7FB-Bd2HM-YK63V-VQFdKVYBBJ-TRJpB-QFQ...

2025-11-19 04:03 off999

联想官方刷新bios工具(联想电脑刷新bios)

刷新BIOS需要使用联想的官方网站或授权维修中心来进行操作。以下是一些基本步骤:1.访问联想的官方网站,找到BIOS更新程序并下载。在下载过程中,请确保选择与您计算机型号匹配的版本。2.将下载的B...

苹果ios14系统下载(苹果ios14.1下载)
苹果ios14系统下载(苹果ios14.1下载)

1方法一步骤/方式一打开Appstore。步骤/方式二在搜索栏点击搜索框。步骤/方式三搜索并点击需要下载的软件。步骤/方式四点击获取。步骤/方式五最后验证ID密码即可。1.在应用商店搜索你要下载的应用名称。2.点击下载按钮,如果要求登...

2025-11-19 03:03 off999

office2010怎么免费永久激活密钥

用这个试试,一个KMS激活工具可以激活2010到2019的Office自家的目前用的就是这个microsoft6477.moe/1716.html直接使用这个Microsoftoffice2010...

类似爱加速的国内ip(类似爱加速的app)
类似爱加速的国内ip(类似爱加速的app)

推荐“V8盒子”。这一款免费无广告的模拟器,不同于其它软件盒子,而是类似于X8沙箱,满足游戏多开,画中画,悬浮球操作,熄屏后台运行等多功能的沙箱盒子.支持一键root,一键安装xposed框架,能在安卓/苹果手机上运行多个安卓/ios虚拟系...

2025-11-19 02:03 off999

阿里旺旺手机客户端(阿里旺旺手机app)

手机淘宝的旺旺在打开商品后,会看到左下角有个旺旺的图标,点击就可以联系了。  阿里旺旺是将原先的淘宝旺旺与阿里巴巴贸易通整合在一起的一个新品牌。它是淘宝和阿里巴巴为商人量身定做的免费网上商务沟通软件,...

最纯净的pe装机工具(pe工具哪个纯净)

U盘装系统步骤:1.制作U盘启动盘。这里推荐大白菜U盘启动盘制作工具,在网上一搜便是。2.U盘启动盘做好了,我们还需要一个GHOST文件,可以从网上下载一个ghost版的XP/WIN7/WIN8系统,...

装一个erp系统多少钱(wms仓库管理软件)

现在主流有客户端ERP和云端ERP两种客户端通常一次买断,价格在万元左右,但是还有隐性费用,你需要支付服务器、数据管理员,此外如果系统需要更新维护,你还需要支付另外一笔不菲的费用。云端ERP:优势...

cad2014序列号和密钥永久(autocad2014序列号和密钥)

1在cad2014中修改标注样式后,需要将其保存2单击“样式管理器”按钮,在弹出的窗口中选择修改后的标注样式,然后单击“设置为当前”按钮,再单击“保存当前样式”按钮,将其保存为新的样式名称3为了...

qq修改密保手机号(qq修改密保手机号是什么意思)

QQ更改绑定的手机号码操作步骤如下:1、打开手机主界面,找到“QQ”软件点击打开。2、输入正确的QQ账户和密码登录到qq主界面。3、点击左上角的头像“图片”,进入到个人中心界面。4、进入到个人中心界面...

取消回复欢迎 发表评论: