zoukankan      html  css  js  c++  java
  • python解决最小二乘法的相关问题笔记。

    计算最小二乘法求目标函数的系数,部分代码来源于张若愚老师的《Python科学计算》

    题目

    1 某检测装备输入数据:
    2 x:0.9, 2.5, 3.3, 4.5, 5.7, 6.9
    3 g:1.1, 1.6, 2.6, 3.2, 4.0, 6.0
    4 
    5 假设输出最大值为6.0,最小值为0
    6 试用最小二乘法,求其线性度和灵敏度

    现在放上代码

     1 import numpy as np
     2 from scipy import optimize
     3 
     4 
     5 x = np.array([0.9, 2.5, 3.3, 4.5, 5.7, 6.9])
     6 y = np.array([1.1, 1.6, 2.6, 3.2, 4.0, 6.0])
     7 
     8 
     9 def reds(p):
    10     # 计算以p为参数的直线和数据之间的误差
    11     k, b = p
    12     return y - (k*x+b)
    13 
    14 
    15 # leastsq 使得reds()输出最小,参数的初始值是【1,0】
    16 r = optimize.leastsq(reds, [1, 0])
    17 k, b = r[0]
    18 print("k=", k, "
     b=", b)
    19 y1 = x*k + b
    20 a = np.array([y1[0]-y[0], y1[1]-y[1], y1[2]-y[2], y1[3]-y[3], y1[4]-y[4], y1[5]-y[5]])
    21 print("
    ", y, "
    ", y1, a)
    22 print("灵敏度计算", k)

    输出结果

    1 /usr/bin/python3.5 /home/leo/PycharmProjects/works/duixiaoercheng.py
    2 k= 0.7862723201948396 
    3 b= -0.03554687101048135
    4 
    5  [1.1 1.6 2.6 3.2 4.  6. ] 
    6  [0.67209822 1.93013393 2.55915179 3.50267857 4.44620535 5.38973214] [-0.42790178  0.33013393 -0.04084821  0.30267857  0.44620535 -0.61026786]
    7 灵敏度计算 0.7862723201948396
    8 
    9 进程已结束,退出代码0
  • 相关阅读:
    eclipse
    ORA00904:标识符无效,preparedstatement
    mysql 创建用户
    web 默认servlet
    https tomat
    gzip
    sftp 上传文件
    jquery dwrutil confilit
    xmlbeans读写xml文件
    敏捷开发“松结对编程”实践大型团队篇
  • 原文地址:https://www.cnblogs.com/BlogOfMr-Leo/p/8627311.html
Copyright © 2011-2022 走看看