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模块之time模块(实例讲解)
Sep 13 Python
Python random模块用法解析及简单示例
Dec 18 Python
python实现蒙特卡罗方法教程
Jan 28 Python
Python使用itchat 功能分析微信好友性别和位置
Aug 05 Python
python3爬取torrent种子链接实例
Jan 16 Python
pandas中ix的使用详细讲解
Mar 09 Python
Django 后台带有字典的列表数据与页面js交互实例
Apr 03 Python
解决Keras TensorFlow 混编中 trainable=False设置无效问题
Jun 28 Python
Pytorch 扩展Tensor维度、压缩Tensor维度的方法
Sep 09 Python
Python 操作 MySQL数据库
Sep 18 Python
Django程序的优化技巧
Apr 29 Python
python如何将mat文件转为png
Jul 15 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
PHP5.0正式发布 不完全兼容PHP4 新增多项功能
2006/10/09 PHP
PHP5权威编程阅读学习笔记 附电子书下载
2012/07/05 PHP
深入php 正则表达式的学习探讨
2013/06/06 PHP
解决windows上php xdebug 无法调试的问题
2020/02/19 PHP
IE bug table元素的innerHTML
2010/01/11 Javascript
js操作iframe兼容各种主流浏览器示例代码
2013/07/22 Javascript
如何实现textarea里的不同文本显示不同颜色
2014/01/20 Javascript
jQuery防止click双击多次提交及传递动态函数或多参数
2014/04/02 Javascript
jQuery Ajax使用实例
2015/04/16 Javascript
JavaScript框架是什么?怎样才能叫做框架?
2015/07/01 Javascript
Javascript编写俄罗斯方块思路及实例
2015/07/07 Javascript
深入浅析jQuery对象$.html
2016/08/22 Javascript
javascript实现图片左右滚动效果【可自动滚动,有左右按钮】
2016/09/19 Javascript
深入理解Vue transition源码分析
2017/07/30 Javascript
jquery 键盘事件的使用方法详解
2017/09/13 jQuery
react+redux的升级版todoList的实现
2017/12/18 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
LayUi使用switch开关,动态的去控制它是否被启用的方法
2019/09/21 Javascript
python查找目录下指定扩展名的文件实例
2015/04/01 Python
Python 查看文件的读写权限方法
2018/01/23 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
Python+OpenCV实现图像融合的原理及代码
2018/12/03 Python
Python3.5基础之变量、数据结构、条件和循环语句、break与continue语句实例详解
2019/04/26 Python
python实现LBP方法提取图像纹理特征实现分类的步骤
2019/07/11 Python
基于python3生成标签云代码解析
2020/02/18 Python
python爬虫实现获取下一页代码
2020/03/13 Python
利用django model save方法对未更改的字段依然进行了保存
2020/03/28 Python
Pycharm打开已有项目配置python环境的方法
2020/07/03 Python
python 利用zmail库发送邮件
2020/09/11 Python
MONNIER Frères英国官网:源自巴黎女士奢侈品配饰电商平台
2018/12/06 全球购物
英国当代时尚和街头服饰店:18montrose
2018/12/15 全球购物
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
婚礼主持结束词
2014/03/13 职场文书
大学生党员承诺书
2014/05/20 职场文书
抢劫罪辩护词
2015/05/21 职场文书
步步惊心观后感
2015/06/12 职场文书