python拟合非线性模型_初学Python拟合Langmuir非线性方程
以前都是用origin来进行拟合,但是参数初值需要猜测,有时候不一定能够得到正确结果。后来用过MATLAB的工具箱,可以拟合,但电脑要安装MATLAB还是占挺大空间的。花了一下午了解了一下用Python来拟合已有的函数,感觉还不错,分享出来给大家。初学Python,大神们多多包涵。
# -*- coding: utf-8 -*-
"""
Created on Tue Nov 24 14:50:56 2020
@author: fan
"""
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
df1 = pd.read_excel('F:/langmuir.xls',header=None,usecols="A") #导入数据,A列为x轴备用
df2 = pd.read_excel('F:/langmuir.xls',header=None,usecols="B") #导入数据,B列为y轴备用
Ce0 = np.array(df1) #dataframe转数组,此时为单列数组,需要转置为单行
Ce = Ce0[:,0] #转置
print(Ce)
qe0 = np.array(df2) #dataframe转数组,此时为单列数组,需要转置为单行
qe = qe0[:,0] #转置
print(qe)
# 这里的函数可以自定义任意形式。
def func(Ce, qm, Ka):
return qm*Ka*Ce/(1+Ka*Ce)
# popt返回的是给定模型的最优参数。我们可以使用pcov的值检测拟合的质量,其对角线元素值代表着每个参数的方差。
param_bounds=([0,0],[np.inf,np.inf]) #参数上下限,第一个方括号为所有参数下限,第二个为所有参数上限
popt, pcov = curve_fit(func, Ce, qe, bounds=param_bounds) #拟合函数
qm = popt[0]
Ka = popt[1]
qe_pre = func(Ce,qm,Ka) #拟合y值
plot1 = plt.plot(Ce, qe, 's',label='original values')
plot2 = plt.plot(Ce, qe_pre, 'r',label='polyfit values')
plt.xlabel('Ce')
plt.ylabel('qe')
plt.legend(loc=4) #右下角画图例
SSE = ((qe_pre-qe)**2).sum()
chi_square = ((qe-qe_pre)**2/qe_pre).sum()
#计算R平方
from sklearn.metrics import r2_score
r2 = r2_score(qe, qe_pre)
print('qm=',qm)
print('Ka=',Ka)
print('拟合R方为:',r2)
print('SSE =',SSE)
print('chi_square =',chi_square)
python拟合非线性模型_初学Python拟合Langmuir非线性方程相关推荐
- python的难点_初学python的操作难点总结(新手必看篇)
如下所示: 1 在cmd下 盘与盘之间的切换 直接 D或d: 就好 2 查找当前盘或者文件下面的目录 直接 dir 3 想在一个盘下进去一个文件夹,用cd空格目标文件 cd p 4 写文件的第一个字母 ...
- python xpath循环_初学Python,就用它爬取一点情话说给她听!
老铁们,一年一度的520就要来了,大家有没有正在抓耳挠腮的给女朋友准备礼物呢? 作为一个业余非专业程序猿(ps:自称程序猿,哈哈),最近初学python,用它来抓取情话网站的100页情话,作为给女朋友 ...
- python return用法_初学Python要了解什么 装饰器知识汇总有哪些
初学Python要了解什么?装饰器知识汇总有哪些?在Python学习过程中,有多种方法对函数和类进行加工,相对于其它方式,装饰器语法简单,代码可读性高.因此,装饰器在Python项目中有广泛的应用,比 ...
- python换发型_初学Python的一些细节
一.python的数据类型 1.python的基本数据类型包括数值数据类型和字符串数据类型:基本数据类型的特点是不允许改变,如果改变基本数据类型的值,会导致内存的重新分配. int 整形 二进制 a ...
- 儿童学python第一课_初学Python(第一课)
今天整理一下关于Python初学者的基础知识部分的第一课,因为之前学习过C,所以过于基础的知识就不详细记录了. Python相对于C\C++来说,在语法方面已经很简单了:甚至对于JavaScript也 ...
- 学好python的技巧_初学Python搞不懂基础怎么学得好?掌握这9个技巧你也可以做大神...
整理字符串输入 整理用户输入的问题在编程过程中极为常见.通常情况下,将字符转换为小写或大写就够了,有时你可以使用正则表达式模块「Regex」完成这项工作.但是如果问题很复杂,可能有更好的方法来解决: ...
- python函数笔记_初学Python函数的笔记整理
定义 返回单值 def my_abs(x): if x >= 0: return x else: return -x 返回多值 返回多值就是返回一个tuple import math def m ...
- 学python哪个app比较好_初学python编程,有哪些不错的软件值得一用?
初学python编程,有哪些不错的软件值得一用? 萧楚故人 发表于 2020-7-17 00:17:55 只看该作者 只看大图 倒序浏览 阅读模式 10 19832 下载好向圈APP可以快速联系圈友 ...
- python 时间序列预测_使用Python进行动手时间序列预测
python 时间序列预测 Time series analysis is the endeavor of extracting meaningful summary and statistical ...
最新文章
- How to Convert Array to ArrayList in Java?
- 在Fabric ChainCode中导入第三方包(以状态机为例)
- PostgreSQL ODBC问题与探索SQLSpecialColumns
- opencv图像和二维数组相互转换
- python界面颜色-给Python点颜色——青少年学编程
- java中math方法语句,下列有关Java中标准类Math的random()方法的说法中,正确的是。 - 上学吧学历考试...
- iQOO Neo 855竞速版来了:今年最后一款骁龙855 Plus手机
- c#设计的简单登录界面
- 借助离散数学解决“哈弗大学智商测试”一题 --编程算法
- LayaAir UI 组件 # RadioGroup 单选框按钮组
- python安装包的路径
- excel从只有省市县的地址中分别提取省、市、县
- 2008年IT行业10大热门职业调查结果出炉
- xposed android 4.4.2,xposed新版54
- 【风马一族_php】
- 简易五子棋程序(C语言实现)
- openstack上传镜像
- 浏览器兼容问题,一直是自己最头疼,一直回避的问题,今天看得到了一些启发,发奋今天开始研究这个,哈哈,以下为转载文章,好好学习。...
- SQL SERVER【非域环境】镜像之搭建篇
- python 自动化测试面试题及答案_自动化测试面试题及答案大全(1)
热门文章
- 常见工具测试(双肩包,椅子,电梯)
- 软件方法(下)分析和设计第8章分析 之 分析类图——知识篇Part02(202204更新)
- K8S入门练习,最简单搭建k8s,适合初学,无需连google
- HUE ozzie Cannot run program error=2, No such file or directory
- 华为凌霄子母路由 Q6参数 华为凌霄子母路由 Q6怎么样
- Unity 能量罩效果shader
- 微信小程序开发(十)小程序支付-查询退款
- 怎么恢复本地磁盘里的数据?电脑本地磁盘数据恢复7种方案
- 016-类与对象-OC笔记
- r75800h核显相当于什么显卡