python拟合函数_python之拟合的实现

本文介绍了Python中多项式拟合与曲线拟合的方法。通过numpy库的polyfit函数进行一次和二次多项式拟合,并展示了如何利用matplotlib绘制拟合曲线。此外,还探讨了scipy.optimize的curve_fit函数,用于对非多项式函数如正弦函数的拟合,以应对复杂函数的拟合需求。
摘要由CSDN通过智能技术生成

一、多项式拟合

多项式拟合的话,用的的是numpy这个库的polyfit这个函数。那么多项式拟合,最简单的当然是,一次多项式拟合了,就是线性回归。直接看代码吧

import numpy as np

def linear_regression(x,y):

#y=bx+a,线性回归

num=len(x)

b=(np.sum(x*y)-num*np.mean(x)*np.mean(y))/(np.sum(x*x)-num*np.mean(x)**2)

a=np.mean(y)-b*np.mean(x)

return np.array([b,a])

def f(x):

return 2*x+1

x=np.linspace(-5,5)

y=f(x)+np.random.randn(len(x))#加入噪音

y_fit=np.polyfit(x,y,1)#一次多项式拟合,也就是线性回归

print(linear_regression(x,y))

print(y_fit)

手写线性回归我还是会的,然后我们来看下输出:

[1.9937839 1.24167225]

[1.9937839 1.24167225]

由于有random每次显示的结果都不一样,但很明显的是上下两个print是意料之中的一样,emmmmm,一次多项式拟合的源代码应该就是像我写的那样。好了,那么一次以上呢?咳咳,我数学不算太好,还是老老实实用库函数吧,顺便画下图,见识它的威力。

import numpy as np

from matplotlib import p

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值