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装饰器使用方法实例
Nov 21 Python
Python创建文件和追加文件内容实例
Oct 21 Python
Python解析最简单的验证码
Jan 07 Python
PyQt5打开文件对话框QFileDialog实例代码
Feb 07 Python
python实现装饰器、描述符
Feb 28 Python
python3.6的venv模块使用详解
Aug 01 Python
Pycharm设置去除显示的波浪线方法
Oct 28 Python
使用python快速在局域网内搭建http传输文件服务的方法
Nov 14 Python
python Tensor和Array对比分析
Jan 08 Python
Python运行提示缺少模块问题解决方案
Apr 02 Python
python适合做数据挖掘吗
Jun 16 Python
Pytorch可视化的几种实现方法
Jun 10 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
ThinkPHP实例化模型的四种方法概述
2014/08/22 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
PHP 的Opcache加速的使用方法
2017/12/29 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
jquery 快速回到页首的方法
2013/12/05 Javascript
Jquery模仿Baidu、Google搜索时自动补充搜索结果提示
2013/12/26 Javascript
js数字转换为float,取N位小数
2014/02/08 Javascript
JavaScript中使用ActiveXObject操作本地文件夹的方法
2014/03/28 Javascript
JS实现网页上随滚动条滚动的层效果代码
2015/11/04 Javascript
Bootstrap每天必学之按钮(一)
2015/11/24 Javascript
JavaScript是如何实现继承的(六种方式)
2016/03/31 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
javascript的replace方法结合正则使用实例总结
2016/06/16 Javascript
jQuery ajax MD5实现用户注册即时验证功能
2016/10/11 Javascript
Javascript 两种刷新方法以及区别和适用范围
2017/01/17 Javascript
Vue.js学习之计算属性
2017/01/22 Javascript
浅谈vue首屏加载优化
2018/06/28 Javascript
微信小程序开发之改变data中数组或对象的某一属性值
2018/07/05 Javascript
layui select获取自定义属性方法
2018/08/15 Javascript
vue构建动态表单的方法示例
2018/09/22 Javascript
原生javascript实现连连看游戏
2019/01/03 Javascript
微信小程序实现工作时间段选择
2019/02/15 Javascript
pm2发布node配置文件ecosystem.json详解
2019/05/15 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
在DigitalOcean的服务器上部署flaskblog应用
2015/12/19 Python
Python常用库推荐
2016/12/04 Python
Python爬虫框架scrapy实现的文件下载功能示例
2018/08/04 Python
linux安装python修改默认python版本方法
2019/03/31 Python
python实现银行账户系统
2021/02/22 Python
如何用 Python 制作一个迷宫游戏
2021/02/25 Python
css3 transform属性详解
2014/09/30 HTML / CSS
eBay美国官网:eBay.com
2020/10/24 全球购物
商务日语专业毕业生求职信
2013/10/26 职场文书
2019年消防宣传标语集锦
2019/11/21 职场文书
浅谈tf.train.Saver()与tf.train.import_meta_graph的要点
2021/05/26 Python