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 14 Python
python中WSGI是什么,Python应用WSGI详解
Nov 24 Python
浅谈Django REST Framework限速
Dec 12 Python
Python实现抢购IPhone手机
Feb 07 Python
Python将json文件写入ES数据库的方法
Apr 10 Python
详解python中的time和datetime的常用方法
Jul 08 Python
DJango的创建和使用详解(默认数据库sqlite3)
Nov 18 Python
Spring Cloud Feign高级应用实例详解
Dec 10 Python
python3.7添加dlib模块的方法
Jul 01 Python
通过实例解析Python RPC实现原理及方法
Jul 07 Python
Python 如何调试程序崩溃错误
Aug 03 Python
Python基础之进程详解
May 21 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
PHP正确配置mysql(apache环境)
2011/08/28 PHP
php网上商城购物车设计代码分享
2012/02/15 PHP
php类中private属性继承问题分析
2012/11/01 PHP
PHP垃圾回收机制引用计数器概念分析
2013/06/24 PHP
成为好程序员必须避免的5个坏习惯
2014/07/04 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
php实现每天自动变换随机问候语的方法
2015/05/12 PHP
javascript闭包入门示例
2014/04/30 Javascript
js实现鼠标点击左上角滑动菜单效果代码
2015/09/06 Javascript
JS+CSS实现的蓝色table选项卡效果
2015/10/08 Javascript
Jqgrid之强大的表格插件应用
2015/12/02 Javascript
js实现的页面矩阵图形变换特效
2016/01/26 Javascript
jQuery EasyUI tree 使用拖拽时遇到的错误小结
2016/10/10 Javascript
vue实现手机号码抽奖上下滚动动画示例
2017/10/18 Javascript
vue组件横向树实现代码
2018/08/02 Javascript
vue-swiper的使用教程
2018/08/30 Javascript
Vue实现调节窗口大小时触发事件动态调节更新组件尺寸的方法
2018/09/15 Javascript
浅谈vue.use()方法从源码到使用
2019/05/12 Javascript
Vue.js路由实现选项卡简单实例
2019/07/24 Javascript
[03:14]DOTA2斧王 英雄基础教程
2013/11/26 DOTA
ssh批量登录并执行命令的python实现代码
2012/05/25 Python
Python二次规划和线性规划使用实例
2019/12/09 Python
Python读取分割压缩TXT文本文件实例
2020/02/14 Python
python数据类型强制转换实例详解
2020/06/22 Python
爱尔兰家电数码商城:Currys PC World爱尔兰
2016/07/23 全球购物
Otticanet美国:最顶尖的世界名牌眼镜, 能得到打折季的价格
2019/03/10 全球购物
中专毕业个人的自荐信格式
2013/09/21 职场文书
企业军训感言
2014/02/08 职场文书
《雨霖铃》听课反思
2014/02/13 职场文书
会计员岗位职责
2014/03/15 职场文书
让世界充满爱演讲稿
2014/05/24 职场文书
公司合并协议书范本
2014/09/30 职场文书
Mysql systemctl start mysqld报错的问题解决
2021/06/03 MySQL
关于Python OS模块常用文件/目录函数详解
2021/07/01 Python
nginx安装以及配置的详细过程记录
2021/09/15 Servers
spring 项目实现限流方法示例
2022/07/15 Java/Android