打印

关于非线性拟合的学习笔记

[复制链接]
591|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
叶春勇|  楼主 | 2021-3-13 11:31 | 只看该作者
方法一:是将非线性模型转化成线性模型

使用特权

评论回复
评论
zlf1208 2021-3-14 10:13 回复TA
叶工真是个认真的人,每次看您的回复,都经过仔细编辑和排版,看起来很舒服,也很严谨,不像某些大仙,龙飞凤舞地画几笔,显得很高深的样子 
板凳
叶春勇|  楼主 | 2021-3-13 11:37 | 只看该作者
用原帖作者的衰减曲线的excel文件,进行测试
python代码如下:
import math
import numpy as np
import xlrd

xls=xlrd.open_workbook(r'd:\data.xls')##读取excel文件
sheet=xls.sheet_by_name('衰减曲线')
y=[]

for i in range(1,14,1):
    temp=[]
    for j in range(0,60,1):
        temp.append(sheet.cell(3+j,i).value)##共13组
    y.append(temp)

#建立A矩阵
A=np.ones((2,60))
A[1]=-np.arange(0,60)/1000000
A=A.T
A=np.matrix(A)
AA=((A.T*A)**-1)*A.T

#求13组数据的时间
b=np.log(np.matrix(y).T)
b=AA*b
print(b[1])


输出结果:时间被放大过1000000
[[28068.88373367 27974.40821863 28652.51187232 28526.23801597
  28072.3430224  28263.22917422 28453.26937705 28072.08262794
  28143.77543767 28598.12668447 29059.58836214 29655.77554097
  35143.3727371 ]]

使用特权

评论回复
评论
叶春勇 2021-3-13 13:50 回复TA
@Jack315 :我的是一次计算13个,脚本语言还是很强大的。 
Jack315 2021-3-13 12:23 回复TA
参考:python 线性回归示例,https://www.cnblogs.com/hhh5460/p/5786115.html 
地板
叶春勇|  楼主 | 2021-3-13 12:24 | 只看该作者
如果要用单片机去拟合,算法分析如下:

使用特权

评论回复
5
叶春勇|  楼主 | 2021-3-13 14:30 | 只看该作者
接上楼:

分析完毕。

使用特权

评论回复
6
叶春勇|  楼主 | 2021-3-13 17:21 | 只看该作者
非线性拟合还有高斯牛顿法,用在单片机上运算量较大,但是在传感器开发阶段,可以得到最优值。作为比较。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

151

主题

4800

帖子

49

粉丝