Python----最小二乘

最小二乘

# 建立一个包含数据集的数据矩阵:数据矩阵化
import numpy as np
#引入 numpy 将其重命名为 np 使用
import numpy.matlib
import matplotlib.pyplot as plt
#引入matplotlib 将其重命名为 plt 使用
data=np.array(([19,25,31,38,44],[19.0,32.3,49.0,73.3,97.8]))
#=np.array(([1,2,3,4,5],[1,4,9,16,25]))
# 构造二维数组
x1=data[0]
# 提出数组的行
y1=data[1]
# 提出数组的列
print("x1的值:",end=" ")
print(x1)
print("y1的值:",end=" ")
print(y1)
plt.plot(x1,y1,'o')
#画图,判断应是二次函数还是一次函数
min1=np.min(x1)
# 求x1中最小值
max1=np.max(x1)
# 求x1中最大值
min2=np.min(y1)
# 求y1中最小值
max2=np.max(y1)
# 求y1中最大值
plt.xlim(min1-1,max1+1)
#横坐标的范围
plt.ylim(min2-1,max2+1)
#纵坐标的范围
plt.show()
#由散点图可知应拟合二次函数
col=data.shape[1]
#求数组的列
row=data.shape[0]
#求数组的行
print("data的行数:",end=" ")
print(data.shape[0])
print("data的列数:",end=" ")
print(data.shape[1])
X1=x1**2
#x1中的数值变为原来的2倍
X1=X1.reshape(5,1)
# 将X1变为5行1列
X2=x1.reshape(5,1)
# 将x1变为5行1列
X3=np.ones((col,1))
X=np.hstack((X1,X2))
X=np.hstack((X,X3))
#将X1,X2,X3合成一个数组
print("X的值:")
print(X)
x=X.T
print("X的转置的值:")
print(x)
X=np.mat(X)
#将数组X转化为矩阵
a1=X.I
#求数组的逆矩阵
print("X的逆矩阵的值:")
print(a1,)
solve=np.dot(a1,y1)
#a1,y1的乘积
solve=solve.reshape(3,1)
print("a,b,c的值:")
print(solve)
y2=np.dot(X,solve)
print("在x对应的方程中的值y2:")
print(y2)
print("y2与y1之间的差值:")
print(y2-y1.reshape(5,1))
plt.plot(x1,y1,'o')
plt.plot(x1,y2)
plt.xlim(min1-1,max1+1)
#横坐标的范围
plt.ylim(min2-1,max2+1)
#纵坐标的范围
plt.show()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值