当前位置:   article > 正文

origin使用python进行方程拟合--案例_origin脚本编写

origin脚本编写

origin使用python进行方程拟合–案例

1.1 软件版本要求

  • origin2020a以上
  • python 3.8以上

1.2 说明

  • 本文主要是为方便实验室数据拟合。由于origin在实验的使用率远高于python等编程语言,因此通过本文给出在origin中使用python脚本完成一个简单函数的拟合。
  • 案例中拟合的方程为HILL

1.3 优势

  • 基于常用软件就可以运行,不用重新配制环境,上手简单快捷。
  • 可以直接在origin本身的表格中进行扩增。
  • 复杂传参过程需要借助程序设计

2. 使用过程

2.1 origin中打开python

  • 界面中打开 连接
  • 在这里插入图片描述
  • 然后打开 untitled.py
    -在这里插入图片描述
  • 新建脚本,并将相关代码粘贴
    在这里插入图片描述
  • 在下方命令窗口处输入相关python包
    在这里插入图片描述
    本案例需要加载包
pip install numpy
pip install scipy
  • 1
  • 2

-安装完成后 重新启动origin才能运行

运行脚本 F5

# 最小二乘拟合实例
import numpy as np
from scipy.optimize import leastsq

def func( x, p,c):
    """
    数据拟合所用的函数: A*cos(2*pi*k*x + theta)
    """
    n, k = p
    return c[1]+(c[0]-c[1])* (x ** n / (k ** n + x ** n))


def residuals(p, y, x,c):
    """
    实验数据x, y和拟合函数之间的差,p为拟合需要找到的系数
    """
    return y - func(x, p,c)


xp = np.genfromtxt('C:/Users/Administrator/Desktop/1.txt')

#print(xp)  # 返回list
# x = np.lipase(0, 20)
n, k = 50, 3  # 真实数据的函数参数
x = xp[:, 0]
y = xp[:, 1]
c=[max(y),min(y)]
# y0 = func(x, [n, k],c)  # 真实数据
y1 = y
p0 = [1,50]  # 第一次猜测的函数拟合参数 n,k

## 调用leastsq进行数据拟合
## residuals为计算误差的函数
## p0为拟合参数的初始值
## args为需要拟合的实验数据
plsq = leastsq(residuals, p0, args=(y,x,c))
#
y2=func(x,plsq[0],c)
# print (u"真实参数:", [A, k, theta] )
print(u"拟合参数", plsq[0])  # 实验数据拟合后的参数
RSS=np.dot(np.transpose(y1 - y2),(y1-y2))
R2=1-RSS/(np.var(y1)*(len(y1)-1))
print("MSE:",RSS)
print("R2:", R2)
#sklearn求解的MSE值

#
# pl.plot(x, y, color='r',label=u"真实数据")
# pl.plot(x, y1, color='b',label=u"带噪声的实验数据")
# pl.plot(x, func(x, plsq[0]), color='g', label=u"拟合数据")
# pl.legend()
# pl.show()

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53

运行结果

在这里插入图片描述

  • 拟合公式HIll

y = y m i n + ( y m a x − y m i n ) ∗ x n x n + k n y=y_{min} + (y_{max}-y_{min})*\frac{x^n}{x^n+k^n} y=ymin+(ymaxymin)xn+knxn

  • R^2 计算公式
    R 2 = 1 − R S S / ( S S Y ) R^2=1-RSS/(SSY) R2=1RSS/(SSY)
  • 程序说明

直接使用origin内置函数拟合过程

  • 输入数据
    请添加图片描述
    2,打开分析->拟合->非线性拟合
    在这里插入图片描述
  • 进入拟合界面 点击函数下拉框(类型 中选择origin自带)
    在这里插入图片描述
  • 打开下拉框中使用搜索请添加图片描述
  • 搜索界面中找到HIll模型
    在这里插入图片描述
  • 点击模型进行拟合
    在这里插入图片描述
  • 点击拟合
    在这里插入图片描述

origin中自定义函数的拟合

与董说

。。。。。。。。。。。。。。没得冷笑话的一周
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/520825
推荐阅读
相关标签
  

闽ICP备14008679号