当前位置: 首页 > news >正文

python曲线拟合通用代码

在工作中偶然遇到进行曲线拟合求多项式系数,因为需要批量做拟合,发现python非常适合做非通用多项式的拟合,分享出来供大家定制修改完成自己的拟合。

只需要修改自变量 r_data,因变量g_data和model即可。

import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
# 定义拟合函数
def model(r, k0, k1, k2, k3, k4):return 1 + k0*r**2 + k1*r**4 + k2*r**6 + k3*r**8 + k4*r**10
# 准备数据(示例数据)
r_data = np.array([1,0.860232527,0.721110255,0.640312424,0.5,0.424264069,0.282842712,0.141421356,0.1,0])  # 请替换为您的数据
g_data = np.array([7.668939362,5.388489209,3.618357488,2.960474308,2.115819209,1.779097387,1.304878049,1.051966292,1.024623803,1])  # 请替换为您的数据
#70%gain
g_data_0_7 = np.array([7.668939362*0.73,5.218489209*0.76,3.618357488*0.79,2.960474308*0.82,2.115819209*0.85,1.779097387*0.88,1.304878049*0.91,1.051966292*0.94,1.024623803*0.97,1])  # 请替换为您的数据# 执行曲线拟合
params, covariance = curve_fit(model, r_data, g_data_0_7, p0=None, sigma=0.0000001, absolute_sigma=0.0000001, check_finite=True, method='dogbox')# 提取拟合参数
k0, k1, k2, k3, k4 = params# 绘图
plt.scatter(r_data, g_data_0_7, label='Data', color='red')
r_fit = np.linspace(min(r_data), max(r_data), 100)
g_fit = model(r_fit, *params)
plt.plot(r_fit, g_fit, label='Fitted Curve', color='blue')
plt.xlabel('r')
plt.ylabel('g')
plt.legend()
plt.show()# 输出拟合参数
print(f'Fitted parameters: k0={k0}, k1={k1}, k2={k2}, k3={k3}, k4={k4}')

http://www.mrgr.cn/news/59034.html

相关文章:

  • Python自动化发票处理:使用Pytesseract和Pandas从图像中提取信息并保存到Excel
  • 机器学习5
  • Kafka-代码示例
  • 【笔记】apt源设置为阿里云源
  • 质量保障体系(软件测试的方法论)
  • HTTP和HTTPS基本概念,主要区别,应用场景
  • 数据结构(java)——数组的构建和插入
  • 【网络安全】一文讲清Zero Trust(零信任)安全
  • 【Python爬虫+数据分析】详细教学知网文献基本信息爬取方式(附详细教程+完整代码)
  • ctfshow的sql注入解题思路171-211
  • 文言编程:古老文字与现代编程的融合
  • 禾川SV-X2E A伺服驱动器参数设置——脉冲型
  • Gateway 统一网关
  • 【论文阅读】ESRGAN
  • C++ string类常用接口总结
  • 「C/C++」C++17 之 std::filesystem::directory_entry 文件系统目录条目
  • sql语句中的Group By 分组查询
  • AI神器,豆包自带抠图,完全免费!路人甲、去水印,轻轻一擦,全去掉
  • 今日所学1024和1026
  • gma 2.0.14 (2024.10.18) | GmaGIS V0.0.0a5 更新日志
  • DevOps 全面解析:实现开发与运维的无缝协作
  • 基于SSM美容院管理系统的设计
  • 【Linux操作系统】Linux配置OpenSSH服务器步骤记录
  • Vite+Vue3+qiankun构建微前端
  • C++数据结构-最小生成树:普利姆(Prim)算法及C/C++代码实现
  • css 对称按钮,中间斜平行间隔,两头半圆