gpt4 book ai didi

Python基于最小二乘法实现曲线拟合示例

转载 作者:qq735679552 更新时间:2022-09-27 22:32:09 25 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章Python基于最小二乘法实现曲线拟合示例由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了Python基于最小二乘法实现曲线拟合。分享给大家供大家参考,具体如下:

这里不手动实现最小二乘,调用scipy库中实现好的相关优化函数.

考虑如下的含有4个参数的函数式:

Python基于最小二乘法实现曲线拟合示例

构造数据 。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import numpy as np
from scipy import optimize
import matplotlib.pyplot as plt
def logistic4(x, A, B, C, D):
   return (A - D) / ( 1 + (x / C) * * B) + D
def residuals(p, y, x):
   A, B, C, D = p
   return y - logisctic4(x, A, B, C, D)
def peval(x, p):
   A, B, C, D = p
   return logistic4(x, A, B, C, D)
A, B, C, D = . 5 , 2.5 , 8 , 7.3
x = np.linspace( 0 , 20 , 20 )
y_true = logistic4(x, A, B, C, D)
y_meas = y_true + 0.2 * np.random.randn( len (y_true))

调用工具箱函数,进行优化 。

?
1
2
3
4
p0 = [ 1 / 2 ] * 4
plesq = optimize.leastsq(residuals, p0, args = (y_meas, x))
             # leastsq函数的功能其实是根据误差(y_meas-y_true)
             # 估计模型(也即函数)的参数

绘图 。

?
1
2
3
4
5
6
7
8
plt.figure(figsize = ( 6 , 4.5 ))
plt.plot(x, peval(x, plesq[ 0 ]), x, y_meas, 'o' , x, y_true)
plt.legend([ 'Fit' , 'Noisy' , 'True' ], loc = 'upper left' )
plt.title( 'least square for the noisy data (measurements)' )
for i, (param, true, est) in enumerate ( zip ( 'ABCD' , [A, B, C, D], plesq[ 0 ])):
   plt.text( 11 , 2 - i * . 5 , '{} = {:.2f}, est({:.2f}) = {:.2f}' . format (param, true, param, est))
plt.savefig( './logisitic.png' )
plt.show()

Python基于最小二乘法实现曲线拟合示例

希望本文所述对大家Python程序设计有所帮助.

原文链接:https://blog.csdn.net/lanchunhui/article/details/50358943 。

最后此篇关于Python基于最小二乘法实现曲线拟合示例的文章就讲到这里了,如果你想了解更多关于Python基于最小二乘法实现曲线拟合示例的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com