Python最小二乘法矩阵


Posted in Python onJanuary 02, 2019

最小二乘法矩阵

#! /usr/bin/env python
# -*- coding: utf-8 -*-
import numpy as np
def calc_left_k_mat(k):
  """
  获得左侧k矩阵
  :param k:
  :return:
  """
  k_mat = []
  for i in range(k + 1):
    now_line = []
    for j in range(k + 1):
      now_line.append(j + i)
    k_mat.append(now_line)
  return k_mat
def calc_right_k_mat(k):
  """
  计算右侧矩阵
  :param k:
  :return:
  """
  k_mat = []
  for i in range(k + 1):
    k_mat.append([i, i + 1])
  return k_mat
def pow_k(x, k):
  """
  计算x列表中的k次方和
  :param x: 点集合的x坐标
  :param k: k值
  :return:
  """
  sum = 0
  for i in x:
    sum += i ** k
  return sum
def get_left_mat_with_x(k_mat, k):
  """
  将 左侧k矩阵运算得到左侧新的矩阵
  :param k_mat:
  :param k:
  :return:
  """
  left_mat = []
  for kl in k_mat:
    now_data = []
    for k in kl:
      now_data.append(pow_k(x, k))
    left_mat.append(now_data)
  return left_mat
def get_right_mat_with(right_k_mat):
  """
  将 右侧k矩阵运算得到右侧新的矩阵
  :param right_k_mat:
  :return:
  """
  right_mat = []
  for i in range(len(right_k_mat)):
    sum = 0
    for xL, yL in zip(x, y):
      a = (xL ** right_k_mat[i][0]) * (yL ** right_k_mat[i][1])
      sum += a
    right_mat.append(sum)
  return right_mat
def fuse_mat(left, right):
  """
  融合两个矩阵
  :param left:
  :param right:
  :return:
  """
  new_mat = []
  for i in range(len(left)):
    asd = np.append(left[i], right[i])
    new_mat.append(list(asd))
  return new_mat
if __name__ == '__main__':
  k = 3
  x = [1, 2, 3]
  y = [1, 2, 3]
  # 计算原始左侧K矩阵
  left_k_mat = calc_left_k_mat(k)
  print("原始左侧K矩阵")
  print(left_k_mat)
  # 计算原始右侧K矩阵
  right_k_mat = calc_right_k_mat(k)
  print("原始右侧k矩阵")
  print(right_k_mat)
  # 计算左侧 k 矩阵
  new_left_mat = get_left_mat_with_x(k_mat=left_k_mat, k=k)
  # 计算右侧 k 矩阵
  new_right_mat = get_right_mat_with(right_k_mat=right_k_mat)
  print("计算后左侧K矩阵")
  print(new_left_mat)
  print("计算后右侧侧K矩阵")
  print(new_right_mat)
  print("-----" * 10)
  # 融合两个矩阵 左侧 矩阵每一行增加 右侧矩阵的对应行
  new_all = fuse_mat(new_left_mat, new_right_mat)
  print("完整矩阵")
  print(new_all)

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Python 相关文章推荐
Python enumerate遍历数组示例应用
Sep 06 Python
Python中tell()方法的使用详解
May 24 Python
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
Python如何实现文本转语音
Aug 08 Python
python监控键盘输入实例代码
Feb 09 Python
pandas 时间格式转换的实现
Jul 06 Python
使用matlab或python将txt文件转为excel表格
Nov 01 Python
pytorch 模型的train模式与eval模式实例
Feb 20 Python
Python unittest框架操作实例解析
Apr 13 Python
django ObjectDoesNotExist 和 DoesNotExist的用法
Jul 09 Python
python3中数组逆序输出方法
Dec 01 Python
Python就将所有的英文单词首字母变成大写
Feb 12 Python
Centos部署django服务nginx+uwsgi的方法
Jan 02 #Python
Python 一句话生成字母表的方法
Jan 02 #Python
使用python将请求的requests headers参数格式化方法
Jan 02 #Python
浅谈python requests 的put, post 请求参数的问题
Jan 02 #Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 #Python
Python装饰器语法糖
Jan 02 #Python
Python WEB应用部署的实现方法
Jan 02 #Python
You might like
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
PHP 中TP5 Request 请求对象的实例详解
2017/07/31 PHP
阻止JavaScript事件冒泡传递(cancelBubble 、stopPropagation)
2007/05/08 Javascript
Expandable "Detail" Table Rows
2007/08/29 Javascript
用Mootools获得操作索引的两种方法分享
2011/12/12 Javascript
JS连连看源码完美注释版(推荐)
2013/12/09 Javascript
JS图片无缝、平滑滚动代码
2014/03/11 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
jQuery中数据缓存$.data的用法及源码完全解析
2016/04/29 Javascript
JS数组操作(数组增加、删除、翻转、转字符串、取索引、截取(切片)slice、剪接splice、数组合并)
2016/05/20 Javascript
Javascript小技能总结(推荐)
2016/06/02 Javascript
Bootstrap table使用方法详细介绍
2016/12/09 Javascript
Javascript中的async awai的用法
2017/05/17 Javascript
Nodejs调用Dll模块的方法
2018/09/17 NodeJs
Angular中使用ng-zorro图标库部分图标不能正常显示问题
2019/04/22 Javascript
Javascript查看大图功能代码实现
2020/05/07 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[01:11:28]DOTA2-DPC中国联赛定级赛 RNG vs Phoenix BO3第一场 1月8日
2021/03/11 DOTA
Python打包方法Pyinstaller的使用
2018/10/09 Python
解决python3捕获cx_oracle抛出的异常错误问题
2018/10/18 Python
python交互界面的退出方法
2019/02/16 Python
Python创建或生成列表的操作方法
2019/06/19 Python
Python3网络爬虫开发实战之极验滑动验证码的识别
2019/08/02 Python
python requests更换代理适用于IP频率限制的方法
2019/08/21 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
通过实例了解python__slots__使用方法
2020/09/14 Python
如何从csv文件构建Tensorflow的数据集
2020/09/21 Python
浅析PyCharm 的初始设置(知道)
2020/10/12 Python
Python爬虫之Selenium多窗口切换的实现
2020/12/04 Python
Python数据模型与Python对象模型的相关总结
2021/01/26 Python
CSS3 media queries + jQuery实现响应式导航
2016/09/30 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
秋游活动策划方案
2014/02/16 职场文书
房屋租赁协议书(标准版)
2014/10/02 职场文书
集结号观后感
2015/06/08 职场文书