python最小二乘法拟合三维曲线_python_numpy最小二乘法的曲线拟合

在了解了最小二乘法的基本原理之后python_numpy实用的最小二乘法理解,就可以用最小二乘法做曲线拟合了1.直线拟合 直线拟合已知图中拟合数据的坐标,对图中的拟合数据进行直线拟合。依旧使用最小二乘法求解Ax=b——————1无解下的最优解。已知点的个数为n,所求直线的方程为y1=ax1+b,A由方程右边的a,b的系数构成构成(nx2)的矩阵,每行为(x1,1),b由已知点的y1坐标构成矩...
摘要由CSDN通过智能技术生成

在了解了最小二乘法的基本原理之后python_numpy实用的最小二乘法理解,就可以用最小二乘法做曲线拟合了

1.直线拟合

直线拟合

已知图中拟合数据的坐标,对图中的拟合数据进行直线拟合。

依旧使用最小二乘法求解

Ax=b——————1

无解下的最优解。已知点的个数为n,所求直线的方程为y1=ax1+b,A由方程右边的a,b的系数构成构成(nx2)的矩阵,每行为(x1,1),b由已知点的y1坐标构成矩阵(nx1)。方程1中的x为要求的列向量[a,b]。

A.TAx’=A.Tb

x’=(A.TA)^(-1)A.TC

求得x‘后,画出拟合曲线的yy=Ax’

import numpy as np

import matplotlib.pyplot as plt

#x的个数决定了样本量

x = np.arange(-1,1,0.02)

#y为理想函数

y = 2*np.sin(x*2.3)+0.5*x**3

#y1为离散的拟合数据

y1 = y+0.5*(np.random.rand(len(x))-0.5)

##################################

#主要程序

one=np.ones((len(x),1))#len(x)得到数据量

x=x.reshape(x.shape[0],1)

A=np.hstack((x,one))#两个100x1列向量合并成100x2,(100, 1) (100,1 ) (100, 2

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值